Ein einfaches HALLO WELT Modul¶
- Ein einfaches HALLO WELT Modul
- Der Module Creator
- Das Modul anpassen
- Anpassen der config/config.php
- Anpassen der output.php
- Anpassen der templates\view_output.php
(Für Dummys. Von einem Dummy.)
In diesem Tutorial möchte ich meine eigenen Übungsschritte zu einem simplen Modul und dem Umgang mit dem Modul Creator zeigen.
Ich wende mich in erster Linie an blutige Anfänger (so, wie ich es zum Zeitpunkt der Entstehung dieses Tutorials bin), setze jedoch voraus, dass Du Folgendes kannst:
- TYPOlight installieren
- Eine Seitenstruktur anlegen
- Module in Seiten einbinden
Ausserdem sollten PHP und OOP keine Parteien sein, die Du auf dem Wahlzettel zur nächsten Landtagswahl suchst.
Der Module Creator¶
Der Module Creator nimmt Dir sehr viel Arbeit ab, wenn Du ihm sagst, was Du machen willst:
- Modulordner
- Konfigurationsdateien
- Klassen
Sprich: Aus Deinen Vorgaben wird ein Grundgerüst für Dein neues Modul. In diesem Beispiel erstelle ich ein Modul mit dem Namen "testmodul" im Verzeichnis "mein_test". Dieses Modul wird "Hallo Welt" ausgeben. Mehr nicht.
Da wir nur eine Ausgabe im Frontend erzeugen, brauchen wir auch nur ein Frontend Modul. Im Module Creator sieht das in etwa so aus:
Von oben nach unten:
- Titel: Der Name des Moduls
- Ordnername: In diesem Ordner wird das Modul gespeichert, in diesem Fall "mein_test" (Auf Schreibrechte achten!)
- Autor: Du
- Copyright: Wegen den vielen Raubmordkopierern
- Paket: Z. B. "Tutorial". Oder "Bildergalerie". Quasi der "Überbegriff", zu dem dieses Modul gehört.
- Lizenz: Klar, oder..?
Markiere das Häkchen bei "*Ein Frontend Modul hinzufügen*". Du bekommst neue Eingabefelder angezeigt.
- Die Frontend Klasse nenne ich "output".
- Das Frontend Template nenne ich "view_output". Mehr dazu später.
- Klicke auf "Speichern und schliessen".
Im Module Creator wird jetzt Dein neues Modul angezeigt. Bisher sind nur die Vorgaben dafür gespeichert, Dateien wurden noch nicht erzeugt - das machen wir jetzt. Klicke auf das grüne Häkchen:
Du wirst aufgefordert, die Dateien anzulegen:
Das war die Vorbereitung. Das Grundgerüst des Moduls ist erzeugt, jetzt geht´s an die Anpassung in PHP 8-)
Das Modul anpassen¶
Du findest die erzeugten Dateien im TYPOlight Ordner unter "system\modules\mein_test".
Die Ordnerstruktur sollte so aussehen:
- config (Ordner)
- .htaccess (File)
- config.php (File)
- templates (Ordner)
- .htaccess (File)
- view_output.php (File)
- output.php (File)
Anpassen der config/config.php¶
Wir fangen wieder von oben an - öffne die Datei "config\config.php", und lass Dich nicht verwirren - da ist alles auskommentiert. In dieser Datei tragen wir ein, wie das Frontend Modul heisst, und welche Klassendatei diesem Modul zugeordnet ist. Such die Stelle, die mit "Front End Modules" bezeichnet ist:
1 <?php
2 /**
3 * -------------------------------------------------------------------------
4 * FRONT END MODULES
5 * -------------------------------------------------------------------------
6 *
7 * List all fontend modules and their class names.
8 *
9 * $GLOBALS['FE_MOD'] = array
10 * (
11 * 'group_1' => array
12 * (
13 * 'module_1' => 'Contentlass',
14 * 'module_2' => 'Contentlass'
15 * )
16 * );
17 *
18 * Use function array_insert() to modify an existing CTE array.
19 */
20 ?>
Diesen Bereich ändern wir jetzt so:
1 <?php
2 /**
3 * -------------------------------------------------------------------------
4 * FRONT END MODULES
5 * -------------------------------------------------------------------------
6 *
7 * List all fontend modules and their class names.
8 */
9 array_insert($GLOBALS['FE_MOD']['miscellaneous'], 0, array
10 (
11 'Hallo Welt' => 'output')
12 );
13
14 /**
15 * Use function array_insert() to modify an existing CTE array.
16 */
17 ?>
Kurze Erklärung der an array_insert() übergebenen Parameter:
- FE_MOD ist das Array, in dem die Liste der *F*ront*E*nd *MOD*ule gespeichert ist.
- miscellanous heisst, dass dieses Modul unter "Verschiedenes" zu finden sein soll.
- 0 ist die Stelle, an der der Name des Moduls in der Liste eingefügt wird - nämlich die erste Stelle
- 'Hallo Welt' => 'output'. Der Schlüssel (Hallo Welt) ist der Name des Moduls, der in der Liste angezeigt wird. Der Wert (output) ist der Name der Datei, die mit diesem Modul assoziiert ist (also output.php, siehe Ordnerstruktur weiter oben).
Anpassen der output.php¶
Als nächstes öffne die Datei output.php. Neben vielen Kommentaren findest Du hier die Klasse output mit der Methode compile():
1 <?php
2 class output extends Module
3 {
4
5 /**
6 * Template
7 * @var string
8 */
9 protected $strTemplate = @;
10
11 /**
12 * Generate module
13 */
14 protected function compile()
15 {
16
17 }
18 }
19 ?>
Die Variable $strTemplate bezeichnet die Templatedatei, mit der für dieses Modul die Ausgabe formatiert wird. In diesem Fall liegt diese Templatedatei unter templates/view_output.php. TYPOlight gibt sich hier mit Angabe des Dateinamens OHNE Dateiendung zufrieden, also:
1 <?php protected $strTemplate = 'view_output'; ?>
Die Methode compile() ist noch leer. Wir sorgen jetzt dafür, dass sie etwas zu tun bekommt:
1 <?php
2 protected function compile()
3 {
4 $foo = 'HALLO WELT!';
5 $this->Template->hallo_welt = $foo;
6 }
7 ?>
Mit $foo legen wir fest, was ausgegeben werden soll. $this->Template->hallo_welt = $foo. Hier weisen wir der Eigenschaft "hallo_welt" den Ausgabewert zu. Diese Eigenschaft wird dann im Template eingebaut.
Anpassen der templates\view_output.php¶
Diese Datei ist komplett leer. Für unsere Zwecke reicht es aus, eine einzige Zeile einzufügen:
1 <?php echo $this->hallo_welt; ?>
Hier ist aus $this->Template->hallo_welt der Wert $this->hallo_welt geworden. In dieser Datei sind PHP, HTML, Java etc. möglich.
Tja...
Das war es. Extensions für TYPOlight in a Nutshell. Viel Erfolg beim Einstieg!
--- Tutorial erstellt von RockRebell