ConPresso Community

Fragen, Antworten, Diskussionen rund um das Content Management System ConPresso

 
Gelöst: Inkompatibilität mit Firefox 3.6!

 
Neue Antwort erstellen    ConPresso Community Foren-Übersicht -> ConPresso 4
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Mr. Magpie
ConPresso-Experte


Anmeldungsdatum: 01.01.1970
Beiträge: 995
Wohnort: Wuppertal

BeitragVerfasst am: 01.02.2010 13:04    Titel: Gelöst: Inkompatibilität mit Firefox 3.6! Antworten mit Zitat

Ich hatte heute Nacht ein Problem, das mich ganz schön Nerven gekostet hat!
Irgendwann in den letzten Tagen hatte ich von Firefox 3.5.7 (Windows) auf Firefox 3.6 upgedatet. Soweit, so gut.

Während der Arbeit mit ConPresso-Templates fielen mir plötzlich Ungereimtheiten auf, die ich mir nicht erklären konnte und (zunächst) schon gar nicht in Zusammenhang mit dem FF-Update brachte.

Das Problem: Template-Bedingungen wurden einfach ignoriert!

Inzwischen konnte ich's eingrenzen auf einen Fehler, der erst seit FF 3.6 beim Kopieren von Template-Abschnitten auftritt, wenn Platzhalternamen ein oder mehrere Leerzeichen enthalten.

Testcase:

Folgendermaßen sehe ein im Template-Editor (bspw. im Feld "Rubrikseite") erstelltes Template aus:
Zitat:
<div>Kontrolltext: <!-- text: Ein Testfeld; --></div>
<div><!-- ifSet: Ein Testfeld; --><!-- text: Ein Testfeld; --><!-- /ifSet --></div>

Das Ergebnis ist im Frontend wie erwartet:
Zitat:
Kontrolltext: Dies ist der Inhalt des Feldes
Dies ist der Inhalt des Feldes

Kopiert man jetzt im Template-Editor die zweite Templatezeile zu
Zitat:
<div>Kontrolltext: <!-- text: Ein Testfeld; --></div>
<div><!-- ifSet: Ein Testfeld; --><!-- text: Ein Testfeld; --><!-- /ifSet --></div>
<div><!-- ifSet: Ein Testfeld; --><!-- text: Ein Testfeld; --><!-- /ifSet --></div>

dann wird's heikel, denn das Frontend-Ergebnis sieht so aus:
Zitat:
Kontrolltext: Dies ist der Inhalt des Feldes
Dies ist der Inhalt des Feldes


Man kann nun den Fehler manuell beheben, indem man im zweiten <!-- ifSet: Ein Testfeld; --> das Leerzeichen zwischen "Ein" und "Testfeld" über die Tastatur durch ein Leerzeichen ersetzt.

Noch abstruser wird's mit einem Platzhalter, welcher mehr als ein Leerzeichen enthält, bspw. <!-- ifSet: Name der Uni; -->, denn dann reicht es (nach der Kopieraktion) aus, das zweite Leerzeichen, das zw. "der" und "Uni" zu ersetzen. Ersetzt man dagegen nur das erste Leerzeichen, schafft das keine Abhilfe.

Schlussbemerkungen:
* Getestet wurde sowohl mit dem Standard-Parser von ConPresso 4.0.9 als auch mit mod_parser_enhanced.
* Firefox 3.6 wurde ohne zusätzliche Add-ons verwendet.
* Nach Reinstallation des Firefox 3.5.7 trat der Fehler nicht mehr auf.

Ich bin mir nicht sicher, wer jetzt der eigentliche Verursacher des Problems ist bzw. wo das Problem am schnellsten gelöst werden kann - beim Firefox oder bei ConPresso. Deshalb hab' ich's auch nicht bei den ConPresso-Bug gepostet. Solange ich nicht weiß, was da beim Kopieren genau geschieht, kann ich's halt auch nur schlecht der Mozilla-Community als Bug melden.
Natürlich könnte ich ausschließlich Platzhalter ohne Leerzeichen verwenden, aber 1) sieht's mit Leerzeichen im Artikeleingabe-Formular besser aus, da der Platzhalter-Name dort ja verwendet wird; 2) wäre es echt viel Arbeit, die vielen bestehenden Templates deshalb umzuarbeiten, von den entspr. Artikeln ganz zu schweigen.

