Problem mit PHP-Highlighter (phpBB)

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
killerbees19
Mitglied
Beiträge: 1185
Registriert: 09.05.2006 17:33
Wohnort: Wien (Österreich)
Kontaktdaten:

Problem mit PHP-Highlighter (phpBB)

Beitrag von killerbees19 »

Hallo. Ich habe ein kleines Problem mit einem MOD, es geht um diesen hier: http://www.redio.de/postings/12004.html#12004
Dort kann man auch das Problem nachlesen.

Ich habe es nun mit der Hilfe von DrDeath schon geschafft, dass die BB-Codes innerhalb von [php]Tags nicht geparsed werden, wie man hier sieht: http://www.forum.happytec.at/viewtopic. ... 1622#11622
Das einzige Problem ist jetzt nur noch, dass Smilies geparsed werden und auch vielleicht die Wortzensur.

Bisher habe ich nun folgendes in der Datei bbcode.php verändert:
http://www.happytec.at/phpbb.de/bbcode_ ... bisher.txt

Wie schaffe ich es nun, dass innerhalb von [php]-Tags bei der Ausgabe keine Smilies geparsed werden und auch keine Wortzensur vorgenommen wird?

Vielen Dank schon im Voraus für eure Hilfe :)


MfG Christian
Zuletzt geändert von killerbees19 am 30.03.2007 18:12, insgesamt 2-mal geändert.
» Real programmers don't comment. If it was hard to write, it should be hard to understand!
Benutzeravatar
killerbees19
Mitglied
Beiträge: 1185
Registriert: 09.05.2006 17:33
Wohnort: Wien (Österreich)
Kontaktdaten:

Beitrag von killerbees19 »

Kennt sich niemand mit dem Innenleben von phpBB oder mit Regulären Ausdrücken aus?
Man müsste es doch nur so ähnlich machen wie beim

Code: Alles auswählen

-Tag....


MfG Christian
» Real programmers don't comment. If it was hard to write, it should be hard to understand!
Benutzeravatar
killerbees19
Mitglied
Beiträge: 1185
Registriert: 09.05.2006 17:33
Wohnort: Wien (Österreich)
Kontaktdaten:

Beitrag von killerbees19 »

Keine Vorschläge? :cry:


MfG Christian
» Real programmers don't comment. If it was hard to write, it should be hard to understand!
Benutzeravatar
killerbees19
Mitglied
Beiträge: 1185
Registriert: 09.05.2006 17:33
Wohnort: Wien (Österreich)
Kontaktdaten:

Beitrag von killerbees19 »

Ich habe gerade bemerkt, dass einige Smilies nun auch innerhalb des

Code: Alles auswählen

-Tags geparsed werden: http://www.forum.happytec.at/viewtopic.php?p=12589#12589
Das seltsame ist, dass es nur bei manchen Smilies ist, nicht bei allen....

Weiß dafür jemand eine Lösung?
Danke schon im Voraus.


MfG Christian
» Real programmers don't comment. If it was hard to write, it should be hard to understand!
Benutzeravatar
Rondom
Mitglied
Beiträge: 36
Registriert: 06.03.2004 23:47
Wohnort: Kirchhain-Emsdorf

Beitrag von Rondom »

Ich schlage vor, einfach neu machen. Ohne Dateien kann eh keiner was sehen.l Und soviel Arbeit ist das jetzt net.

Wenn der [php]-BBcode einen Bug hat, sollte der Autor da beheben. Falls du ihn falsch eingebaut hast, kannst du entweder die bbcode.php posten oder einfach die bbcode.php neu machen.
Download my Hacks - Seite momentan offline :(
Benutzeravatar
killerbees19
Mitglied
Beiträge: 1185
Registriert: 09.05.2006 17:33
Wohnort: Wien (Österreich)
Kontaktdaten:

Beitrag von killerbees19 »

Danke einmal für die Antwort. Einbaufehler gibt es zu 100% keine, ich habe das in einem halben Jahr nun 30 mal überprüft. Es handelt sich zu 100% um einen Fehler im MOD. Das Problem ist, der Autor kümmert sich nicht darum. Er wusste keine Lösung und schweigt sich darüber aus. Das Problem mit diesem MOD haben übrigens einige Personen ;-)


MfG Christian
» Real programmers don't comment. If it was hard to write, it should be hard to understand!
Benutzeravatar
Rondom
Mitglied
Beiträge: 36
Registriert: 06.03.2004 23:47
Wohnort: Kirchhain-Emsdorf

Beitrag von Rondom »

Ich bin inzwischen auch nicht mehr in phpBB drinne, aber iirc werden bbcodes dadruch ausgefiltert, dass sie keine uid bekommen und für Smilies gibt es ne extra Funktion. Der Code in der bbcode.php ist relativ gut kommentiert, meiner Meinung nach. Man kann ja mal ein bisschen rumexperimentieren (auch ohne Regex-Kenntnisse).

PS: Ich weiß, dass mein ShowHide-Hack auch einen Bug (Glashaus) hat, der nur bei mehreren verschachtelten Showhides mit Titel auftritt, aber ich habe schon lange das Interesse für phpBB verloren. Vielleicht in den nächsten Wochen...

