Seite 1 von 1
bbCode Button nur für Admins
Verfasst: 08.12.2006 23:04
von Elvis
Hallo,
wie kann cih deinzelne bbCode Buttons nur für den Admin zulassen ???
wenn ein User zb den bbCode [IMG] klicken will soll der nicht zu sehen sein und wenn der User dieses eingibt [IMG] soll es keine Funktion haben wobei der Admin das ganz normal nutzen kann.
Verfasst: 09.12.2006 00:19
von gn#36
Das Verstecken kannst du mit einem Switch im Template machen der einen entsprechenden Gegenpart im Quellcode der posting.php besitzt:
Code: Alles auswählen
<!-- BEGIN switch_is_admin -->
Code für Button
<!-- END switch_is_admin -->
Code: Alles auswählen
if($userdata['user_level'] == ADMIN)
{
$template->assign_block_vars('switch_is_admin',array());
}
Das andere wird schon komplizierter, denn dazu musst du entweder bei dem geposteten Text bei der Anzeige zwischen Admin und User unterscheiden oder aber den Code schon beim speichern in der DB umwandeln. Zweitere Methode hätte den Vorteil dass ein Admin Bilder nachträglich zulassen könnte indem dieser den Beitrag nachbearbeitet, während die Erste den Vorteil hat, auch auf bereits bestehende Posts zu wirken.
Ich habe bei mir Methode 2 realisiert, wobei außerdem eine spezielle Gruppe zugelassen ist:
Code: Alles auswählen
//---- EDITED FROM HERE ----
global $db,$userdata;
$sql = 'SELECT user_id FROM '. USER_GROUP_TABLE . ' WHERE (group_id=1) AND user_id='.$userdata['user_id'];
if (!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, 'Could not obtain group data', '', __LINE__, __FILE__, $sql);
}
if(!$db->sql_numrows($result) && $userdata['user_level'] != ADMIN)
{
//Remove forbidden tags from posted message
$message = preg_replace("#\[Img\](.*?)\[/Img\]#is","[url=\\1]Dieser Tag ist nicht zulässig, das Bild wird als URL dargestellt[/url]",$message);
}
//---- END EDIT ----
Die Änderung muss in der functions_post.php gemacht werden und zwar in der funktion prepare_message() direkt nach dem hier:
Wie immer gilt:
Zuerst ein Backup machen!
Verfasst: 09.12.2006 10:45
von Elvis
Das mit dem Switch wusste ich nur das andere nicht.
Danke.