Sie sind auf Seite 1von 27

Typo3-Dokumentation

Eine Extension mit dem Kickstarter erstellen


Ziel Erstellung einer Extension zur Darstellung und Bearbeitung tabellarischer Daten (MitarbeiterVerzeichnis, CD-Sammlung, ...), hier am Beispiel Mitarbeiter-Verzeichnis. Die Daten werden im Backend eingegeben und mit einem Frontend-Plugin ausgegeben. Die Extension soll nur einsprachig verwendet werden. Voraussetzung Notwendige Extension: Extension Repository Kickstarter

Kickstarter aufrufen
Im Modul Extension Manager im Pulldown-Men Make new extension auswhlen.

TYPO3 Extensionerstellung

Extension-Schlssel eingeben

Einen eindeutigen Schlssel fr die Extension vergeben. Der Schlssel ist nachtrglich nur schwer zu ndern! Soll die Extension in anderen Sites verwendet oder spter im Repository verffentlicht werden, einen weltweit eindeutigen Schlssel whlen (Namensbestandteil whlen, Schlssel ggf. im Extension-Repository auf Typo3.org registrieren lassen).

TYPO3 Extensionerstellung

Generelle Daten der Extension festlegen

Im Kickstarter Wizard mit Klick auf das + hinter General Info die Felder fr die generellen Informationen zur Extension aufrufen.

Tabelle anlegen und erstes Feld eingeben Im Kickstart-Wizard mit Klick auf das + in New Database Tables eine neue Tabelle anlegen. Einen Tabellennamen eingeben, z. B. personen. Der Tabellenname wird automatisch ergnzt, indem die Zeichenfolge tx_extensionkey davor gesetzt wird, in diesem Beispiel also die Zeichenfolge tx_tkmitarbeiter. Die Unterstrichzeichen im Extension key werden automatisch entfernt. Damit die Tabelle auf normalen Seiten im Backend bearbeitet werden kann, mssen die beiden folgenden Felder aktiviert sein:
Allowed on pages Allowed in 'Insert Records' field in content elements

Es kann das erste Feld der Tabelle angelegt werden. Es wird der Name des Feldes fr die Datenbank angegeben. Der festzulegende Titel erscheint im Backend fr die Bearbeitung der Tabelle und sollte sprechend sein. Es muss der Typ des Feldes festgelegt werden. Fr Namen wird blicherweise String input verwendet.Mit update wird die Eingabe abgeschlossen.

TYPO3 Extensionerstellung

TYPO3 Extensionerstellung

Weitere Felder hinzufgen Nach jedem Update in der Tabelle-Eingabe kann ein weiteres Feld hinzugefgt werden.

Plugin einrichten Fr die Ausgabe der Daten mit einem Frontend-Plugin muss ein solches in der Extension eingerichtet werden. Klick auf + hinter Frontend Plugins ffnet den Plugin-Wizard. Es muss ein Name fr das Plugin vergeben werden, hier: Mitarbeiter-Verzeichnis. Das Plugin soll im Pulldown-Men fr Content-Elemente erscheinen, daher wird der vorbesetzte Wert Add to 'Insert Plugin' list in Content Elements in der Radio-Button-Liste beibehalten. Unter
If you have configured custom tables you can select one of the tables to list by default as an example:

ist im Pulldown-Men die neu angelegte Tabelle tx_tkmitarbeiter_personen auszuwhlen.

TYPO3 Extensionerstellung

TYPO3 Extensionerstellung

Extension sichern und installieren Sind alle Eingaben fr die Extension durchgefhrt, kann die Extension endgltig gesichert und installiert werden. Klick auf view result zeigt die Ergebnisse der bisherigen Extension-Entwicklung. Alle fr die Extension in der aktuellen Fassung notwendigen Dateien ext_localconf.php ext_tables.php locallang_db.php class.tx_tkmitarbeiter_pi1.php, werden angezeigt. Mit Klick auf write werden die Dateien in das Dateiverzeichnis geschrieben. Es handelt sich um eine lokale Extension. Alle vom Kickstarter fr diese Extension erzeugten Dateien liegen dann im Verzeichnis ../typo3conf/ext/tk_mitarbeiter

