Plugins zerschiessen Frontend im IE

Alles rund um Module und Plugins in CONTENIDO 4.9.
Antworten
McHubi
Beiträge: 1223
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Plugins zerschiessen Frontend im IE

Beitrag von McHubi »

Hallo zusammen,

ich habe ein interessantes - aber nerviges Problem: Ich kann keine zwei selbst entwickelten Plugins gleichzeitig aktivieren ohne das im IE (egal welche Versionen per F12 emuliert werden) das Layout im Frontend zerschossen wird. Im Firefox 30, Chrome36 und Opera 12.02 dagegen wird die Seite im Frontend korrekt dargestellt. Betroffen ist dabei nicht die Startseite, sondern lediglich die per Navigation aufgerufenen Unterseiten.

Um der Sache auf den Grund zu gehen und mögliche Einflüsse von eigenen Modueln usw. auszuschließen, habe ich lokal xampp und dort die 4.9.4 mit dessen Demomandanten installiert. Dann habe ich ein "Rumpf-Plugin" namens "hallowelt" erstellt und eine anders benannte Dublette "hallouniversum".

1) hallowelt
a) plugin.xml

Code: Alles auswählen

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<plugin>

<general active="1">
        <plugin_name>hallowelt</plugin_name>
        <plugin_foldername>hallowelt</plugin_foldername>
        <uuid>B1761838-EBE8-1FA5-DE4F-C7232E942FA9</uuid>
        <description>testplugin</description>
        <author>ich</author>
        <copyright>ich</copyright>
        <mail>ich@da.de</mail>
        <website>https://www.ich.de</website>
        <version>1.0.0</version>
</general>

    <requirements php="5.2.3">
        <contenido minversion="4.9.0" />
    </requirements>

    <contenido>

        <areas>
            <area menuless="1">hallowelt</area>
            <area parent="hallowelt" menuless="1">uebersicht</area>
        </areas>

        <actions>
            <action area="hallowelt">hallowelt</action>
            <action area="hallowelt">uebersicht</action>
        </actions>

        <frames>
            <frame area="hallowelt" filetype="main" name="hallowelt/includes/include.hallowelt.php" frameId="4" />
            <frame area="uebersicht" filetype="main" name="hallowelt/includes/include.hallowelt.php" frameId="4" />
        </frames>

        <nav_sub>
            <nav area="hallowelt" level="0" navm="1">hallowelt/xml/;navigation/content/hallowelt/main</nav>
            <nav area="uebersicht" level="1" navm="0">hallowelt/xml/;navigation/content/hallowelt/uebersicht</nav>
        </nav_sub>

    </contenido>

</plugin>
b) xml/lang_de_DE.xml

Code: Alles auswählen

<?xml version="1.0" encoding="UTF-8"?>
<!-- CONTENIDO XML language file -->
<language>
    <navigation>
        <content>
            <hallowelt>
                <main>hallowelt</main>
				<uebersicht>uebersicht</uebersicht>
            </hallowelt>
        </content>
    </navigation>
</language>
c) includes/config.plugin.php

Code: Alles auswählen

<?php
defined('CON_FRAMEWORK') || die('Illegal call: Missing framework initialization - request aborted.');
$plugin_name = "hallowelt";
$cfg['plugins']['hallowelt'] = cRegistry::getBackendPath() . "plugins/" . $plugin_name . "/";
?>
d) includes/include.hallowelt.php

Code: Alles auswählen

<?php
echo 'Hallo Welt!';
?>
2) hallouniversum
a) plugin.xml

Code: Alles auswählen

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<plugin>

<general active="1">
        <plugin_name>hallouniversum</plugin_name>
        <plugin_foldername>hallouniversum</plugin_foldername>
        <uuid>4888A9CA-43F3-08FF-7578-6B77AE756460</uuid>
        <description>kopie von hallowelt</description>
        <author>ich2</author>
        <copyright>ich2</copyright>
        <mail>ich@da.de</mail>
        <website>https://www.ich.de</website>
        <version>1.0.0</version>
</general>

    <requirements php="5.2.3">
        <contenido minversion="4.9.0" />
    </requirements>

    <contenido>

        <areas>
            <area menuless="1">hallouniversum</area>
            <area parent="hallouniversum" menuless="1">gesamt</area>
        </areas>

        <actions>
            <action area="hallouniversum">hallouniversum</action>
            <action area="hallouniversum">gesamt</action>
        </actions>

        <frames>
            <frame area="hallouniversum" filetype="main" name="hallouniversum/includes/include.hallouniversum.php" frameId="4" />
            <frame area="gesamt" filetype="main" name="hallouniversum/includes/include.hallouniversum.php" frameId="4" />
        </frames>

        <nav_sub>
            <nav area="hallouniversum" level="0" navm="1">hallouniversum/xml/;navigation/content/hallouniversum/main</nav>
            <nav area="gesamt" level="1" navm="0">hallouniversum/xml/;navigation/content/hallouniversum/gesamt</nav>
        </nav_sub>

    </contenido>

