16.12.2012 Aufrufe

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

MEHR ANZEIGEN
WENIGER ANZEIGEN

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 –

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!