Eine Extension mit dem Kickstarter erstellen - pro:med Pflege
Eine Extension mit dem Kickstarter erstellen - pro:med Pflege
Eine Extension mit dem Kickstarter erstellen - pro:med Pflege
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Typo3-Dokumentation<br />
<strong>Eine</strong> <strong>Extension</strong> <strong>mit</strong> <strong>dem</strong> <strong>Kickstarter</strong> <strong>erstellen</strong><br />
Ziel<br />
Erstellung einer <strong>Extension</strong> zur Darstellung und Bearbeitung tabellarischer Daten (Mitarbeiter-<br />
Verzeichnis, CD-Sammlung, ...), hier am Beispiel Mitarbeiter-Verzeichnis.<br />
Die Daten werden im Backend eingegeben und <strong>mit</strong> einem Frontend-Plugin ausgegeben.<br />
Die <strong>Extension</strong> soll nur einsprachig verwendet werden.<br />
Voraussetzung<br />
Notwendige <strong>Extension</strong>: <strong>Extension</strong> Repository <strong>Kickstarter</strong><br />
<strong>Kickstarter</strong> aufrufen<br />
Im Modul <strong>Extension</strong> Manager im Pulldown-Menü Make new extension auswählen.
<strong>Extension</strong>-Schlüssel eingeben<br />
TYPO3 – <strong>Extension</strong>erstellung – 2 –<br />
<strong>Eine</strong>n eindeutigen Schlüssel für die <strong>Extension</strong> vergeben. Der Schlüssel ist nachträglich nur<br />
schwer zu ändern!<br />
Soll die <strong>Extension</strong> in anderen Sites verwendet oder später im Repository veröffentlicht<br />
werden, einen weltweit eindeutigen Schlüssel wählen (Namensbestandteil wählen, Schlüssel<br />
ggf. im <strong>Extension</strong>-Repository auf Typo3.org registrieren lassen).
Generelle Daten der <strong>Extension</strong> festlegen<br />
TYPO3 – <strong>Extension</strong>erstellung – 3 –<br />
Im <strong>Kickstarter</strong> Wizard <strong>mit</strong> Klick auf das + hinter General Info die Felder für die generellen<br />
Informationen zur <strong>Extension</strong> aufrufen.<br />
Tabelle anlegen und erstes Feld eingeben<br />
Im Kickstart-Wizard <strong>mit</strong> Klick auf das + in New Database Tables eine neue Tabelle<br />
anlegen.<br />
<strong>Eine</strong>n Tabellennamen eingeben, z. B. personen. Der Tabellenname wird automatisch ergänzt,<br />
in<strong>dem</strong> die Zeichenfolge tx_extensionkey davor gesetzt wird, in diesem Beispiel also die<br />
Zeichenfolge tx_tk<strong>mit</strong>arbeiter. Die Unterstrichzeichen im <strong>Extension</strong> key werden<br />
automatisch entfernt.<br />
Da<strong>mit</strong> die Tabelle auf normalen Seiten im Backend bearbeitet werden kann, müssen die<br />
beiden folgenden Felder aktiviert sein:<br />
Allowed on pages<br />
Allowed in 'Insert Records' field in content elements<br />
Es kann das erste Feld der Tabelle angelegt werden. Es wird der Name des Feldes für die<br />
Datenbank angegeben. Der festzulegende Titel erscheint im Backend für die Bearbeitung der<br />
Tabelle und sollte „sprechend“ sein.<br />
Es muss der Typ des Feldes festgelegt werden. Für Namen wird üblicherweise String input<br />
verwendet.Mit update wird die Eingabe abgeschlossen.
TYPO3 – <strong>Extension</strong>erstellung – 4 –
Weitere Felder hinzufügen<br />
TYPO3 – <strong>Extension</strong>erstellung – 5 –<br />
Nach je<strong>dem</strong> Update in der Tabelle-Eingabe kann ein weiteres Feld hinzugefügt werden.<br />
Plugin einrichten<br />
Für die Ausgabe der Daten <strong>mit</strong> einem Frontend-Plugin muss ein solches in der <strong>Extension</strong><br />
eingerichtet werden.<br />
Klick auf + hinter Frontend Plugins öffnet den Plugin-Wizard.<br />
Es muss ein Name für das Plugin vergeben werden, hier: Mitarbeiter-Verzeichnis. Das<br />
Plugin soll im Pulldown-Menü für Content-Elemente erscheinen, daher wird der vorbesetzte<br />
Wert Add to 'Insert Plugin' list in Content Elements in der Radio-Button-Liste<br />
beibehalten.<br />
Unter<br />
If you have configured custom tables you can select one of the tables to<br />
list by default as an example:<br />
ist im Pulldown-Menü die neu angelegte Tabelle tx_tk<strong>mit</strong>arbeiter_personen<br />
auszuwählen.
TYPO3 – <strong>Extension</strong>erstellung – 6 –
<strong>Extension</strong> sichern und installieren<br />
TYPO3 – <strong>Extension</strong>erstellung – 7 –<br />
Sind alle Eingaben für die <strong>Extension</strong> durchgeführt, kann die <strong>Extension</strong> endgültig gesichert<br />
und installiert werden.<br />
Klick auf view result zeigt die Ergebnisse der bisherigen <strong>Extension</strong>-Entwicklung. Alle für<br />
die <strong>Extension</strong> in der aktuellen Fassung notwendigen Dateien ext_localconf.php<br />
ext_tables.php locallang_db.php class.tx_tk<strong>mit</strong>arbeiter_pi1.php, … werden<br />
angezeigt.<br />
Mit Klick auf write werden die Dateien in das Dateiverzeichnis geschrieben.<br />
Es handelt sich um eine lokale <strong>Extension</strong>. Alle vom <strong>Kickstarter</strong> für diese <strong>Extension</strong> erzeugten<br />
Dateien liegen dann im Verzeichnis ../typo3conf/ext/tk_<strong>mit</strong>arbeiter
TYPO3 – <strong>Extension</strong>erstellung – 8 –<br />
Nach Klick auf write kann die <strong>Extension</strong> endgültig installiert werden:<br />
Mit Klick auf Install extension folgt die Aufforderung, die notwendigen Tabellen in die<br />
Datenbank einzutragen:
TYPO3 – <strong>Extension</strong>erstellung – 9 –<br />
Die <strong>Extension</strong> ist anschließend verfügbar und wird im <strong>Extension</strong>-Modul unter Loaded-<br />
<strong>Extension</strong>s angezeigt:
Ausgabe im Frontend<br />
Frontend-Plugin der <strong>Extension</strong> in der Seite aufrufen<br />
TYPO3 – <strong>Extension</strong>erstellung – 10 –<br />
Auf einer Seite ein Content-Element einfügen, z. B. ein Text-Element. Das Pulldown-Menü<br />
für den Typ aufklappen und insert plugin auwählen.<br />
Das Pulldown-Menü im Feld Plugin aufklappen und als Plugin Mitarbeiter-Verzeichnis<br />
auswählen.<br />
Die Seite speichern und im Frontend anzeigen. Das Plugin sollte dann folgende Ausgabe<br />
liefern:
Daten im Backend eingeben<br />
TYPO3 – <strong>Extension</strong>erstellung – 11 –<br />
Um Daten im Backend eingeben zu können, wird im List-Modul die Seite ausgewählt, auf der<br />
das Plugin der <strong>Extension</strong> als Content-Element eingesetzt ist.<br />
Die <strong>Extension</strong> ist derzeit so <strong>pro</strong>grammiert, dass <strong>mit</strong> <strong>dem</strong> Frontend-Plugin die Datensätze der<br />
Mitarbeiter-Tabelle angezeigt werden, die auf der Seite gespeichert sind, auf der das<br />
Frontend-Plugin eingebunden ist.<br />
Mit Klick auf Create new record wird ein neuer Datensatz angelegt. Im List-Modul stehen<br />
verschiedene Datensätze zur Auswahl (je nach installierten <strong>Extension</strong>s).<br />
Im Beispiel der Mitarbeiter-<strong>Extension</strong> sollen Datensätze für Personen angelegt werden<br />
(Personen ist der Tabellen-Name, der beim Anlegen der <strong>Extension</strong> vergeben wurde, siehe<br />
Tabelle anlegen und erstes Feld eingeben).
TYPO3 – <strong>Extension</strong>erstellung – 12 –<br />
Mit Klick auf Personen können neue Personen-Datensätze eingegeben werden:<br />
Nach<strong>dem</strong> mehrere Personen-Datensätze eingegeben wurden, erscheinen diese als Liste im<br />
Backend:
Hinweis:<br />
TYPO3 – <strong>Extension</strong>erstellung – 13 –<br />
Die <strong>Extension</strong> ist derzeit noch so <strong>pro</strong>grammiert, dass standardmäßig die uid der Personen-<br />
Datensätze in der Liste angezeigt wird. Soll die Liste etwas leichter lesbar werden, können<br />
z. B. die Felder Name und Vorname zusätzlich in der Liste aufgeklappt werden: Klick auf das<br />
+-Zeichen in der Überschriftenzeile hinter „Personen“. In der dann erscheinenden Liste die<br />
Auswahl der anzuzeigenden Felder treffen (z. B. Name und Vorname) und diese dann <strong>mit</strong> Set<br />
fields in der Liste anzeigen lassen.<br />
Im Frontend werden jetzt die Namen aus der Tabelle Personen aufgeführt.<br />
Die Ausgabe, d.h. die Links Mode1, Mode2, .., die tabellarische Darstellung der Daten und das<br />
Suchfeld, erfolgt durch php-Funktionen in der <strong>Extension</strong>-Datei:<br />
typo3conf\ext\tk_<strong>mit</strong>arbeiter\pi1\class.tx_tk<strong>mit</strong>arbeiter_pi1.php
<strong>Extension</strong> bearbeiten<br />
TYPO3 – <strong>Extension</strong>erstellung – 14 –<br />
Die Bearbeitung von <strong>Extension</strong>s kann je nach Ziel der Bearbeitung <strong>mit</strong> unterschiedlichen<br />
Verfahren erfolgen:<br />
1. Ergänzung einer bestehenden <strong>Extension</strong> im <strong>Kickstarter</strong><br />
Hier<strong>mit</strong> kann eine vorhandene <strong>Extension</strong> um Tabellen, Tabellenfelder und<br />
Funktionalitäten wie Plugins, Clickmenues, Tags, etc. ergänzt werden.<br />
Tabellennamen und Typen können geändert werden.<br />
Der <strong>Extension</strong>-Key bleibt bei der Ergänzung erhalten.<br />
2. Bearbeitung der Abläufe in den php-Dateien, z. B. um die Ausgabe des Plugins zu<br />
ändern.<br />
Hierzu ist die Bearbeitung der entsprechenden php-Dateien der <strong>Extension</strong> notwendig,<br />
d. h. Programmierung.<br />
3. Ergänzung einer bestehenden <strong>Extension</strong> durch Bearbeitung der <strong>Extension</strong>-<br />
Konfigurationsdateien „von Hand“ im Editor<br />
Dieses Verfahren erfordert entsprechende Erfahrung im Umgang <strong>mit</strong> <strong>Extension</strong>-<br />
Konfigurationsdateien.<br />
Ergänzung einer <strong>Extension</strong> <strong>mit</strong> <strong>Kickstarter</strong><br />
� Warnung und Hinweis:<br />
Im Folgenden wird beschrieben, wie <strong>mit</strong> <strong>dem</strong> <strong>Kickstarter</strong> eine bestehende <strong>Extension</strong> ergänzt<br />
wird. Dabei wird aufbauend auf <strong>dem</strong> Gerüst einer vorhandenen <strong>Extension</strong> eine neue<br />
<strong>Extension</strong> erstellt.<br />
Alle in der vorhandenen <strong>Extension</strong> nicht vom <strong>Kickstarter</strong> durchgeführten Einträge,<br />
Änderungen und Programmierarbeiten in den class_tx_extension_pi1.php-Dateien gehen<br />
verloren!<br />
Die vorhandene <strong>Extension</strong> sollte vorher gesichert werden, z. B. in<strong>dem</strong> das gesamte <strong>Extension</strong>-<br />
Verzeichnis typo3conf/ext/ext_key kopiert wird.<br />
Ergänzung der <strong>Extension</strong><br />
Die vorhandene <strong>Extension</strong> Mitarbeiter-Verzeichnis soll um weitere Tabellenfelder<br />
ergänzt werden:<br />
Den Ext. Manager aufrufen und im Pulldown-Menü Loaded extensions auswählen, und<br />
anschließend durch Klick die zu bearbeitende <strong>Extension</strong> laden, in diesem Fall also<br />
Mitarbeiter-Verzeichnis.
Es erscheint eine Seite <strong>mit</strong> Informationen zu der <strong>Extension</strong>:<br />
Im Pulldown-Menü das Feld Backup/Delete auswählen.<br />
TYPO3 – <strong>Extension</strong>erstellung – 15 –
TYPO3 – <strong>Extension</strong>erstellung – 16 –<br />
Mit Klick auf Start new wird eine neue <strong>Extension</strong> auf <strong>dem</strong> Gerüst der bereits vorhandenen<br />
<strong>Extension</strong> Mitarbeiter-Verzeichnis aufgebaut.<br />
� Alle in der vorhandenen <strong>Extension</strong> nicht vom <strong>Kickstarter</strong> durchgeführten Einträge,<br />
Änderungen und Programmierarbeiten in den class_tx_extension_pi1.php-Dateien<br />
gehen verloren!
TYPO3 – <strong>Extension</strong>erstellung – 17 –<br />
Mit Klick auf den Tabellennamen Personen erscheint die Tabelle im Wizard und kann<br />
bearbeitet werden. Es können neue Felder eingetragen werden, Typen bestehender Felder<br />
geändert werden etc.
TYPO3 – <strong>Extension</strong>erstellung – 18 –<br />
Es wird noch das Feld telefon in die Tabelle Personen eingefügt:<br />
Nach Klick auf update kann die <strong>Extension</strong> <strong>mit</strong> view und write in der aktuellen Version<br />
geschrieben werden. Nach write erfolgt noch ein Hinweis auf die ergänzten Tabellenfelder:
TYPO3 – <strong>Extension</strong>erstellung – 19 –<br />
Mit Make updates wird die aktuelle <strong>Extension</strong>-Version dann installiert.<br />
Tabellenwert statt uid in Backend-Datenliste<br />
Im Backend wurde in der Liste für die Personen-Datensätze die uid angezeigt (siehe Daten im<br />
Backend eingeben). Diese wenig sprechende Kennzeichnung von Datensätzen kann durch ein<br />
Wert aus <strong>dem</strong> Daten (Tabellenwert) ersetzt werden. Im vorliegen Beispiel soll statt der uid der<br />
Name der Person im Backend erscheinen.<br />
Im <strong>Kickstarter</strong> wird dazu die Tabelle Personen ausgewählt. Im Pulldown für das Feld Labelfield<br />
wird das Feld ausgewählt, das statt der uid als Label im Backend verwendet werden<br />
soll.
Zweite Tabelle und Verknüpfung<br />
TYPO3 – <strong>Extension</strong>erstellung – 20 –<br />
Die <strong>Extension</strong> soll um eine weitere Tabelle ergänzt werden, zwischen den Tabellen soll eine<br />
Verknüpfung erstellt werden.<br />
Im vorliegenden Fall soll es im Mitarbeiter-Verzeichnis eine weitere Tabelle<br />
Arbeitsbereich geben. Jeder Arbeitsbereich hat eine Abkürzung und eine Beschreibung und<br />
eine eigene Homepage. Jeder Mitarbeit kann in mehreren Arbeitsbereichen tätig sein.<br />
Im <strong>Kickstarter</strong> Wizard wird zunächst eine neue Tabelle angelegt (Klick auf New Database<br />
Table) und die Tabelle <strong>mit</strong> einer Bezeichnung und einem Titel versehen:
TYPO3 – <strong>Extension</strong>erstellung – 21 –<br />
Es werden die drei benötigten Felder angelegt: kennung für die Abkürzung als Typ String<br />
Input, beschreibung als Typ Text Area, und homepage als Typ Link.
Die Tabelle Arbeitsbereich wird <strong>mit</strong> update gesichert.<br />
TYPO3 – <strong>Extension</strong>erstellung – 22 –<br />
Es soll nun die Verknüpfung erstellt werden, <strong>mit</strong> der jeder Mitarbeiter mehreren<br />
Arbeitsbereichen angehören kann. Dazu wird die Tabelle Personen angeklickt und ein neues<br />
Feld arbeitsbereich <strong>mit</strong> <strong>dem</strong> Typ Database relation angelegt.<br />
Nach update kann die Verknüpfung für das Feld arbeitsbereich spezifiziert werden:
TYPO3 – <strong>Extension</strong>erstellung – 23 –<br />
Im Pulldown-Menü Create relation table wird die Tabelle ausgewählt, <strong>mit</strong> der eine<br />
Verknüpfung erstellt werden soll. Im Beispiel ist dies die Tabelle<br />
tx_tk<strong>mit</strong>arbeiter_Arbeitsbereich.<br />
Als Typ der Verknüpfung wird Selectorbox, select global ausgewählt.<br />
Es sollen maximal 4 Verknüpfungen zulässig sein, d. h. eine Person kann zu maximl vier<br />
Arbeitsbereichen gehören. Die Zahl ist frei wählbar, und hängt von der Anwendung ab.<br />
Die Größe der Selectorbox wird auf 8 Felder festgelegt.<br />
Die Auswahl der Felder Add Add Record, Add List Record, Add Edit Record ermöglicht<br />
es im Backend, die Datensätze für die Arbeitsbereiche direkt von der Eingabemöglichkeit der<br />
Personen-Datensätze zu erreichen.<br />
Die <strong>Extension</strong> kann nun <strong>mit</strong> view und write in der aktuellen Version geschrieben werden.<br />
Nach write werden die neu angelegten Tabellen und Tabellenfelder angezeigt:
Mit Make updates wird die <strong>Extension</strong> installiert.<br />
TYPO3 – <strong>Extension</strong>erstellung – 24 –<br />
Wird <strong>mit</strong> der aktualisierten <strong>Extension</strong> die Seite <strong>mit</strong> <strong>dem</strong> <strong>Extension</strong>-Plugin im Frontend<br />
aufgerufen, werden jetzt zusätzlich die Felder „Arbeitsbereich“ und „Telefon“ aufgeführt<br />
(ggf. ist Cache zu löschen, um die neue Anzeige zu erhalten):<br />
Wird die Seite <strong>mit</strong> <strong>dem</strong> <strong>Extension</strong>-Plugin im List-Modul aufgerufen, ergibt sich folgende<br />
Darstellung:
TYPO3 – <strong>Extension</strong>erstellung – 25 –<br />
In der Liste der Personen-Datensätze erscheint jetzt der Name (siehe Tabellenwert statt uid in<br />
Backend-Datenliste).<br />
Wird ein Personen-Datensatz bearbeitet (Klick auf Stift-Symbol), werden vorhandene Felder<br />
angezeigt:<br />
Es gibt noch keine Arbeitsbereiche, denen Frau Mustermann zugeordnet werden kann.<br />
Um Arbeitsbereiche anzulegen, kann auf das +-Zeichen in der Items-Liste der Arbeitsbereiche<br />
geklickt werden.
TYPO3 – <strong>Extension</strong>erstellung – 26 –<br />
Im Beispiel wird der Arbeitsbereich <strong>mit</strong> der Kennung forschung angelegt, die Homepage<br />
befindet sich innerhalb der aktuellen Site <strong>mit</strong> der Seiten-ID 8.<br />
Datensätze für die Arbeitsbereich können auch, wie im Kapitel „Daten im Backend eingeben“<br />
beschrieben, bearbeitet werden.<br />
Liegen mehrere Datensätze für die Arbeitsbereiche vor, können diese einer Person zugeordnet<br />
werden. Im folgenden Beispiel gehört Hans im Glück zu drei Arbeitsbereichen:<br />
Da<strong>mit</strong> die Arbeitsbereiche, wie in der obigen Abbildung dargestellt, <strong>mit</strong> ihrer<br />
Kurzbezeichnung in der Selectorbox erscheinen, muss in der Tabelle für Arbeitsbereiche das<br />
Label-Feld <strong>mit</strong> <strong>dem</strong> Feld kennung gesetzt sein (siehe Tabellenwert statt uid in Backend-<br />
Datenliste). Ggf. muss die <strong>Extension</strong> nochmals im <strong>Kickstarter</strong> <strong>mit</strong><br />
Backup/Delete Start new aufgerufen werden. Das Label-Feld für die Tabelle kann dann<br />
wie im Kapitel „Tabellenwert statt uid in Backend-Datenliste“ beschrieben, gesetzt werden.<br />
Sind alle Personen-Datensätze geändert, ergibt sich im Frontend z.B. folgendes Bild:
TYPO3 – <strong>Extension</strong>erstellung – 27 –