Hallo Helmut,
Gäste sollen statt der geparsten Custom-Tags | zb [youtube] ein Ersatzbild ausgeliefert bekommen. Normale User dürfen alles sehen.
Im Grunde also ne einfache(!) Kiste, wenn man die richtigen Befehle und Stellen zum einpflegen kennt
Mein Berechtigungssystem, wer was benutzen darf, hab ich ja schon perfekt hinbekommen. Funktioniert 1A.
-
Vereinfachtes Verbieten und Erlauben der BBCodes (Update 26.05.2008)
Helmut hat geschrieben:willst du es bei dem Ersatzbild so haben, dass jemand der keine Berechtigung für den jeweiligen BBCode hat, auch in bereits bestehenden Posts diesen BBCode durch ein Bild ersetzt wird
Genau das. Bei den hardcoded [img] + [url] ist es mir ja gelungen:
Ausgeloggt > Keine Bilder zu sehen. Nur das Ersatzbild mit einer freundlichen Aufforderung zum registrieren.
Eingeloggt > Alle Bilder zu sehen.
-------------------------------------------------------
Das sind die mE heißeste Spuren:
Helmut hat geschrieben:Mir ist dazu noch ein anderer Lösungsweg eingefallen wenn du nur statt dem BBCode mit dem Inhalt an dieser Stelle was anderes anzeigen lassen willst und zwar könnte es in der viewtopic.php gehen. Das müsste die Stelle sein
Code: Alles auswählen
// Parse the message and subject
$message = censor_text($row['post_text']);
// Second parse bbcode here
if ($row['bbcode_bitfield'])
{
$bbcode->bbcode_second_pass($message, $row['bbcode_uid'], $row['bbcode_bitfield']);
}
$message = bbcode_nl2br($message);
$message = smiley_text($message);
Da könnte man doch mit sowas (Beispiel) was machen,
Code: Alles auswählen
$row['post_text'] = preg_replace('/\[(center)\]\[(size)=[0-9][0-9][0-9]\:[0-9a-z\:]+\](.*?)\[\/?(size)\:[0-9a-z\:]+\]\[\/?(center)\]/sim', '', $row['post_text']);
den BBCode ausfiltern und durch was anderes ersetzen.
------------------------------------------------
Helmut hat geschrieben:Du könntest hier z.B. über eine zusätzliche Spalte in der Tabelle phpbb3_bbcodes die Berechtigungen mit verarbeiten. Dann könnte man noch im ACP eine zusätzliche Abfrage einbauen, welche Gruppe diesen BBCode verwenden darf.
Hatte ein zusätzliches Feld eingebaut:
bbcode_allow_see mit einer einfachen Ja/Nein Abfrage (1/0). Hab mir dazu das Feld
display_on_posting als Beispiel genommen.
Da hänge ich nun an der Stelle, welche/s zusätzliche/n Feld/er ich nun "kopieren" muss, auf das ich die Ja/Nein Abfrage beziehen kann und zwar das, was für die letztliche Darstellung des zb. [youtube] Tags zuständig ist. Ist es nun
first_pass_replace und second_pass_match (und welche Rolle spielt im Zweifelsfalle noch
second_pass_replace).
Dann könnte man in diese/s neue/n Feld/er eine feste Anweisung für jeden Tag integrieren, zb.
Code: Alles auswählen
[img:$uid\]http://www.blabla.de/mein_pfad/zum_ersatzbild.jpg[/img:$uid\]
oder sogar nur
Code: Alles auswählen
[img]http://www.blabla.de/mein_pfad/zum_ersatzbild.jpg[/img]
da das Bild ja immer gleich bleibt..
..und eine Zusätzliche Checkbox im ACP > Beiträge > BBCodes unter
Code: Alles auswählen
Einstellungen
Beim Verfassen eines Beitrags anzeigen [ ]
zb.
Ok, wenn diese Fragen geklärt
wären (besonders diese, ob es tatsächlich nur so bzw. ob es überhaupt so geht), würde es noch um die SQL-Abfrage gehen und um die Frage, wo genau friemelt man das in welcher *.php Datei ein.
Oh man
