MUSeo 2.0.0 - kurze Vorschau

in  Zikula Apps , , ,

MUSeo 2.0.0 - kurze Vorschau
Im Dezember haben wir über eine Erweiterung des MUSeo-Moduls im Hinblick auf vielfältigere SEO-Konfigurierbarkeit berichtet. Mittlerweile liegt nun, dank intensiver Unterstützung durch Gabriel Freinbichler, eine Vorabversion von MUSeo 2.0.0 vor, welche wir erfolgreich bei einem Kunden integriert haben. Wie bereits im ersten Artikel beschrieben, basiert diese Erweiterung im Wesentlichen auf einem SEO-Plugin für WordPress. Wir haben allerdings einige Funktionen weggelassen oder verändert, um die Funktionalität besser an Zikula anzupassen, da dort unterschiedliche Aspekte dynamischer gelöst oder bereits im Core gehandhabt werden.

Erweiterung des MUSeo-Moduls

in  Zikula Apps , , ,

Erweiterung des MUSeo-Moduls
Das Modul MUSeo von Michael Ueberschaer ist eine ModuleStudio-basierte Lösung zum Erfassen von suchmaschinenrelevanten Metatags für beliebige Einzelseiten einer Zikula-Präsenz. Aktuell laufen die ersten Schritte für die Version 2.0.0 mit erweitertem Funktionsumfang. Neben einigen neuen Feldern und Angaben, z. B. für Social Media Funktionen, soll die kommende Hauptversion im Wesentlichen zwei neue Funktionen mitbringen: Erstens soll es möglich sein, direkt eine Vorschau der voraussichtlichen Darstellung des Eintrags der Seite in Google-Ergebnislisten einzusehen.

Multisites v2.0.0 fertig gestellt

in  Zikula Apps , ,

Multisites v2.0.0 fertig gestellt
Im letzten Beitrag wurde die Weiterentwicklung des Multisites-Moduls beschrieben. Mittlerweile ist die neue Version im GitHub-Projekt verfügbar. Wer Multisites aktuell im Einsatz hat oder grundsätzlich an dem Modul interessiert ist, ist hiermit herzlich eingeladen, das neue Modul zu testen. Empfohlen wird dazu die Zikula-Version 1.3.9. Anmerkungen, Fehlermeldungen usw. bitte im Issue Tracker auf GitHub eintragen, vielen Dank für Euer Feedback!

Multisites auf Basis von ModuleStudio

in  Zikula Apps , , , ,

Multisites auf Basis von ModuleStudio
Mit dem Multisites-Modul lassen sich beliebig viele Seiten mit einem einzigen Zikula-System betreiben. Mit Vorlagen, die im Prinzip SQL-Dumps repräsentieren, können neue Seiten auf Knopfdruck erstellt werden. Jede Seitenvorlage beinhaltet damit die vorab definierten Strukturen und -daten out of the box. Jede Internetseite verfügt (aus Gründen der Architektur und der Skalierbarkeit) über eine eigene Datenbank. Es ist auch möglich, dass mehrere Internetseiten mit der gleichen Datenbank arbeiten. Dies erfordert jedoch entsprechende Anpassungen in den verwendeten Themes.

Allgemeine und eigene Symfony-Events in generierten Zikula-Modulen

in  Zikula Apps , , , ,

Allgemeine und eigene Symfony-Events in generierten Zikula-Modulen
In ModuleStudio 0.6.2 liegt der Fokus auf die Anpassung des Generators auf Symfony und Bootstrap, was die Zielversion Zikula 1.4.0 anbelangt. Einige Neuerungen betreffen das Zusammenspiel mehrerer Module, die miteinander interagieren. Erstens werden nun Factory-Klassen für Entitäten und Repositories in Verbindung mit Service-Parametern eingesetzt, mit denen man die Entität eines Moduls X von einem Modul Y heraus erweitern und anpassen kann. Zweitens werden in den Doctrine Lifecycle-Events der Entitäten eigene Symfony-Events verwendet, mit denen sich ein anderes Modul einhaken kann.

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.

Optimierung im Detail - Schreibweisen von Entitäten und Feldern im Modell

in  Zikula Apps , , ,

Optimierung im Detail - Schreibweisen von Entitäten und Feldern im Modell
In der modellgetriebenen Softwareentwicklung werden die fachlichen Anforderungen in der Regel sehr prägnant formuliert. Schließlich ist eines der Ziele einer domänenspezifischen Sprache eine lesbare und verständliche Beschreibung eines Softwaresystems, wozu auch die Vermeidung von Redundanzen und unnötigem Boilerplate-Code gehört. Dies führt dazu, dass selbst kleine Veränderungen in einem Modell größere Unterschiede im generierten Quelltext zur Folge haben können. Ein Beispiel für solche, auf den ersten Blick unscheinbare Differenzierungen betrifft die Schreibweise von Modellelementen.

Ajax-Controller und seine Funktionen

in  Zikula Apps , , ,

Ajax-Controller und seine Funktionen
Im Controller-Bereich der Modellierungssprache von ModuleStudio nimmt der Ajax-Controller eine besondere Rolle ein. Die Aktionen eines Ajax-Controllers werden im Gegensatz zu anderen Controllern nicht als Webseite durch den Anwender, sondern von mittels JavaScript initiierten Ajax-Requests aufgerufen. Der Generator erzeugt unter Umständen einige zusätzliche Methoden im Ajax Controller, wenn diese für bestimmte generierte Funktionalitäten erforderlich sind. Dies betrifft unter anderem die im Folgenden aufgelisteten Methoden: getCommonUsersList Diese Methode sucht eine Liste von Benutzernamen, die zu einem gegebenen Suchausdruck passen, und liefert diese aufbereitet für AutoCompletion zurück.

API-Dokumentation aufwerten - Enricher in phpDox

in  Builds & Tests , ,

API-Dokumentation aufwerten - Enricher in phpDox
Wer seine Projekte regelmäßig mit einem Build-Server prüfen und testen lässt, erstellt oftmals auch eine API-Dokumentation. Dafür gibt es auch im PHP-Bereich eine Vielzahl unterschiedlicher Werkzeuge, beispielsweise PHPXref oder ApiGen. Dieser Beitrag stellt das Tool phpDox vor und gibt Einblick in das interessante Feature der Enricher. Eine API-Dokumentation stellt in der Regel eine navigierbare Übersicht der in einem Projekt vorhandenen Klassen, Schnittstellen, Methoden usw. bereit. Damit können Entwickler, die diese Artefakte in ihrem eigenen Code nutzen wollen, Informationen über die benötigten Methoden einsehen und so beispielsweise herausfinden, welche Argumente eine bestimmte Funktion erfordert.

Validierung im ModuleStudio-Generator auf Symfony umgestellt

in  Generator , , ,

Validierung im ModuleStudio-Generator auf Symfony umgestellt
Bislang wurden in generierten Modulen selbstgeschriebene Validierungen verwendet. In den letzten Tagen wurden diese für die Zielversion Zikula 1.4.x abgelöst zu Gunsten der Symfony Validator Komponente. In Symfony können Validierungen in mehreren Notationen definiert werden. Neben PHP und YAML sind auch XML und Annotationen möglich. Im ModuleStudio-Generator haben wir, wie auch im Ticket auf GitHub diskutiert wurde, Annotationen verwendet. Dabei werden Validierungsregeln (“Constraints”) durch @Assert-Annotationen direkt an der entsprechenden Entitätsklasse beziehungsweise den entsprechenden Feldern oder Methoden hinterlegt.