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 Core 3 bietet Mittel für dynamische Formularelemente
- Das Profile-Modul von Zikula bietet seit langer Zeit die Möglichkeit, die einzelnen Angaben der Benutzerprofile flexibel zu verändern und nach Belieben zu konfigurieren. Diese Funktionalität wurde im …
Der Fokus von Zikula Core 3
- Mit der Verfügbarkeit einiger zentraler Module für Zikula 2 ist eine der größten Hürden beseitigt, die den Umstieg für viele Nutzer in der Vergangenheit erschwert oder gar blockiert hatte. Die letzten …
Content Management mit Zikula 2 in der Praxis ausprobiert
- Nachdem kürzlich einige Module erschienen sind, um Inhalte mit Zikula 2 zu verwalten, haben wir nun zwei mittelgroße Projekte damit aufgebaut. Auch wenn im Detail noch nicht alles 100%ig am Schnürchen …
Neue Module braucht das Land
- Hier gibt es einige frisch geschnürte Module für Zikula 2.0.11: Content 5.0.1 Die Basis für anspruchsvolles Content Management. Formicula 5.0.0 Formulare zur Kontaktaufnahme, für Anmeldungen, …
Atom-Editor zur Symfony- und Zikula-Entwicklung einrichten
- Rund um den ursprünglich von GitHub ins Leben gerufene Editor Atom hat sich mittlerweile ein ansehnliches Ökosystem entwickelt. So existieren aktuell bereits knapp 8.000 Erweiterungen für alle …