Bootstrap in Zikula 1.3.x - Zusammenspiel mit Prototype

in  Zikula Apps  , , ,

Bootstrap in Zikula 1.3.x - Zusammenspiel mit Prototype

Zikula verwendet ab Version 1.4.0 Bootstrap zur Ausgestaltung der Oberfläche. Natürlich kann man Bootstrap aber auch bereits für 1.3.x einsetzen. Wir haben mittlerweile eine gute Hand voll Themes mit Bootstrap unter 1.3.x erstellt oder umgebaut. Problematisch kann es werden, wenn man JavaScript-Komponenten von Bootstrap einsetzen möchte, gleichzeitig aber noch Prototype von irgendeinem Modul geladen wird.

Die JavaScript-Bestandteile von Bootstrap verwenden als Basis jQuery. Dies ist bereits in Zikula 1.3.x enthalten und kann einfach - auch zusammen mit Prototype - geladen und verwendet werden.

Während die Arbeit mit den CSS-Klassen von Bootstrap direkt und problemlos möglich ist, kann es beim Einsatz einiger JavaScript-Komponenten zu unerwartetem Verhalten kommen: so kann es beispielsweise passieren, dass Tooltips, Dropdowns und Popovers flackern oder sich zu schnell schließen. Dies hängt mit einer Inkompatibilität mit Prototype zusammen. Eine Lösung dazu fand ich glücklicherweise bei Stack Overflow. Einfach das in der ersten Antwort gezeigte Code-Snippet in eine JS-Datei im Theme einbinden und schon funktionieren die Bootstrap UI-Komponenten wie gewünscht.

In einem späteren Umbauschritt einer Seite gelangt man an den Punkt, an dem kein Prototype mehr geladen wird, da alle involvierten Templates und Skripte auf jQuery portiert wurden. Sobald Prototype nicht mehr im Markup referenziert wird, muss das Code-Snippet wieder entfernt werden, da sonst ein JavaScript-Fehler auftritt, weil die Funktion Element.addMethods nicht mehr verfügbar ist.

In Zikula 1.3.8 und 1.4.0 ist dieser Patch übrigens nicht mehr nötig, da hier Prototype direkt im Core angepasst wurde, um die Probleme zu minimieren. Für alle, die Bootstrap jedoch jetzt schon mit 1.3.x einsetzen möchten, spart der Patch jedoch Zeit und Nerven.

Sofern Interesse besteht, werde ich zukünftig weitere Artikel zur Arbeit mit Bootstrap einstellen. Da die offizielle Dokumentation bereits sehr umfangreich ist, können wir uns auf Zikula-spezifische Aspekte beschränken, wie zum Beispiel den Aufbau von Themes sowie einen Überblick über die Migration für Modulentwickler.

Weitere Beiträge in Kategorie Zikula Apps

Zikula Aktualisierung 2.0.13 mit Sicherheitspatches von Symfony
- Der Zikula Core ist soeben in der Version 2.0.13 erschienen, da eine Reihe von sicherheitsbezogenen Änderungen in Symfony eingeflossen sind. Hier der Link zu den einzelnen Änderungen: Changelog für …
Unterschiedliche Startseiten je Domain oder Einstellung einbinden
- Eine häufige Anforderung besteht darin, die Startseite eines Projektes individuell anzupassen. Zikula bietet zwar die Möglichkeit, eine Controller-Aktion sowie die zu übergebenden Argumente in der …
Spannende Neuerungen im Zikula Core
- In Zikula 3 werden endlich weitere hilfreiche Funktionen von Symfony verwendet. Zikula 2.x hat bereits auf Symfony 3.4.x aufgesetzt, aber aus Rücksicht auf die Abwärtskompatibilität noch nicht alle …
Neue Versionen von Content und MultiHook
- Seit gestern steht das Content-Modul in der Version 5.1.0 zum Download bereit. Zu den neuen Funktionen zählen neben kleineren Verbesserungen, etwa für den Inhaltstyp zur Integration von Informationen …
Flexible Einstellung von Sichtbarkeiten im Content-Modul
- Schon in einer sehr frühen Generation des Content-Moduls zur Inhaltsverwaltung gab es die Möglichkeit, ein Inhaltselement nicht für alle Besucher, sondern entweder nur für alle angemeldeten Nutzer …