Also den entsprechenden regexp findest Du in der includes/bbcode.php bei Zeile 280 rum:
Code: Alles auswählen
// [img]image_url_here[/img] code..
$text = preg_replace("#\[img\]((ht|f)tp://)([^ \?&=\"\n\r\t<]*?(\.(jpg|jpeg|gif|png)))\[/img\]#sie", "'[img:$uid]\\1' . str_replace(' ', '%20', '\\3') . '[/img:$uid]'", $text);
Hab gerade bei einem 2.0.5 das ich noch auf der Platte habe nachgeschaut, da sah das so aus:
Code: Alles auswählen
// [img]image_url_here[/img] code..
$text = preg_replace("#\[img\]((ht|f)tp://)([^\r\n\t<\"]*?)\[/img\]#sie", "'[img:$uid]\\1' . str_replace(' ', '%20', '\\3') . '[/img:$uid]'", $text);
Du könntest Dir jetzt die Funktion so umbauen, dass Du beim Aufruf noch einen zusätzlichen Parameter einbaust:
Code: Alles auswählen
function bbencode_first_pass($text, $uid,$allow_php_images)
{
.
.
.
// [img]image_url_here[/img] code..
if ($allow_php_images)
{
$text = preg_replace("#\[img\]((ht|f)tp://)([^\r\n\t<\"]*?)\[/img\]#sie", "'[img:$uid]\\1' . str_replace(' ', '%20', '\\3') . '[/img:$uid]'", $text);
} else
{
$text = preg_replace("#\[img\]((ht|f)tp://)([^ \?&=\"\n\r\t<]*?(\.(jpg|jpeg|gif|png)))\[/img\]#sie", "'[img:$uid]\\1' . str_replace(' ', '%20', '\\3') . '[/img:$uid]'", $text);
}
Jetzt fügst Du in der config Tabelle noch einen neuen Wert
user_allow_php_img ein, wo Du mit Semikolon getrennt die IDs der User einträgst, die das benutzen dürfen.
Beim Aufruf der Funktion in der
functions_post.php (ca Zeile 100) musste jetzt halt noch entsprechend die config auslesen und benutzen:
Code: Alles auswählen
$php_img_user_list = explode(";",$board_config['user_allow_php_img']);
$user_allow_php_img = ( in_array($userdata['user_id'], $php_img_user_list)) ? true : false;
$message = bbencode_first_pass($message, $bbcode_uid, $user_allow_php_img);
Achtung alle Angaben ohne Gewähr, hab das jetzt nur grob runtergeschrieben und nix getestet. Obige Lösung hat den Vorteil, dass Du fast ohne Änderungen der DB auskommst. Da ich mal davon ausgehe, dass es sich nur um ein paar Moderatoren handelt, die das dürfen ist das auch einfach zu warten.
Alternative wäre halt ein zusätzliches Feld in der Users-Tabelle, wo Du das dann - ins ACP integriert - für jeden User einzeln aktivieren oder deaktiveren könntest (halt aufwendiger)...
Gruß, Dave