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

Monitoring von Queues mit dem Symfony Messenger
- Der Symfony Messenger kann über unterschiedliche Transporte mit diversen Queue-Technologien eingesetzt werden, zum Beispiel AMQP, Redis, Amazon SQS oder Doctrine. Um die Messages in den Queues …
MultiPart-Requests in Symfony einfach verarbeiten
- In Symfony gibt es mit der Mime-Komponente eine komfortable Möglichkeit, MultiPart-Nachrichten zu erstellen. Nicht out of the box enthalten ist aber ein Interface, das den Zugriff auf die in …
Kommende Neuerungen in Symfony 6.1
- Gegenwärtig laufen die Arbeiten an der nächsten Symfony-Version 6.1. Wie immer gibt es regelmäßige Einblicke in die wichtigsten, zu erwartenden Features und Verbesserungen. Dieser Beitrag zeigt im …
Zikula 3 - Cross-Release und weitere Ausrichtung
- Heute sind gleichzeitig zwei neue Versionen vom Zikula Core veröffentlicht worden. Zikula 3.0.4 bringt Fehlerkorrekturen Mit der Version 3.0.4 wird ein weiteres Bugfix-Update für die Hauptversion 3 …
Kommende Neuerungen in Symfony 5.4
- Vor einigen Tagen wurde Symfony 5.4.0-BETA3 veröffentlicht. Dies nehme ich zum Anlass, um einmal einen Überblick über die wichtigsten neuen Funktionen zu geben, auf die wir uns im Rahmen dieses …