Skocz do zawartości

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ę.