TYPO3 Extensionerstellung

Nach Klick auf write kann die Extension endgltig installiert werden:

Mit Klick auf Install extension folgt die Aufforderung, die notwendigen Tabellen in die Datenbank einzutragen:

TYPO3 Extensionerstellung

Die Extension ist anschlieend verfgbar und wird im Extension-Modul unter LoadedExtensions angezeigt:

TYPO3 Extensionerstellung

10

Ausgabe im Frontend
Frontend-Plugin der Extension in der Seite aufrufen Auf einer Seite ein Content-Element einfgen, z. B. ein Text-Element. Das Pulldown-Men fr den Typ aufklappen und insert plugin auwhlen.

Das Pulldown-Men im Feld Plugin aufklappen und als Plugin Mitarbeiter-Verzeichnis auswhlen.

Die Seite speichern und im Frontend anzeigen. Das Plugin sollte dann folgende Ausgabe liefern:

TYPO3 Extensionerstellung

11

Daten im Backend eingeben Um Daten im Backend eingeben zu knnen, wird im List-Modul die Seite ausgewhlt, auf der das Plugin der Extension als Content-Element eingesetzt ist. Die Extension ist derzeit so programmiert, dass mit dem Frontend-Plugin die Datenstze der Mitarbeiter-Tabelle angezeigt werden, die auf der Seite gespeichert sind, auf der das Frontend-Plugin eingebunden ist.

Mit Klick auf Create new record wird ein neuer Datensatz angelegt. Im List-Modul stehen verschiedene Datenstze zur Auswahl (je nach installierten Extensions). Im Beispiel der Mitarbeiter-Extension sollen Datenstze fr Personen angelegt werden (Personen ist der Tabellen-Name, der beim Anlegen der Extension vergeben wurde, siehe Tabelle anlegen und erstes Feld eingeben).

TYPO3 Extensionerstellung

12

Mit Klick auf Personen knnen neue Personen-Datenstze eingegeben werden:

Nachdem mehrere Personen-Datenstze eingegeben wurden, erscheinen diese als Liste im Backend:

TYPO3 Extensionerstellung

13

Hinweis: Die Extension ist derzeit noch so programmiert, dass standardmig die uid der PersonenDatenstze in der Liste angezeigt wird. Soll die Liste etwas leichter lesbar werden, knnen z. B. die Felder Name und Vorname zustzlich in der Liste aufgeklappt werden: Klick auf das +-Zeichen in der berschriftenzeile hinter Personen. In der dann erscheinenden Liste die Auswahl der anzuzeigenden Felder treffen (z. B. Name und Vorname) und diese dann mit Set fields in der Liste anzeigen lassen.

Im Frontend werden jetzt die Namen aus der Tabelle Personen aufgefhrt.

Die Ausgabe, d.h. die Links Mode1, Mode2, .., die tabellarische Darstellung der Daten und das Suchfeld, erfolgt durch php-Funktionen in der Extension-Datei:
typo3conf\ext\tk_mitarbeiter\pi1\class.tx_tkmitarbeiter_pi1.php

TYPO3 Extensionerstellung

14

Extension bearbeiten
Die Bearbeitung von Extensions kann je nach Ziel der Bearbeitung mit unterschiedlichen Verfahren erfolgen: 1. Ergnzung einer bestehenden Extension im Kickstarter Hiermit kann eine vorhandene Extension um Tabellen, Tabellenfelder und Funktionalitten wie Plugins, Clickmenues, Tags, etc. ergnzt werden. Tabellennamen und Typen knnen gendert werden. Der Extension-Key bleibt bei der Ergnzung erhalten. 2. Bearbeitung der Ablufe in den php-Dateien, z. B. um die Ausgabe des Plugins zu ndern. Hierzu ist die Bearbeitung der entsprechenden php-Dateien der Extension notwendig, d. h. Programmierung. 3. Ergnzung einer bestehenden Extension durch Bearbeitung der ExtensionKonfigurationsdateien von Hand im Editor Dieses Verfahren erfordert entsprechende Erfahrung im Umgang mit ExtensionKonfigurationsdateien.

