Tutorials

Eine immer größer werdende Tutorialdatenbank.

PHP-Fusion Core

Aktuelle PHP-Fusion Vollversionen und Updates

Addon Downloads

Alle Downloads garantiert Kostenlos

Support 24/7

24 Stunden, 7 Tage die Woche, das ganze Jahr.

Thema ansehen
PHP-Fusion.at - Offizielle Supportseite für PHP-Fusion » Support für die Versionen v7.00 und v7.01 » Allgemein
Bbcode Permissions Thema drucken
Benutzeravatar

Senior Mitglied


Rolly8-HL Geschrieben am 15.07.2017 um 12:48
 #1 Beitrag drucken Top
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.
Download Code  Code
$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.
[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
Download Code  Code
$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?
Beiträge: 225 
http://rolly8-hl.de 
Benutzeravatar

Seiten Administrator


David Geschrieben am 15.07.2017 um 23:25
 #2 Beitrag drucken Top
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, David.

Aktiver PHP-Fusion Nutzer seit 3. September 2006

Beiträge: 373 
http://www.php-fusion.at/ 
Benutzeravatar

Senior Mitglied


Rolly8-HL Geschrieben am 16.07.2017 um 11:29
 #3 Beitrag drucken Top
Bin mir nicht ganz Sicher und muss es auch noch mal Global testen, habe es jetzt so gemacht, sieht aber nach Erfolg aus.
Download Code  Code
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?
Beiträge: 225 
http://rolly8-hl.de 
Springe ins Forum:
Anzeige


© 2016 Real Space. All rights reserved | Design by W3layouts
Powered by PHP-Fusion copyright © 2002 - 2017 by Nick Jones. Released as free software without warranties under GNU Affero GPL v3.