Wie erstelle ich ein Modul?
Module sind für die Entwicklung in eZ Publish unabdingbar, ohne diese Funktion wären viele Entwicklungen gar nicht möglich. Was zeichnet ein Modul aus und wie erstelle ich Module?
Anwendungsbereiche für ein Modul
- eigene URL
- geschlossener Bereich
Viele Wege führen nach Rom, doch nur wenige sind sicher und schnell. Dieses schöne Bonmot sagt es sehr treffend.
Ich nutze Module hauptsächlich für:
- Ajax Anforderungen (nachladen von Inhalt in die Seite)
- Weiterleitungen
- Speziallösungen, die keine Klasse benötigen
- kleine Importe und Exporte
- Landingpages (was wiederum zu einer Weiterleitung führt)
Wie oben erwähnt kann ein Modul auch ein geschlossener Bereich sein – das heißt wir können über die Rechte definieren wer das Modul benutzen darf. Das eröffnet viele Möglichkeiten, gerade wenn man einen schnellen Export/Import braucht. Dabei spart man sich zum Beispiel lästige IP/Passwort-Abfragen.
Module anlegen
Doch alles der Reihe nach, zuerst müssen wir mal das Modul anlegen – Aufwand max. 5 Minuten.
- unter extension/your_project/modules legen wir ein eindeutiges Verzeichnis an (Beispiel, overlay)
- innerhalb
- module.php anlegen (Pflichtaufgabe)
- overlay.php (Beispielname)
- dann kopieren wir folgenden Code in die Datei module.php
$Module = array( 'name' => 'overlay' ); $ViewList['read'] = array( 'script' => 'overlay.php', 'functions' =>; array("read"), 'params' => array(), 'unordered_params' => array() );
Mit diesen Einstellungen konfigurieren wir unser Modul. Dabei können wir noch weitere Parameter definieren, damit wir im Modul selbst komfortabel über einen Array darauf zurückgreifen können. Hierfür müssen wir das Array „unordered_params“ füllen.
'unordered_params' => array( 'node_id' => 'nodeID')
Der Key ist der interne Aufruf, der Wert wäre in der SEO URL sichtbar z.B.: http://yoururl.com/overlay/read/nodeID/87633
Erklärung der URL:
- overlay => Modulname
- read => Modulfunktion
- nodeID => Parameter
- 87633 => Wert von nodeID
So nun brauchen wir noch 2 weitere Einstellungen:
Falls im Projekt unter settings/ noch keine module.ini.append.php vorhanden ist, legen wir diese nun an.
[ModuleSettings] ExtensionRepositories[]=deineErweiterung ModuleList[]=overlay
Nun fehlen nur noch die Rechte. Diese können natürlich über die Rechteverwaltung definiert werden. Alternativ können sie auch direkt über die site.ini.append.php in deinem Projekt oder in der override/ gesetzt werden.
[RoleSettings] PolicyOmitList[]=overlay/read
So, nun sind alle Rechte und Einstellungen konfiguriert und es steht einem Aufruf nichts mehr im Wege. Eine Sache noch: Cache leeren und Autoload durchführen.
Häufige Code-Abschnitte für ein Modul
Zum Abschluss hier noch ein paar wichtige Code-Abschnitte, die im Modul oft benötigt werden.
Aufruf eines Templates:
require_once('kernel/common/template.php'); $tpl = templateInit(); $tpl->setVariable('node', $node); echo $tpl->fetch('design:overlay/full.tpl');
Ausgabe steuern:
// stoppt das Modul, es erfolgt nur die Ausgabe die oberhalb angegeben ist. eZExecution::cleanExit();
oder
// Der Wert in $result ist im pagelayout.tpl unter {$module_result.content} // verfügbar. $Result['content'] = $result; $Result['Module'] = $Params['Module'];https://blog.silversolutions.de/2011/10/b2b-technologie/module-in-ez-publish/https://blog.silversolutions.de/wp-content/uploads/2018/12/ez_dummy.pnghttps://blog.silversolutions.de/wp-content/uploads/2018/12/ez_dummy-150x150.pngB2B.praxisB2B.technologieEntwicklung,Tipps & TricksModule sind für die Entwicklung in eZ Publish unabdingbar, ohne diese Funktion wären viele Entwicklungen gar nicht möglich. Was zeichnet ein Modul aus und wie erstelle ich Module? Anwendungsbereiche für ein Modul eigene URL geschlossener Bereich Viele Wege führen nach Rom, doch nur wenige sind sicher und schnell. Dieses schöne Bonmot...David HohlDavid Hohldho@silversolutions.deEditorDavid Hohl ist seit 1995 Entwickler und Projektleiter und bringt langjährige Erfahrung mit eZ Publish mit. Bei silver.solutions war David 2012 bis 2014 als Entwickler, Konzeptionen und Projektleiter für eZ Publish Projekte verantwortlich. Er hat das eZ-Publish-Blog ins Leben gerufen.silver.solutions