Ergnzung einer Extension mit Kickstarter Warnung und Hinweis: Im Folgenden wird beschrieben, wie mit dem Kickstarter eine bestehende Extension ergnzt wird. Dabei wird aufbauend auf dem Gerst einer vorhandenen Extension eine neue Extension erstellt. Alle in der vorhandenen Extension nicht vom Kickstarter durchgefhrten Eintrge, nderungen und Programmierarbeiten in den class_tx_extension_pi1.php-Dateien gehen verloren! Die vorhandene Extension sollte vorher gesichert werden, z. B. indem das gesamte ExtensionVerzeichnis typo3conf/ext/ext_key kopiert wird. Ergnzung der Extension Die vorhandene Extension Mitarbeiter-Verzeichnis soll um weitere Tabellenfelder ergnzt werden: Den Ext. Manager aufrufen und im Pulldown-Men Loaded extensions auswhlen, und anschlieend durch Klick die zu bearbeitende Extension laden, in diesem Fall also Mitarbeiter-Verzeichnis.

TYPO3 Extensionerstellung

15

Es erscheint eine Seite mit Informationen zu der Extension:

Im Pulldown-Men das Feld Backup/Delete auswhlen.

TYPO3 Extensionerstellung

16

Mit Klick auf Start new wird eine neue Extension auf dem Gerst der bereits vorhandenen Extension Mitarbeiter-Verzeichnis aufgebaut. Alle in der vorhandenen Extension nicht vom Kickstarter durchgefhrten Eintrge, nderungen und Programmierarbeiten in den class_tx_extension_pi1.php-Dateien gehen verloren!

TYPO3 Extensionerstellung

17

Mit Klick auf den Tabellennamen Personen erscheint die Tabelle im Wizard und kann bearbeitet werden. Es knnen neue Felder eingetragen werden, Typen bestehender Felder gendert werden etc.

TYPO3 Extensionerstellung

18

Es wird noch das Feld telefon in die Tabelle Personen eingefgt:

Nach Klick auf update kann die Extension mit view und write in der aktuellen Version geschrieben werden. Nach write erfolgt noch ein Hinweis auf die ergnzten Tabellenfelder:

TYPO3 Extensionerstellung

19

Mit Make updates wird die aktuelle Extension-Version dann installiert.

Tabellenwert statt uid in Backend-Datenliste Im Backend wurde in der Liste fr die Personen-Datenstze die uid angezeigt (siehe Daten im Backend eingeben). Diese wenig sprechende Kennzeichnung von Datenstzen kann durch ein Wert aus dem Daten (Tabellenwert) ersetzt werden. Im vorliegen Beispiel soll statt der uid der Name der Person im Backend erscheinen. Im Kickstarter wird dazu die Tabelle Personen ausgewhlt. Im Pulldown fr das Feld Labelfield wird das Feld ausgewhlt, das statt der uid als Label im Backend verwendet werden soll.

TYPO3 Extensionerstellung

20

Zweite Tabelle und Verknpfung Die Extension soll um eine weitere Tabelle ergnzt werden, zwischen den Tabellen soll eine Verknpfung erstellt werden. Im vorliegenden Fall soll es im Mitarbeiter-Verzeichnis eine weitere Tabelle Arbeitsbereich geben. Jeder Arbeitsbereich hat eine Abkrzung und eine Beschreibung und eine eigene Homepage. Jeder Mitarbeit kann in mehreren Arbeitsbereichen ttig sein. Im Kickstarter Wizard wird zunchst eine neue Tabelle angelegt (Klick auf New Database
Table) und die Tabelle mit einer Bezeichnung und einem Titel versehen:

TYPO3 Extensionerstellung

21