</plugin>
b) xml/lang_de_DE.xml

Code: Alles auswählen

<?xml version="1.0" encoding="UTF-8"?>
<!-- CONTENIDO XML language file -->
<language>
    <navigation>
        <content>
            <hallouniversum>
                <main>hallouniversum</main>
				<gesamt>gesamt</gesamt>
            </hallouniversum>
        </content>
    </navigation>
</language>
c) includes/config.plugin.php

Code: Alles auswählen

<?php
defined('CON_FRAMEWORK') || die('Illegal call: Missing framework initialization - request aborted.');
$plugin_name = "hallouniversum";
$cfg['plugins']['hallouniversum'] = cRegistry::getBackendPath() . "plugins/" . $plugin_name . "/";
?>
d) includes/include.hallouniversum.php

Code: Alles auswählen

<?php
echo 'Hallo Universum!';
?>
Die sonstigen Ordner und ggf. deren Unterordner "classes", "locale" und "templats" sind bei beiden ebenfalls vorhanden aber leer.

Beide Plugins ließen sich über den PIM ohne Probleme installieren und funktionieren im Backend auch ganz normal. Im Frontend wird jedoch, wie eingangs erwähnt, im IE - egal welche Version - das Layout zerschossen. Symptome als wenn die CSS-Dateien nicht geladen werden. Schaut man sich den Quelltext im FF an, sieht er so aus:

Code: Alles auswählen

[...]<base href="http://localhost/cms/" />

        <meta charset="utf-8" />

        <title>Features dieser Website - Content - Bildergalerie - Bildergalerie</title><link rel="stylesheet" type="text/css" href="//localhost/cms/cache/picture_gallery.css" id="m12" />

        <link rel="stylesheet" type="text/css" href="css/reset.css" />
        <link rel="stylesheet" type="text/css" href="css/main.css" />
        <link rel="stylesheet" type="text/css" href="css/contenido_backend.css" />
		[...]
Im IE exakt das Gleiche, Null Unterschied.

Bemüht man im IE allerdings die Entwicklerkonsole per F12 und protokolliert unter "Netzwerk" den Seitenaufbau, findet man folgendes:

a) nur ein Plugin aktiviert (egal welches), AMR aktiv
screenshot-fe-a-nur-ein-plugin-aktiviert-amr-aktiv-001.jpg
(180.12 KiB) Noch nie heruntergeladen
b) beide Plugins aktiviert, AMR aktiv
screenshot-fe-b-beide-plugins-aktiviert-amr-aktiv-001.jpg
(246.05 KiB) Noch nie heruntergeladen
Es scheint so, dass hier die CSS-Klassen erneut geladen werden sollen, allerdings von einer anderen Quelle aus. Durch den 404er-Fehler scheint der Inhalt der jeweiligen CSS-Dateien - die vorher ja korrekt geladen wurden, gelöscht zu werden. Da der Pfad zum neuerlichen Einlesen eine Clean-URL des AMR beinhaltet, habe ich das AMR einmal testweise deaktiviert, aber beide Plugins aktiviert. Jetzt wird die Seite im FE auch im IE korrekt dargestellt:

c) beide Plugins aktiviert, AMR deaktiviert Es macht keinen Unterschied, ob eines der Plugins nur deaktiviert oder komplett deinstalliert wurde. Sobald nur eines "läuft" oder AMR deaktiviert ist, klappt das FE im IE reibungslos. Caches der Browser oder von Contenido leeren, zahlreiches Ab- und wieder Anmelden usw. bringt auch nichts. In den Error-Logs ist übrigens auch nichts vermerkt.

Hat jemand eine Idee? Habe mir die Plugin-Dateien schon X-Mal angeschaut und finde nichts, was falsch sein könnte. :motz: :evil:

Dank euch!


VG,


Markus
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)

Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)
McHubi
Beiträge: 1223
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Re: Plugins zerschiessen Frontend im IE

Beitrag von McHubi »

