MyBB.de Forum

Normale Version: Fehlerhafte Darstellung von Smilies
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
In der neuen Version 1.2.10 werden Smilies falsch dargestellt. Der Fehler tritt nur auf wenn mehrere Smilies ohne Leerzeichen direkt hintereinander im Text sind. Jeweils der 2.te Smilie wird dann nicht als Gif gesetzt sondern der Ersetzungscode bleibt stehen.
Bitte die Suche benutzen. Die Lösung findest du sowohl im Forum als auch auf der Startseite der Doku.
Ich wollte jetzt nicht extra ein neues Thema aufmachen...

Das Problem scheint in MyBB 1.2.12 immernoch zu bestehen (==>siehe hier) Oder ist da bei mir beim Update etwas schief gegangen? Kann der alte fix noch verwendet werden und falls ja wo find ich den... die SuFu findet nur noch Themen mit Antworten ala "Schau in der Doku" (wie dieses) aber da steht ja jetzt nichts mehr Wink

Schonmal danke im Voraus
Den Fix dazu findest du hier, du musst nur zwei Zeilen ändern. MyBB 1.2.x erhält im Moment nur noch Sicherheitsupdates, da an der Fertigstellung von 1.4 gearbeitet wird. Bugfix-Releases sind daher nicht mehr vorgesehen.
OK danke, die Smilies gehen wieder. Aber ich habe festgestellt, dass das Problem auch beim Badword-Filter besteht. Ich hab leider von preg_replace keine Ahnung, kann mir da jemand helfen?
Wie genau macht sich das Problem bemerkbar? Leider ist hier bisher kein Problem bekannt.
Es passiert das selbe wie bei den Smilies, es wird also nur jedes 2. Badword ersetzt (siehe Screen).

EDIT:
Sieht so aus als ob ich das Problem doch selbst gelöste habe.
In inc/class_phraser.php Zeile 451
PHP-Code:
$message preg_replace("#(\W|^)".$badword['badword']."(\W|$)#i""\\1".$badword['replacement']."\\2"$message); 
Ersetzen durch:
PHP-Code:
$message preg_replace("#(\W|^)".$badword['badword']."(\W|$)#im""\\1".$badword['replacement']."\\2"$message); 
Allerdings bleibt das Problem bestehen wenn in einer Zeile hintereinander mehrfach das selbe Badword steht.
Kannst du es mal bitte damit versuchen?
PHP-Code:
$message preg_replace("#(\b|^)".$badword['badword']."(\b|$)#i""\\1".$badword['replacement']."\\2"$message); 
Vielen dank, es funktioniert.