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>
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>
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 . "/";
?>
Code: Alles auswählen
<?php
echo 'Hallo Welt!';
?>
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>
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>
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 . "/";
?>
Code: Alles auswählen
<?php
echo 'Hallo Universum!';
?>
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" />
[...]
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 b) beide Plugins aktiviert, AMR aktiv 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.


Dank euch!
VG,
Markus