Wenn jemand zum Testen die beiden Plugins bräuchte und keine Lust hat sie zu Fuß anzulegen, siehe Anlage... :wink:
Dateianhänge
hallowelt_hallouniversum.zip
(4.93 KiB) 225-mal heruntergeladen
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)

Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)
frederic.schneider_4fb
Beiträge: 967
Registriert: Do 15. Apr 2004, 17:12
Wohnort: Eschborn-Niederhöchstadt
Kontaktdaten:

Re: Plugins zerschiessen Frontend im IE

Beitrag von frederic.schneider_4fb »

Guten Tag,

es wird Dir keine befriedigende Antwort geben, aber ich kann die Probleme nicht reproduzieren. Ich habe Deine Testplugins (einzeln und zusammen) installiert und das AMR-Plugin aktiviert bzw. deaktiviert und kann keinerlei Probleme im IE darstellen. Möglicherweise hast Du weitere Anpassungen am System vorgenommen? Die Struktur der PIM-Plugins dürfen eigentlich keinerlei Einfluss auf das Frontend haben, außer die Plugins selbst nehmen irgendwelchen Einfluss auf Dateien Deiner Mandanten. In Deinen Beispielplugins ist das ausdrücklich nicht der Fall.
Frederic Schneider
Entwickler bei der four for business AG
McHubi
Beiträge: 1223
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Re: Plugins zerschiessen Frontend im IE

Beitrag von McHubi »

Hallo Frederic,

Danke Dir für Deine Antwort.
Möglicherweise hast Du weitere Anpassungen am System vorgenommen?
Um das auszuschließen, habe ich ja den "nackten" Demomandanten mit Beispielinhalten und Modulen lokal installiert (xampp ist Version 3.2.1). Die beiden Plugins installiert und schon kracht es... Welche Version vom IE hast Du verwendet? Vielleicht hat ja die Unterunterunterversion ja einen Hau... Bei mir ist es die 11.0.9600.17105

:roll: Grübel... Aber zumindest schon mal gut zu wissen, dass an den Plugins nicht grundsätzlich was falsch ist.
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)

Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)
frederic.schneider_4fb
Beiträge: 967
Registriert: Do 15. Apr 2004, 17:12
Wohnort: Eschborn-Niederhöchstadt
Kontaktdaten:

Re: Plugins zerschiessen Frontend im IE

Beitrag von frederic.schneider_4fb »

IE 11.0.9600.17207
Wie sieht es mit den anderen aus? Könnt Ihr seine Probleme bestätigen?
Frederic Schneider
Entwickler bei der four for business AG
McHubi
Beiträge: 1223
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Re: Plugins zerschiessen Frontend im IE

Beitrag von McHubi »

Nachdem ich mir zeitweise damit geholfen habe Funktionen eines zweiten Plugins einfach in ein Modul auszulagern - was wunderbar klappt - hänge ich immer noch bei dem Problem, dass ein zweites Plugin auch in der aktuellen 4.9.6er im IE das Frontend zerschiesst. Version vom IE: 11.0.9600.17633
Kann doch nicht wahr sein sowas... :motz:

Schaut man sich den Quelltext vom Frontend an, fällt dieser Unterschied auf:
Nur ein Plugin aktiviert:

Code: Alles auswählen

<!DOCTYPE html>
<head>
Beide Plugins aktiviert:

Code: Alles auswählen

  <!DOCTYPE html>
<head>
Hier sind zwei Leerzeichen zuviel.

Edit 02.03.2015 19:54:
Super. In anderer Installation läuft's auch im IE, dafür wird beim Aufruf eines Artikels im Reiter Editor nichts mehr angezeigt. WTF! Hier muss doch was an den Plugin-Dateien faul sein!
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)

Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)
frederic.schneider_4fb
Beiträge: 967
Registriert: Do 15. Apr 2004, 17:12
Wohnort: Eschborn-Niederhöchstadt
Kontaktdaten:

Re: Plugins zerschiessen Frontend im IE

Beitrag von frederic.schneider_4fb »

Und die Errorlog schweigt sich aus? Sieht ja so aus als würde er etwas laden wollen, aber er gibt nichts aus. Wenn Du mir einen aktuellen Dump Deines Plugins mal an frederic.schneider@4fb.de schickst, würde ich es mir am Donnerstag mal anschauen. Ggf. liegt ja wirklich ein Systemfehler vor.
Frederic Schneider
Entwickler bei der four for business AG
homtata
Beiträge: 1145
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

Re: Plugins zerschiessen Frontend im IE

Beitrag von homtata »

Ich kann das in einem Demo-Mandanten in der 4.9.4 reproduzieren mit den angebotenen Plugins aus der zip-Datei.
Ist nur EIN Plugin installiert, egal welches, gibt es die beiden Leerzeichen am Anfang der Seite nicht.
Sobald das zweite Plugin dazukommt, sind die Leerzeichen da - und die beeinflussen das Layout.

