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

  1. eigene URL
  2. 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.

  1. unter extension/your_project/modules legen wir ein eindeutiges Verzeichnis an (Beispiel, overlay)
  2. innerhalb
    1. module.php anlegen (Pflichtaufgabe)
    2. overlay.php (Beispielname)
  3. 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/wp-content/uploads/2018/12/ez_dummy.pnghttps://blog.silversolutions.de/wp-content/uploads/2018/12/ez_dummy-150x150.pngDavid HohlB2B.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...Die e-Commerce B2B Experten bloggen über Händler-Shops, ERP, PIM und das integrierte CMS eZ Publish