Eine eigene TYPO3 Extension (Extbase/Fluid) mit System Kategorien erstellen (Teil 1)
Kaum eine TYPO3 Umgebung kommt ohne Erweiterung mittels einer TYPO3 Extension aus. Das TYPO3 Extension Repository bietet hierfür tausende, schon fertige Erweiterung kostenlos zum Download an. Es kommt aber auch vor das ein Projekt spezielle Vorgaben hat, die man mittels eigener Extension umsetzen muss. In diesem Artikel möchte ich Dir zeigen, wie Du mittels Extension Builder in wenigen Minuten eine eigene TYPO3 Extension erstellen können.
Für die Erstellung der TYPO3 Extension benötigst Du
- Eine funktionstüchtige TYPO3 Installation (wir verwenden in diesem Artikel Version 7.6.16)
- Die Extension „Extension Builder“ | Key: extension_builder (unsere Version 7.6.0)
- Einen beliebigen Editor, zum Beispiel den kostenlosen Editor Notepad++
Installieren der Extension „Extension Builder“
Diese installierst Du wie alle TYPO3 Extension’s über den Menüpunkt:
Im oberen Bereich bei „Installierte Erweiterungen“ das Dropdown Menü öffnen und „Erweiterungen hinzufügen“ wählen.
Wenn Du diese Seite das erste mal aufrufst wird die Liste verfügbarer Erweiterungen automatisch geladen. Ansonsten benutze den Button „Jetzt aktualisieren“ auf der rechten Seite.
Gib im folgenden den Extension Key „extension_builder“ in das Suchfeld ein und bestätige mit Enter.
Mit einem Klick auf die Wolke unter Aktionen lädst Du die Erweiterung herunter.
Wenn Du die Standardeinstellung „automaticInstallation“ des Extension Managers nicht geändert hast, wird die Erweiterung nach dem Download automatisch aktiviert. Wenn nicht, führe die Aktivierung manuell durch.
Ab sofort ist der Extension Builder einsatzbereit und wir können mit der Erstellung unserer eigenen TYPO3 Extension beginnen.
TYPO3 Extension erstellen
Unter Adminwerkzeuge im TYPO3 Menü ist von nun an der Extension Builder zu finden.
Diesen wählen wir aus und ändern im neu geladenen Bereich das Dropdown von „Introduction“ zu „Domain Modelling“, sollte es nicht schon gewählt sein.
Zuerst definieren wir unsere Extension Eigenschaften in der linken Spalte.
Für unser Beispiel nehmen wir:
- Name: Kategorie Extension
- Vendor Name: Vekategorieext
- Key: ha_kategorieext
- Description: Eigene TYPO3 Extension mit Verwendung von sys_category
Wenn wir unsere Angaben gemacht haben, können wir noch weitere Optionen definieren. Dazu auf „More options“ klicken.
Bei den nun aufgeklappten Optionen hinterlegen wir folgende Informationen
- Category: Frontend Plugin
- Version: 7.6.0 (Optional, ich wähle hier aus Gewohnheit die Version der TYPO3 Installation)
- State: Beta (Optional)
- Depends on:
- typo3 => 7.6.0-7.6.99
- extbase =>
- fluid =>
Wer möchte kann unter „Persons“ jetzt noch seine eigenen Daten hinterlegen. Hierzu auf „Add“ klicken und die gewünschten Felder ausfüllen.
Damit unsere Extension später auch auf der Webseite angezeigt wird, benötigen wir noch ein Frontend Plugin.
Also unter „Frontend Plugin“ auf „Add“ klicken und die Felder ausfüllen. In unserem Beispiel nehmen wir diese:
- Name: Kategorie Extension
- Key: fekategorieext
Datenbankstruktur anlegen
Bevor wir unser „New Model Object“ anlegen, aktivieren wir noch die erweiterten Optionen.
Mit gedrückter linker Maustaste auf den Button „New Model Object“ ziehen wir ein neues Objekt auf unsere Bühne.
Wir nennen unser Objekt für dieses Beispiel „NeuerInhalt“.
Die „Domain object settings“ definieren wir wie folgt:
Mit einem erneuten Klick auf die „Domain object settings“ klappen wir diese wieder zu und öffnen danach die „Default actions“. Wir aktivieren die Checkboxen „list“ und „show“. „List“ erstellt später eine Liste aller Inhalte und „Show“ eine Detailseite.
Danach können die „Default actions“ wieder geschlossen werden. Als nächstes erstellen wir die „Properties“, d.h. die Datenbankfelder. Mit „Add“ wird jeweils ein neues Feld hinzugefügt. Wir erstellen für unser Beispiel nur folgende Felder. Hier kann natürlich beliebig erweitert werden.
Wir schließen jetzt auch die Properties und erstellen eine neue Relation wie im folgenden Bild zu sehen ist. Die Angaben bitte genau so übernehmen:
Name: categories
Type: 1:n
In das Feld „Relation to external class“ muss folgendes eingefügt werden:
\TYPO3\CMS\Extbase\Domain\Model\Category
Zu guter Letzt speichern wir unsere TYPO3 Extension mit dem Save Button ganz unten.
Im Grunde haben wir jetzt schon eine funktionierende TYPO3 Extension.
Die Basis ist somit geschaffen. Im 2. Teil machen wir uns an die Details und integrieren die System Kategorien von TYPO3.
Weitere Beiträge
Kontaktformular mit PHP
TYPO3 vs. Wordpress: Welches Content Management System bringt dich an die Spitze deiner Branche?
Vom Außenseiter zum Insider: Wie du als Quereinsteiger eine Karriere im IT-Bereich starten kannst.
TYPO3 8.7 - Kein Feld für Alt-Tag und Link bei File Abstraction Layer (FAL)