Es werden die drei bentigten Felder angelegt: kennung fr die Abkrzung als Typ String Input, beschreibung als Typ Text Area, und homepage als Typ Link.

TYPO3 Extensionerstellung

22

Die Tabelle Arbeitsbereich wird mit update gesichert. Es soll nun die Verknpfung erstellt werden, mit der jeder Mitarbeiter mehreren Arbeitsbereichen angehren kann. Dazu wird die Tabelle Personen angeklickt und ein neues Feld arbeitsbereich mit dem Typ Database relation angelegt.

Nach update kann die Verknpfung fr das Feld arbeitsbereich spezifiziert werden:

TYPO3 Extensionerstellung

23

Im Pulldown-Men Create relation table wird die Tabelle ausgewhlt, mit der eine Verknpfung erstellt werden soll. Im Beispiel ist dies die Tabelle
tx_tkmitarbeiter_Arbeitsbereich.

Als Typ der Verknpfung wird Selectorbox, select global ausgewhlt. Es sollen maximal 4 Verknpfungen zulssig sein, d. h. eine Person kann zu maximl vier Arbeitsbereichen gehren. Die Zahl ist frei whlbar, und hngt von der Anwendung ab. Die Gre der Selectorbox wird auf 8 Felder festgelegt. Die Auswahl der Felder Add Add Record, Add List Record, Add Edit Record ermglicht es im Backend, die Datenstze fr die Arbeitsbereiche direkt von der Eingabemglichkeit der Personen-Datenstze zu erreichen. Die Extension kann nun mit view und write in der aktuellen Version geschrieben werden. Nach write werden die neu angelegten Tabellen und Tabellenfelder angezeigt:

TYPO3 Extensionerstellung

24

Mit Make updates wird die Extension installiert. Wird mit der aktualisierten Extension die Seite mit dem Extension-Plugin im Frontend aufgerufen, werden jetzt zustzlich die Felder Arbeitsbereich und Telefon aufgefhrt (ggf. ist Cache zu lschen, um die neue Anzeige zu erhalten):

Wird die Seite mit dem Extension-Plugin im List-Modul aufgerufen, ergibt sich folgende Darstellung:

TYPO3 Extensionerstellung

25

In der Liste der Personen-Datenstze erscheint jetzt der Name (siehe Tabellenwert statt uid in Backend-Datenliste). Wird ein Personen-Datensatz bearbeitet (Klick auf Stift-Symbol), werden vorhandene Felder angezeigt:

Es gibt noch keine Arbeitsbereiche, denen Frau Mustermann zugeordnet werden kann. Um Arbeitsbereiche anzulegen, kann auf das +-Zeichen in der Items-Liste der Arbeitsbereiche geklickt werden.

TYPO3 Extensionerstellung

26

Im Beispiel wird der Arbeitsbereich mit der Kennung forschung angelegt, die Homepage befindet sich innerhalb der aktuellen Site mit der Seiten-ID 8. Datenstze fr die Arbeitsbereich knnen auch, wie im Kapitel Daten im Backend eingeben beschrieben, bearbeitet werden. Liegen mehrere Datenstze fr die Arbeitsbereiche vor, knnen diese einer Person zugeordnet werden. Im folgenden Beispiel gehrt Hans im Glck zu drei Arbeitsbereichen:

Damit die Arbeitsbereiche, wie in der obigen Abbildung dargestellt, mit ihrer Kurzbezeichnung in der Selectorbox erscheinen, muss in der Tabelle fr Arbeitsbereiche das Label-Feld mit dem Feld kennung gesetzt sein (siehe Tabellenwert statt uid in BackendDatenliste). Ggf. muss die Extension nochmals im Kickstarter mit Backup/Delete Start new aufgerufen werden. Das Label-Feld fr die Tabelle kann dann wie im Kapitel Tabellenwert statt uid in Backend-Datenliste beschrieben, gesetzt werden. Sind alle Personen-Datenstze gendert, ergibt sich im Frontend z.B. folgendes Bild:

TYPO3 Extensionerstellung

27