Typo3-Extension ‘Playlist’

Nachdem ich zufällig diesen Forum-Eintrag entdeckt habe, der auf meinen Eintrag zur Entwicklung der Playlist-Extension verweist, versuche ich jetzt einfach mal etwas genauer zu beschreiben, wie ich vorgegangen bin…

Zunächst habe ich mir wirklich alle Videos zum Thema Frontend-Plugin-Development von Kasper angeschaut, der dort ja quasi “live” eine Extension entwickelt, die der meinen sogar recht ähnlich ist: Er bastelt eine CD-Datenbank, ich eine Playlist, die im Prinzip eine sehr einfache CD-Datenbank darstellt.

Daher habe ich eigentlich nur nachgemacht, was er dort vorführt:

  1. Zunächst mal brauchte ich “für’s Grobe” den Extension Kickstarter, der im Typo3-Paket aber schon mit drin ist, und daher einfach im Extension Manager installiert werden kann.
  2. Mit dessen Hilfe habe ich nun das Grundgerüst der Extension erstellt: Eine neue Tabelle, in der die CD-Einträge gespeichert werden und die Grundkonfiguration, etwa, dass das Plugin zur Kategorie FrontEnd gehört und wo es einzubinden ist. Die Hauptarbeit war hierbei das Erstellen der Datenbankfelder, wobei der Umfang mit 4 eigenen Feldern (Titel, Interpret, Website, Datum) recht klein war. Als Format habe ich die Standardfeldformate verwendet, die der Extension Kickstarter bietet (“Date” für Datum, “Link” für die Website etc.)
  3. Nachdem die Konfiguration stand, konnte ich die Extension installieren und manuell weiterbearbeiten. Dazu habe ich letztlich nur in der Datei class.tx_mackeplaylist_pi1.php einige Änderungen im PHP-Quelltext vorgenommen. Der Kickstarter hatte hier schon eine komplette Listen- und Einzelansicht generiert, die für meine Bedürfnisse viel zu umfangreich war. Daher habe ich den überflüssigen Code (Navigation, verschiedene “Modi”, Einzelansicht etc.) entfernt und nur eine einfache Listenansicht übrig gelassen. Wenn ich mir gerade so noch einmal den tatsächlichen Code anschaue, merke ich, dass ich den ganzen Kram auch in einer PHP-Funktion hätte abbilden können, aber zum Einstieg war es mir erst einmal wichtig, die Struktur der vom Kickstarter automatisch erstellten Klasse und ihrer Methoden zu verstehen.
  4. Nach einigen kurzen Tests war das Plugin auch schon einsatzbereit. Nur die Stylesheets musste ich noch anpassen bzw. im Quelltext die Stylesheets überhaupt erstmal einbinden. Nachdem dies erledigt war, habe ich Typo3 über den Download-Button im Extension Manager die T3X-Datei erstellen lassen und fertig war das Plugin.

Das Plugin ist noch recht hart kodiert (ist ja auch mein erstes), d.h. man kann keine Änderungen z.B. am Layout über TypoScript vornehmen. Aber ich bin bereits tiefer in die Plugin-Erstellung eingestiegen und entwickle gerade eine Mitarbeiterverwaltung, die in die FrontEnd-User-Verwaltung integriert wird. Damit kann man dann eine “Steckbriefkartei” der Mitarbeiter erstellen, eine Anwesenheitsliste für’s Intranet uvm. Die Extension werde ich wohl nicht veröffentlichen, da sie sehr stark auf die Bedürfnisse und Gegebenheiten meiner Firma ausgelegt ist, aber eine Art “Light-Version” werde ich wohl für die FHWT03-Seite entwickeln. Und die gibt’s dann auch garantiert zum Download 😉

Allen angehenden Typo3-Extension-Entwicklern sei nur der Rat gegeben, sich die Videos von Kasper anzuschauen. Die sind teilweise ganz witzig (fand ich wenigstens ;)) und auf jeden Fall sehr gut zum Einstieg geeignet. Darüber hinaus empfehle ich jedem Typo3-Fan das Buch Typo3 – Paxiswissen für Entwickler aus dem Hause Galileo. Dort wird auf über 200 Seiten detailliert auf die Plugin-Entwicklung eingegangen. Und zwar ohne den Extension Kickstarter. Für das tiefergehende Verständnis von Typo3 und den Plugins absolut empfehlenswert!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax