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

Kommende Neuerungen in Symfony 6.4
- Die Veröffentlichung der nächsten Symfony-Version 6.4 steht bevor. Wie immer gibt es regelmäßige Einblicke in die wichtigsten, zu erwartenden Features und Verbesserungen. Dieser Beitrag zeigt im …
Symfony vereinfacht zeitgesteuerte Aktionen mit neuer Scheduler-Komponente
- Mit Symfony 6.3 sind wieder allerhand neue Features hinzugekommen. In diesem Beitrag möchte ich kurz die neue Komponente Scheduler vorstellen, mit welcher der Symfony Messenger um zeitgesteuerte …
SSO mit Keycloak und Symfony
- Mit der Java-basierten Software Keycloak wird die Verwaltung und Authentifizierung von Nutzern zentral gelöst. Hierbei bleiben kaum Wünsche offen: egal ob nun ein Registrierungsprozess, die …
Symfony UX Translator bietet Mehrsprachigkeit in JavaScript
- Bereits seit einigen Jahren gibt es das BazingaJsTranslationBundle, welches es erlaubt, den Symfony Translator auch Client-seitig zu verwenden. Auch in Zikula kommt dieses Bundle zum Einsatz, …
Kommende Neuerungen in Symfony 6.3
- Die Veröffentlichung der nächsten Symfony-Version 6.3 ist für Ende Mai 2023 geplant. Wie immer gibt es regelmäßige Einblicke in die wichtigsten, zu erwartenden Features und Verbesserungen. Dieser …