Skocz do zawartości
"Idzie nowe..." - o zmianach i nie tylko ×
Przeniesienie zakupów z IPS Marketplace / Moving bought items from IPS Marketplace ×

Kod PHP dający uprawnienia na używanie przez daną grupę


Przejdź do rozwiązania Rozwiązane przez Macsch15,

Rekomendowane odpowiedzi

Opublikowano (edytowane)

Witam, nie wiem czy dobry dział, czy nie. Jest to związane z IPB

Ulepszam modyfikacje "gamehub" stworzoną przeze mnie. Kiedyś dałem kod:
 

private function addNewChanges()
{
if($this->memberData['member_group_id']==4)
{

 

 

oraz

 

 

public function deleteChanges()
{
if($this->memberData['member_group_id']==4)
{
if($this->memberData['member_group_id']!=4)

 

 

Kody pozwalają danej grupie (id grupy 4 to Administrator)  dodawać/usuwać "Zmiany". Czyli aktualności.

 

Chciałbym żeby np. grupa id 1 mogła też usuwać/dodawać "Zmiany".

 

Próbowałem dodawać pod tym 

 

 

private function addNewChanges()
{
if($this->memberData['member_group_id']==1)
{

 

tylko że nie działa, wyskakuje kilka errorów.

 

Z góry dziękuje za pomoc, pozdrawiam.

Edytowane przez DawPi
Edycja tytułu wątku. Na przyszłość staraj się dokładniej opisywać swoje tematy.

Domagasz się szybkiej reakcji z mojej strony? Proszę, zacytuj post.

Opublikowano

 <?php
define('limit', 5);
class public_gamehub_zmiany_changes extends ipsCommand
{
public function doExecute( ipsRegistry $registry )
{
switch($this->request['action'])
{
case 'delete':
$this->deleteChanges();
break;
}

if(isset($this->request['desc']) && isset($this->request['text']))
{
$template = $this->addNewChanges();
}
else
{
IPSText::getTextClass('bbcode')->parse_html = 1;
IPSText::getTextClass('bbcode')->parse_nl2br = 1;
IPSText::getTextClass('bbcode')->parse_bbcode = 1;
IPSText::getTextClass('bbcode')->parse_smilies = 1;

$this->DB->query('SELECT c.*,u.member_id,u.members_seo_name,u.members_display_name,u.member_group_id FROM '.$this->DB->obj['sql_tbl_prefix'].'game_changes c, '.$this->DB->obj['sql_tbl_prefix'].'members u WHERE c.auid=u.member_id ORDER BY `uid` DESC LIMIT '.limit);
$this->DB->execute();

while($rows = $this->DB->fetch())
{
$rows['_text'] = IPSText::getTextClass('bbcode')->preDisplayParse( $rows['text'] );

$changes[] = $rows;
}

$template = $this->registry->output->getTemplate('game')->changesList($changes);
}

$this->registry->getClass('output')->addContent($template);
$this->registry->output->setTitle('Zmiany');
$this->registry->output->addNavigation( 'Zmiany', '/zmiany' );
$this->registry->getClass('output')->sendOutput();
}

private function addNewChanges()
{
if($this->memberData['member_group_id']==4)
{
if(empty($this->request['desc']) || empty($this->request['text']))
{
$this->registry->output->showError("Musisz wpisać temat oraz tekst nowej zmiany! <a href=\"" . $this->registry->getClass('output')->formatUrl( $this->registry->getClass('output')->buildUrl( "module=zmiany", "publicWithApp",'' ), "", "" ) . "\">Kliknij tutaj aby wrócić</a>");
}
else
{
$this->DB->query(sprintf(
'INSERT INTO `'.$this->DB->obj['sql_tbl_prefix'].'game_changes` (`date`, `desc`, `text`, `auid`) VALUES (%d,\'%s\',\'%s\',%d)',
IPS_UNIX_TIME_NOW,
$this->DB->addSlashes($this->request['desc']),
$this->DB->addSlashes($this->request['text']),
$this->memberData['member_id']
));
$this->DB->execute();

$this->registry->getClass('output')->addContent("<p class=\"message\">Nowa zmiana została dodana! <a href=\"" . $this->registry->getClass('output')->formatUrl( $this->registry->getClass('output')->buildUrl( "module=zmiany", "publicWithApp",'' ), "", "" ) . "\">Kliknij tutaj aby wrócić</a></p>");
$this->registry->getClass('output')->sendOutput();
}
}
}

public function deleteChanges()
{
if($this->memberData['member_group_id']==4)
{
if($this->memberData['member_group_id']!=4)
{
$this->registry->getClass('output')->showError("Błąd! Prawdopodobna próba włamania. Administratorzy zostali o tym poinformowani! ",0);
return;
}

$this->DB->query('DELETE FROM '.$this->DB->obj['sql_tbl_prefix'].'game_changes WHERE uid='.intval($this->request['uid']).' LIMIT 1');
$this->DB->execute();

$this->registry->getClass('output')->addContent("<p class=\"message\">Zmiana została usunięta pomyślnie! <a href=\"" . $this->registry->getClass('output')->formatUrl( $this->registry->getClass('output')->buildUrl( "module=zmiany", "publicWithApp",'' ), "", "" ) . "\">Kliknij tutaj aby wrócić</a></p> ");
$this->registry->getClass('output')->sendOutput();
}
}
}
?>

 

Proszę.

Domagasz się szybkiej reakcji z mojej strony? Proszę, zacytuj post.

Opublikowano

Plik: gamehub_root_templates.xml

 <?xml version="1.0" encoding="utf-8"?>
<templates application="gamehub" templategroups="a:1:{s:7:"skin_game";s:5:"exact";}">
<templategroup group="skin_game">
<template>
<template_group>skin_game</template_group>
<template_content><![CDATA[{parse striping="rows" classes="row1,row2"}
<style>
ipbfs_titlebox
.desc{padding:3px
0}.ipbfs_titlebox{background:#efefef;border:1px
solid #d6d6d6;text-shadow:#fff 0px 1px 0px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset rgba(0,0,0,0.1) 0px 1px 4px;-moz-box-shadow:inset rgba(0,0,0,0.1) 0px 1px 4px;box-shadow:inset rgba(0,0,0,0.1) 0px 1px 4px;padding:10px;overflow:hidden}.content_border{border:1px
solid #ddd;-webkit-box-shadow:rgba(0,0,0,0.1) 0px 1px 4px;-moz-box-shadow:rgba(0,0,0,0.1) 0px 1px 4px;box-shadow:rgba(0,0,0,0.1) 0px 1px 4px}.forum_name{font-weight:bold}.forum_desc_pos{position:relative}.forum_desc_con{width:350px;display:none;left:10px;float:left;position:absolute;top: -4px;padding-left:10px;background:url("http://www.elite-rp.ugu.pl/public/style_images/uniform/forum_desc_arrow.png") no-repeat 6px 9px;z-index:10000}.forum_description{color:#fff;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;background:url("http://www.elite-rp.ugu.pl/public/style_images/uniform/forum_desc.png") repeat;background:rgba(15,15,15,0.9);-webkit-box-shadow:rgba(0,0,0,0.3) 0px 1px 7px;-moz-box-shadow:rgba(0,0,0,0.3) 0px 1px 7px;box-shadow:rgba(0,0,0,0.3) 0px 1px 7px;font-size:11px;padding:5px;display:block;float:left}.forum_stats{font-size:11px;font-family:"Trebuchet MS",Arial,Helvetica,sans-serif;padding-top:4px;color:#888;text-transform:capitalize}.forum_stats
span{color:#aaa}.home{padding-top:14px;padding-left:54px;font:normal 13px helvetica,arial,sans-serif}.facebookhome{width:350px;margin: -1px;border:1px
solid gainsboro;background:white;margin-top:0px}.calendar_date_select{color:white;border:#777 1px solid;display:block;width:195px;z-index:1000}iframe.ie6_blocker{position:absolute;z-index:999}.calendar_date_select thead
th{font-weight:bold;background-color:#aaa;border-top:1px solid #777;border-bottom:1px solid #777;color:white !important}.calendar_date_select
.cds_buttons{text-align:center;padding:5px
0px;background-color:#555}.calendar_date_select
.cds_footer{background-color:black;padding:3px;font-size:12px;text-align:center}.calendar_date_select
table{margin:0px;padding:0px}.calendar_date_select
.cds_header{background-color:#ccc;border-bottom:2px solid #aaa;text-align:center}.calendar_date_select .cds_header
span{font-size:15px;color:black;font-weight:bold}.calendar_date_select
select{font-size:11px}.calendar_date_select .cds_header a:hover{color:white}.calendar_date_select .cds_header
a{width:22px;height:20px;text-decoration:none;font-size:14px;color:black !important}.calendar_date_select .cds_header
a.prev{float:left}.calendar_date_select .cds_header
a.next{float:right}.calendar_date_select .cds_header
a.close{float:right;display:none}.calendar_date_select .cds_header
select.month{width:90px}</style>



<div class="ipsVerticalTabbed_content ipsLayout_content">
<div class='maintitle ipsFilterbar clear clearfix'>
<ul class='ipsList_inline left'>
Zmiany [NAZWA SERWERA]
<li class='active'>
</ul>

</div>
<div class='ipsLayout ipsVerticalTabbed clearfix usercp_body' style="clear:both;" >
<div class='ipsLayout ipsLayout_smallleft ipsVerticalTabbed clearfix usercp_body' style="
padding-right:0px">


<div class='ipsVerticalTabbed_content ipsLayout_content ipsBox_container' >
<div class='ipsPad'>

<br>

<if test="count($changes)">
<foreach loop="$changes as $row">
<div class="ipsSettings_section clear">
<a hovercard-ref='member' hovercard-id='{$row['member_id']}' class='url fn left _hovertrigger' href='{parse url="showuser={$row['member_id']}" template="showuser" seotitle="{$row['members_display_name']}" base="public"}' title='{$this->lang->words['view_profile']}'>{IPSMember::buildProfilePhoto($row['member_id'],$size=mini)}
</a>

<div style="margin-left:50px;min-height:30px;padding-right:">
<h3 style="margin-bottom:5px"><span class="desc"><img src="public/style_images/master/icon_follow_freq.png" data-tooltip="{parse date="$row['date']" format="LONG"}"></span> {$row['desc']} <if test="$this->memberData['g_access_cp']"><a data-tooltip="Usuń" href="{parse url="module=zmiany&section=changes&action=delete&uid={$row['uid']}&md5check={$this->member->form_hash}" base="publicWithApp"}">{parse replacement="gallery_album_delete"}</a></if></h3>{$row['_text']}
</div>


</div>

<br>
</foreach>

<else />
<center><p class="message unspecific">Brak wiadomości..</p></center>
</if>
<br><br>
<if test="$this->memberData['g_access_cp']">

<form method='post' action='{parse url="module=zmiany" base="publicWithApp"}'>
<fieldset class='row2'>
<h3>Dodaj nową wiadomość</h3>
<ul>
<li class='field'>
Tytuł określający zmianę: <td><input name='desc' id='desc' type='text' class='input_text'/></td>
</li>

Treść: <li class="field">
<td><textarea name='text' cols='45' rows='10'></textarea></td>
</li>
</ul>
</fieldset>

<fieldset class='submit' id='id_shownext_field'>
<input type='submit' name='ok' class='input_submit' value='Dodaj' />
</fieldset></form>

</if>

</div>
</div>



</div>

</div>

</div> <br>
<div class='right'><font size="1"><a href="http://napieprzamy.pl">Skrypt wykonany przez PGmajster</a></font></div>
]]></template_content>
<template_name>changesList</template_name>
<template_data>$changes</template_data>
<template_updated>1318949550</template_updated>
<template_removable>0</template_removable>
<template_user_added>0</template_user_added>
<template_user_edited>0</template_user_edited>
<template_master_key>root</template_master_key>
</template>
</templategroup>
</templates>

 

Plik: gamehub_modules.xml

 

<?xml version="1.0" encoding="utf-8"?>
<moduleexport>
<modulegroup>
<module>
<sys_module_title>Zmiany</sys_module_title>
<sys_module_application>gamehub</sys_module_application>
<sys_module_key>zmiany</sys_module_key>
<sys_module_description>Ostatnie zmiany</sys_module_description>
<sys_module_version>1</sys_module_version>
<sys_module_parent/>
<sys_module_protected>0</sys_module_protected>
<sys_module_tables/>
<sys_module_hooks/>
<sys_module_visible>1</sys_module_visible>
<sys_module_position>28</sys_module_position>
<sys_module_admin>0</sys_module_admin>
</module>
</modulegroup>
</moduleexport>

 

To? 

Domagasz się szybkiej reakcji z mojej strony? Proszę, zacytuj post.

Opublikowano (edytowane)

@Macsh15 Właśnie o to mi chodzi.

 

 

private function addNewChanges()
{
if( in_array( $this->memberData['member_group_id'], array( 1, 4 ) ) ){
{
if(empty($this->request['desc']) || empty($this->request['text']))
{
$this->registry->output->showError("Musisz wpisać temat oraz tekst nowej zmiany! <a href=\"" . $this->registry->getClass('output')->formatUrl( $this->registry->getClass('output')->buildUrl( "module=zmiany", "publicWithApp",'' ), "", "" ) . "\">Kliknij tutaj aby wrócić</a>");
}
else
{
$this->DB->query(sprintf(
'INSERT INTO `'.$this->DB->obj['sql_tbl_prefix'].'game_changes` (`date`, `desc`, `text`, `auid`) VALUES (%d,\'%s\',\'%s\',%d)',
IPS_UNIX_TIME_NOW,
$this->DB->addSlashes($this->request['desc']),
$this->DB->addSlashes($this->request['text']),
$this->memberData['member_id']
));
$this->DB->execute();
$this->registry->getClass('output')->addContent("<p class=\"message\">Nowa zmiana została dodana! <a href=\"" . $this->registry->getClass('output')->formatUrl( $this->registry->getClass('output')->buildUrl( "module=zmiany", "publicWithApp",'' ), "", "" ) . "\">Kliknij tutaj aby wrócić</a></p>");
$this->registry->getClass('output')->sendOutput();
}
}
}

 

 

Zrobiłem jak up.

 

Wywala błąd:

 

 

Parse error: syntax error, unexpected T_PUBLIC in /public_html/forum/admin/applications_addon/other/gamehub/modules_public/zmiany/changes.php on line 72

 

 

Linia 72:

 

 

 

public function deleteChanges()

 

 

Pozmieniałem też tutaj:

 

 

public function deleteChanges()
{
if( in_array( $this->memberData['member_group_id'], array( 1, 4 ) ) ){
{
$this->registry->getClass('output')->showError("Błąd! Prawdopodobna próba włamania. Administratorzy zostali o tym poinformowani! ",0);
return;
}
$this->DB->query('DELETE FROM '.$this->DB->obj['sql_tbl_prefix'].'game_changes WHERE uid='.intval($this->request['uid']).' LIMIT 1');
$this->DB->execute
$this->memberData['member_id']
));
$this->registry->getClass('output')->addContent("<p class=\"message\">Zmiana została usunięta pomyślnie! <a href=\"" . $this->registry->getClass('output')->formatUrl( $this->registry->getClass('output')->buildUrl( "module=zmiany", "publicWithApp",'' ), "", "" ) . "\">Kliknij tutaj aby wrócić</a></p> ");
$this->registry->getClass('output')->sendOutput();
}
}
}

 

 

i dalej wywala ten błąd.

 

Co może być źle?

Edytowane przez pawel7121

Domagasz się szybkiej reakcji z mojej strony? Proszę, zacytuj post.

  • Rozwiązanie
Opublikowano (edytowane)


private function addNewChanges(){

if( in_array( $this->memberData['member_group_id'], array( 1, 4 ) ) ){

if(empty($this->request['desc']) || empty($this->request['text'])){

$this->registry->output->showError("Musisz wpisać temat oraz tekst nowej zmiany! <a href=\"" . $this->registry->getClass('output')->formatUrl( $this->registry->getClass('output')->buildUrl( "module=zmiany", "publicWithApp",'' ), "", "" ) . "\">Kliknij tutaj aby wrócić</a>");

}

}else{

$this->DB->query(sprintf('INSERT INTO `'.$this->DB->obj['sql_tbl_prefix'].'game_changes` (`date`, `desc`, `text`, `auid`) VALUES (%d,\'%s\',\'%s\',%d)',

IPS_UNIX_TIME_NOW,

$this->DB->addSlashes($this->request['desc']),

$this->DB->addSlashes($this->request['text']),

$this->memberData['member_id']

)

);

$this->DB->execute();

$this->registry->getClass('output')->addContent("<p class=\"message\">Nowa zmiana została dodana! <a href=\"" . $this->registry->getClass('output')->formatUrl( $this->registry->getClass('output')->buildUrl( "module=zmiany", "publicWithApp",'' ), "", "" ) . "\">Kliknij tutaj aby wrócić</a></p>");

$this->registry->getClass('output')->sendOutput();

}

}

Edytowane przez Macsch15
  • Lubię to 1
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.