Ich habe in der Demo noch weitere Plugins installiert: Smarty, Form Assistant, User Form, Newsletter, waShop Editor - die machen alle keine Probleme in dieser Richtung.

Und wie beschrieben, tritt das Problem nur im IE 11 (bei mir: 11.0.9600.17633) auf, will heißen: die Leerzeichen sind auch im FF im Quellcode, werden dort aber ignoriert und nicht ausgegeben.
Ich sehe jetzt allerdings auch nicht, wo diese beiden extremst einfachen Plugins sich in von den anderen so unterscheiden, dass die entsprechend interagieren...
McHubi
Beiträge: 1223
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Re: Plugins zerschiessen Frontend im IE

Beitrag von McHubi »

@homtata:
"Gut", dass bis jetzt zumindest einer das Ganze reproduzieren konnte und ich keine weißen Mäuse sehe... :?

@frederic:
# die Plugins sind als zip zu Dir unterwegs
# das Errorlog schweigt sich aus
# da ich das Ganze bisher immer von einer 4.9.4er kommend getestet habe, hab ich eben einen frischen 4.9.6er Demomandanten aufgesetzt - das Problem bleibt.

Danke euch! :D
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)

Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)
Faar
Beiträge: 1951
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Hat sich bedankt: 15 Mal
Kontaktdaten:

Re: Plugins zerschiessen Frontend im IE

Beitrag von Faar »

Leerzeichen am Anfang des Dokumentes können manchmal daher kommen, dass hinter einem schließenden ?> noch Leerzeichen stehen und danach irgendwie HTML ausgegeben wird.
Aber auch bei einer String Übergabe können diese Leerzeichen drin stehen, womöglich noch Zeilenschub \n\r oder ähnliches. Der IE ist da empfindlich.
Vielleicht gibt es im Code irgendeine Ausgabe, die man vorher mit trim() behandeln könnt?

Aber auch der UTF-8 BOM macht sich am Anfang eines Dokumentes störend bemerkbar.
Manche Editoren zeigen den nicht als Hiroglyphen an und oft noch nicht einmal als Leerstellen, aber er ist trotzdem da und stört in der HTML-Ausgabe, falls er mal irgendwann eingefügt wurde.
Der muss dann mit einem Editor, der den BOM anzeigen kann, entfernt werden.

... nur so meine Gedanken.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.
Oldperl
Beiträge: 4316
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Hat sich bedankt: 6 Mal
Danksagung erhalten: 4 Mal
Kontaktdaten:

Re: Plugins zerschiessen Frontend im IE

Beitrag von Oldperl »

Servus Markus,

also ich kann es nicht nachvollziehen. Hier mal meine Serverdaten
CONTENIDO Version 4.9.4
Webserver-Version Apache/2.4.7 (Ubuntu)
Installierte PHP-Version 5.5.9-1ubuntu4.5
Datenbankserver-Version 5.5.38-0ubuntu0.14.04.1
PHP-Datenbankerweiterung mysqli
Ob nun mit oder ohne aktiviertem AMR, bei mir kommen keine Leerzeichen, egal ob ich 1 oder 2 deiner Plugins aktiviere, nix im Quelltext, weder im FF noch im IE

Gruß aus Franken

Ortwin
ConLite 3.0.0-dev, alternatives und stabiles Update von Contenido 4.8.x unter PHP 8.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
McHubi
Beiträge: 1223
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Re: Plugins zerschiessen Frontend im IE

Beitrag von McHubi »

Moin!
Tja. Was soll ich sagen. Fällt mir nix mehr zu ein. Wo ist die Papiertüte, die ich mir über den Kopf ziehen darf? :oops:
Der Zaunpfahl von Faar scheint des Rätsels Lösung gewesen zu sein. Habe per Notepad++ die Kodierung aller Dateien auf dem Server der beiden Plugins auf "UTF8 ohne BOM" geändert und beim Seitenreload im IE kracht's auf einmal nicht mehr... :roll: Wo ist der hüpfende Smiley?! :mrgreen:
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)

Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)
Faar
Beiträge: 1951
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Hat sich bedankt: 15 Mal
Kontaktdaten:

Re: Plugins zerschiessen Frontend im IE

Beitrag von Faar »

Nun, der BOM hatte mir mal ähnlich hartnäckige Probleme verursacht, als es noch weniger bekannt war, das hat sich tief bei mir eingeprägt :?
Freut mich, dass es half :)
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.
Antworten