EDIT: typo
Download my Hacks - Seite momentan offline :(
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Die Antwort findet sich in diesen beiden Zeilen der bbcode.php:

Code: Alles auswählen

$code_entities_match = array('#<#', '#>#', '#"#', '#:#', '#\[#', '#\]#', '#\(#', '#\)#', '#\{#', '#\}#');
$code_entities_replace = array('<', '>', '"', ':', '[', ']', '(', ')', '{', '}');
Wenn man sich das genauer ansieht dann stellt man fest, dass der Doppelpunkt ( : ), welcher ja die Smileys einleitet durch seine Encodierung & # 5 8 ; (wenn ich es zusammenschreibe dann ersetzt er es beim benutzen der Edit Funktion, die Leerzeichen gehören nicht rein...) ersetzt wird. Das alleine sollte eigentlich ausreichen, damit die Smileys nicht mehr geparst werden. Muss dann wohl nur noch irgendwo in den Mod rein. Der Smileyparser sucht zwar nicht zwingend nach dem Doppelpunkt, aber alle Smileycodes beginnen oder enden mit einem Doppelpunkt so dass der Parser die ersetzten Doppelpunkte nicht findet. Wenn ihr die Doppelpunkte z.b. testweise durch einen Bindestrich ersetzt werdet ihr feststellen dass dann alle Smileys geparst werden, selbst wenn sie sich in einem Code Tag befinden.

Wenn also ein paar Smileys geparst werden die es nicht sollen würde ich schauen, ob der Doppelpunkt durch die HTML Entität ersetzt wird (am besten bereits beim First pass, also vor dem Eintrag in die Datenbank, so passiert das auch beim Code Tag, das wird dann beim Bearbeiten denke ich wieder Rückersetzt, müsste man notfalls neu einfügen.)

Edit: Ich sehe gerade, die HTML Entities die oben drin sind sind offenbar bei der Darstellung hier beim verwenden der EDIT Funktion ersetzt worden...
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Benutzeravatar
killerbees19
Mitglied
Beiträge: 1185
Registriert: 09.05.2006 17:33
Wohnort: Wien (Österreich)
Kontaktdaten:

Beitrag von killerbees19 »

Danke einmal gn#36 und Rondom. Mit dem Doppelpunkt habe ich es auch schon bemerkt. Aber leider beginnen nicht alle Smilies mit Doppelpunkten.

Dazu gibt es hier übrigens einen Textbeitrag, wo ich es mit [php] und

Code: Alles auswählen

 ausprobiert habe: http://www.forum.happytec.at/viewtopic.php?p=13034#13034

Ich werde mich jetzt mal durch die bbcode.php durchwühlen :lol: 

[color=blue]EDIT:[/color]
Durch einen neuen Test ist mir aufgefallen, dass nur bei folgenden Smilies das Problem auftritt:
[code] :) :( :? :?: :!: :| xD =) 
Ich habs innerhalb der

Code: Alles auswählen

-Tags geschrieben, damit nicht manche Smilies umgewandelt werden ;-)

[color=blue]EDIT2:[/color]
Innerhalb des [code]-Tags werden auch nur xD und ;P geparsed...

[color=blue]EDIT3:[/color]
[b]Interessante neue Erkenntnis:[/b]
In einem neuen, nicht gemoddeten phpBB, frisch aufgesetzt, werden folgende Smilies innerhalb der [code]-tags geparsed: xD und ;P
Und das ist in jedem phpBB so. Damit ist der eine Fehler mit dem [code]-Tag einmal nicht vom MOD, sondern scheinbar ein kleiner Fehler in phpBB. Den anderen Fehler teste ich gerade noch aus ;-)

[color=blue]EDIT4:[/color]
Nun habe ich es geschafft, dass nur mehr die gleichen Fehler wie im [code]-Tag vorhanden sind. Die Lösung findet ihr wieder hier, die unterste Anweisung habe ich noch geändert ;-)
http://www.happytec.at/phpbb.de/bbcode_php_problem_bisher.txt
Das ganze sieht nun so aus: http://www.forum.happytec.at/viewtopic.php?p=13035#13035

Das Problem mit dem PHP-Highlighter-MOD wäre also gelöst.

Und für das zweite Problem: Das nehme ich in Kauf und werde gegebenenfalls die Smilies umändern (xD und ;P). Nur finde ich es seltsam, dass man in phpBB keine Smilies verwenden kann, die keine Klammer / Doppelpunkt verwenden. Vielleicht kann man dieses Problem ja irgendwie lösen.


MfG Christian
» Real programmers don't comment. If it was hard to write, it should be hard to understand!
Benutzeravatar
Rondom
Mitglied
Beiträge: 36
Registriert: 06.03.2004 23:47
Wohnort: Kirchhain-Emsdorf

Beitrag von Rondom »

Für das nicht parsen von Smilies innerhalb Code-Tags gab es mal einen Hack, ich glaube es war auf phpbbhacks.com. Das war zu Zeiten von 2.0.3 oder so und ich dachte das wäre inzwischen längst gefixt. Aber anscheinend haben Sie das nur mit dem oben beschriebenen "Doppelpunkthack" gemacht. Ich weiß nicht wie der Hack das gemacht hat. Der meiner Meinung nach "korrekteste" Weg wäre Smilies mit der bbcode_uid zu versehen, wie es ja auch für bbcodes innerhalb Code-tags nicht getan wird (nicht so praktisch für laufende Installationen, wegen Aufwand für Umstellung).
Download my Hacks - Seite momentan offline :(
Antworten

Zurück zu „Coding & Technik“