Bbcode Permissions |
|
|
Senior Mitglied
|
Hallo, habe mal wieder eine Spezialfrage, ja mal wieder.
Ich benutze die Bbcode Permissions und in der maincore.php unter censorwords wird die bbcode_permissions_strip.php angesprochen.
Mit der kann geprüft werden ob es dem User erlaubt wird diesen BBC beim posten zu nutzen.
Da man ja mit Kopie und Einfügen ja einen BBC nutzen könnte die Ihm nicht erlaubt wurde.
Habe die bbcode_permissions_strip.php etwas geändert so das auch der Inhalt im BBC entfernt wird.
$text = preg_replace("/\[".$data['bbcode_name']."\]/", "[BBCNO]", $text);
$text = preg_replace("/\[\/".$data['bbcode_name']."\]/", "[/BBCNO]", $text);
$text = preg_replace("#\[BBCNO\](.*?)\[/BBCNO\]#si", " BBC [****] ", $text);
Ab jetzt wird nur noch BBC [****] angezeigt, da er bewusst die Regeln versucht zu umgehen könnte er jetzt Verwarnt werden.
Das ganze klappt auch sehr gut, ein Problem habe ich aber mit Erweiterungen in diesem BBCode.
Zitat [siz*=20]Hallo[/siz*]
Bei diesem Beispiel wird nur nach size gesucht und size=20 nicht als falsch angesehen.
Wie kann ich das Global mit auslesen lassen?
Mit
$text = preg_replace("/\[".$data['bbcode_name']."\(.*?)\]/", "[BBCNO]", $text);
hat das nicht geklappt, was muss ich da anders machen? |
Gruß Rolly8-HL
Was für Andere Wichtig ist muss für mich nicht genauso Wichtig sein!
Bin Dickkopf Unbelehrbar mache aus Protest nicht das was andere für Richtig halten!
Das gibt einem zu Denken oder?
|
|
|
|
Seiten Administrator
|
David Geschrieben am 15.07.2017 um 23:25 |
|
Also dass ist eine echt gute Frage, aber auch ebenso schwer lösbar.
Ich werde mal ein paar Profis fragen, aber ich denke auch diese werden hierfür keine Antwort haben. Am besten wäre, sich an einen Profi für RegExp zu wenden.. |
Liebe Grüße, euer David.
Aktiver PHP-Fusion Nutzer seit 3. September 2006
--------------------------------------------------------
PHP-Fusion Österreich Seitenbetreiber.
|
|
|
|
Senior Mitglied
|
Bin mir nicht ganz Sicher und muss es auch noch mal Global testen, habe es jetzt so gemacht, sieht aber nach Erfolg aus.
function bbcodec($text){
$fbb = dbquery("SELECT * FROM ".DB_BBCODES ."");
while ($data = dbarray($fbb)) {
if (preg_match_all("#\[".$data['bbcode_name']."\]#si", $text)) {
if (bbcodeps($data['bbcode_name']) == 0 ){
$text = preg_replace("#\[".$data['bbcode_name']."\]#si", "[BBCNO]", $text);
$text = preg_replace("#\[\/".$data['bbcode_name']."\]#si", "[/BBCNO]", $text);
$text = preg_replace("#\[BBCNO\](.*?)\[/BBCNO\]#si", " BBC [****] ", $text);
}
} else if (preg_match_all("#\[".$data['bbcode_name']."\=(.*?)\]#si", $text)) {
if (bbcodeps($data['bbcode_name']) == 0 ){
$text = preg_replace("#\[".$data['bbcode_name']."\=(.*?)\]#si", "[BBCNO]", $text);
$text = preg_replace("#\[\/".$data['bbcode_name']."\]#si", "[/BBCNO]", $text);
$text = preg_replace("#\[BBCNO\](.*?)\[/BBCNO\]#si", " BBC [****] ", $text);
}
}
}
return $text;
}
Hoffe ich jedenfalls.
Sieht etwas Unprofessionell aus, vielleicht gibt es ja noch eine Elegantere Lösung. |
Gruß Rolly8-HL
Was für Andere Wichtig ist muss für mich nicht genauso Wichtig sein!
Bin Dickkopf Unbelehrbar mache aus Protest nicht das was andere für Richtig halten!
Das gibt einem zu Denken oder?
|
|
|