EDIT: Es ist auch ganz egal, ob man die Template-Zeile über die Zwischenablage kopiert oder per Drag-and-Drop kopiert oder auch nur verschiebt!

_________________
Günther Ludwig, amazingBytes webdesign   

Referenzen finden Sie hier: amazingBytes webdesign - Referenzen


Zuletzt bearbeitet von Mr. Magpie am 08.02.2010 11:36, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Mr. Magpie
ConPresso-Experte


Anmeldungsdatum: 01.01.1970
Beiträge: 995
Wohnort: Wuppertal

BeitragVerfasst am: 01.02.2010 19:18    Titel: Antworten mit Zitat

Hatte jetzt einmal ein wenig Muße, um in die Datenbank zu schauen.
FF 3.6 sprenkelt beim Kopieren scheinbar willkürlich Leerzeichen ein, die man aber im Template-Editor nicht sieht.
Beim FF 3.5.7 geschieht dies definitiv nicht, übrigens auch nicht beim IE8.

_________________
Günther Ludwig, amazingBytes webdesign   

Referenzen finden Sie hier: amazingBytes webdesign - Referenzen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Matthias V
Modul-Entwickler


Anmeldungsdatum: 01.01.1970
Beiträge: 1251
Wohnort: Sondershausen

BeitragVerfasst am: 02.02.2010 22:09    Titel: Antworten mit Zitat

hast du testweise alle Erweiterungen deaktiviert?
_________________
mod_Guestbook 4.1.0

Features:
- Einträge als ConPresso-Artikel
- benutzt Templates, Rubriken, ...
- Captcha
- BB-Code + Smilies + Zitieren
- Badwords
- Anonymisierung
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mr. Magpie
ConPresso-Experte


Anmeldungsdatum: 01.01.1970
Beiträge: 995
Wohnort: Wuppertal

BeitragVerfasst am: 02.02.2010 22:17    Titel: Antworten mit Zitat

Nachdem ich die Ungereimtheiten entdeckt hatte, habe ich ein Downgrade auf 3.5.7 gemacht - wie zu erwarten traten die Probleme dann nicht mehr auf.
Anschl. habe ich den FF 3.6 in ein separates Programmverzeichnis installiert und ein neues FF-Profil erstellt, ganz ohne Erweiterungen/Add-ons. Aus den nachfolgenden Tests entsprang dann der obige Testcase

_________________
Günther Ludwig, amazingBytes webdesign   

Referenzen finden Sie hier: amazingBytes webdesign - Referenzen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
balu
ConPresso-Entwickler


Anmeldungsdatum: 01.01.1970
Beiträge: 1745

BeitragVerfasst am: 04.02.2010 09:03    Titel: Antworten mit Zitat

Hi Magpie,

wie hast Du den Platzhalter kopiert? ctrl-c, ctrl-v?

Ich werde mal versuchen, das hier nachzuvollziehen.

Balu

_________________
Bartels.Schöne
ConPresso Support & Development
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mr. Magpie
ConPresso-Experte


Anmeldungsdatum: 01.01.1970
Beiträge: 995
Wohnort: Wuppertal

BeitragVerfasst am: 04.02.2010 12:18    Titel: Re: Inkompatibilität mit Firefox 3.6! Antworten mit Zitat

Hallo Balu, ich hatte doch geschrieben:

Mr. Magpie hat Folgendes geschrieben:
[...]EDIT: Es ist auch ganz egal, ob man die Template-Zeile über die Zwischenablage kopiert oder per Drag-and-Drop kopiert oder auch nur verschiebt!

Wenn das niemand nachvollziehen kann, bin ich völig ratlos Crying or Very sad

_________________
Günther Ludwig, amazingBytes webdesign   

Referenzen finden Sie hier: amazingBytes webdesign - Referenzen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
balu
ConPresso-Entwickler


Anmeldungsdatum: 01.01.1970
Beiträge: 1745

BeitragVerfasst am: 08.02.2010 09:25    Titel: Antworten mit Zitat

Hi,

es gibt manchmal Unterschiede im Verhalten, ob man das Kopieren über das Bearbeiten-Menü macht oder per ctrl-c / ctrl-v.

Darum frage ich Smile

Balu

_________________
Bartels.Schöne
ConPresso Support & Development
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mr. Magpie
ConPresso-Experte


Anmeldungsdatum: 01.01.1970
Beiträge: 995
Wohnort: Wuppertal

BeitragVerfasst am: 08.02.2010 10:32    Titel: Antworten mit Zitat

Okay, ich habe nie das Bearbeiten-Menü benutzt, welches ja im Template-Editor auch gar nicht zur Verfügung steht.
Auch die Buttons des Template-Editors habe ich - wahrscheinlich - nicht benutzt.

Ich habe ausschließlich mit der Maus per Drag 'n' Drop kopiert bzw. verschoben oder per Tastatur (^c/^x und ^v)

_________________
Günther Ludwig, amazingBytes webdesign   

Referenzen finden Sie hier: amazingBytes webdesign - Referenzen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
balu
ConPresso-Entwickler


Anmeldungsdatum: 01.01.1970
Beiträge: 1745

BeitragVerfasst am: 08.02.2010 10:34    Titel: Antworten mit Zitat

So, Problem gefunden.

Mozilla hatte vor Jahren bereits einen Bug in diese Richtung, den ich im CPO per Workaround umgehen musste. Darum findet sich in _admin/templates.php der folgende Code:

Code:
                // Mozilla wrongly converts space to CR+LF in innerHTML so let's try to fix that
                // https://bugzilla.mozilla.org/show_bug.cgi?id=89780
                $_REQUEST[$v] = preg_replace("/(\r\n|\n|\r)/", ' ', $_REQUEST[$v]);
                $_REQUEST[$v] = preg_replace('%<br( /)?>%i', "\n", $_REQUEST[$v]);


Das Problem hat sich jetzt wohl wieder eingeschlichen, tritt aber (hoffentlich) nur beim Einfügen von Text auf. Das Problem ist, dass dort eine neue Zeile eingefügt wird.

Früher war es so, dass die eingefügten Zeichen durch ein Leerzeichen ersetzt werden mussten (Newline = Whitespace). Jetzt ist es wohl besser, es durch "nichts" zu ersetzen:

Code:
                // Mozilla wrongly converts space to CR+LF in innerHTML so let's try to fix that
                // https://bugzilla.mozilla.org/show_bug.cgi?id=89780
                $_REQUEST[$v] = preg_replace("/(\r\n|\n|\r)/", '', $_REQUEST[$v]);
                $_REQUEST[$v] = preg_replace('%<br( /)?>%i', "\n", $_REQUEST[$v]);


Probier das mal aus, ich hoffe, das wirkt sich nicht noch auf andere Teile aus und wird bald behoben.

Balu

_________________
Bartels.Schöne
ConPresso Support & Development

 
Für dieses Posting bedanken sich die folgenden User: Mr. Magpie
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mr. Magpie
ConPresso-Experte


Anmeldungsdatum: 01.01.1970
Beiträge: 995
Wohnort: Wuppertal

BeitragVerfasst am: 08.02.2010 11:11    Titel: Antworten mit Zitat

Funktioniert hervorragend! Bisher alle Tests ohne negative Nebeneffekte!
_________________
Günther Ludwig, amazingBytes webdesign   

Referenzen finden Sie hier: amazingBytes webdesign - Referenzen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neue Antwort erstellen    ConPresso Community Foren-Übersicht -> ConPresso 4 Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen