19,99 €
Extensions für TYPO3 gibt es viele - aber sind darunter auch wirklich die, die Sie für Ihre Website brauchen? Am Beispiel einer konkreten Anwendung demonstriert der Webexperte Robert Steindl in diesem Buch, wie Sie selbst Erweiterungen für TYPO3 programmieren. Der Autor zeigt, wie Sie die Funktionen der TYPO3-API richtig verwenden und wie Sie das Kickstarter-Werkzeug einsetzen, mit dem Sie den Kern der Erweiterung erzeugen. Darüber hinaus führt er in die Frontend und Backend-Programmierung von TYPO3 ein. Ein Ausblick widmet sich zudem der Zukunft von TYPO3 und den Änderungen, die das neue Framework FLOW3 für Entwickler bringen wird.
Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:
Veröffentlichungsjahr: 2012
Inhaltsübersicht
1 Vorbereitung
1.1 Einleitung
2 Planung der Erweiterung
2.1 Anforderungen sammeln
2.2 Umsetzung des Entwurfs in TYPO3
3 Struktur einer Extension
3.1 Kategorien von Extensions
3.2 Dateistruktur einer Extension
4 Der Extension Kickstarter
4.1 Aufbau des Kickstarters
4.2 Dateien des Kickstarters
5 Das Frontend-Plugin
5.1 Ausgangsbasis
5.2 Frontend-Funktionen
5.3 Plugin-Konfiguration
5.4 Lokalisierung
5.5 Caching in Plugins
5.6 Der Plugin-Code
6 Backend-Programmierung
6.1 Das Backend-Formular
6.2 Das Backend-Modul
7 Fertigstellen der Extension
7.1 Code Review
7.2 Dokumentation
7.3 Veröffentlichen der Erweiterung
8 Project Coding Guidelines
8.1 Project Coding Guidelines
9 Die TYPO3-API
9.1 Die Programmierschnittstelle von TYPO3
10 Ausblick
10.1 Einschätzung
10.2 MVC als Entwurfsmuster
10.3 FLOW3 und Extbase
10.4 Fluid
10.5 Kickstarter
10.6 Zusammenfassung
Stichwortverzeichnis
1 Vorbereitung
1.1 Einleitung
Dieses Buch ist eine praxisorientierte Hilfe für alle, die den Schritt vom reinen TYPO3-Anwender hin zum Entwickler gehen wollen.
Im Laufe dieses Buches wird der Werdegang einer TYPO3-Extension Schritt für Schritt nachvollzogen – vom Einrichten einer passenden Entwicklungsumgebung bis hin zur Veröffentlichung im TYPO3-Repository.
Basis dieses Buches ist TYPO3 in der Version 4.2.10.
Voraussetzungen
Folgende Voraussetzungen und Kenntnisse sollten Sie als Leser dieses Buches mitbringen:
Sicherer Umgang mit TYPO3
Sie sollten TYPO3 als Administrator kennen und verstehen. Grundwissen zum Thema Typoscript und TYPO3-Extensions sollte vorhanden sein.
Programmierkenntnisse
Die Programmiersprache für TYPO3 und seine Extensions ist PHP. Sie sollten daher solide Kenntnisse im Umgang mit PHP im Allgemeinen sowie mit Klassen und Objekten im Besonderen haben.
HTML-Kenntnisse
Die meisten Extensions erzeugen Ausgaben im Frontend. Sicherer Umgang mit HTML und CSS wird daher vorausgesetzt.
Einrichten von TYPO3 als Entwicklungsumgebung
Grundsätzlich lässt sich eine TYPO3-Extension mit nicht mehr als einem simplen Texteditor programmieren. Allerdings würde das nicht nur unnötige Zeit kosten, sondern auch viele Fehlerquellen öffnen. Eine sinnvoll eingerichtete TYPO3-Umgebung ist daher für die Extension-Entwicklung äußerst hilfreich. Im Folgenden werden einige Erweiterungen und Dokumentationen beschrieben, die Ihnen helfen, den Weg zur eigenen Extension zu ebnen.
Der Extension Kickstarter
Der Extension Kickstarter (kickstarter) ist der Ausgangspunkt fast jeder Erweiterung. Er hilft, ein sauberes Grundgerüst für eine Extension aufzubauen – allerdings auch nicht mehr. Es handelt sich nämlich nicht um einen Editor, mit dem sich eine Extension nach dem Erstellen dauerhaft weiter pflegen lässt.
Wir werden den Kickstarter im Verlauf der Entwicklung unserer Erweiterung noch genauer kennenlernen.
Der Extension Development Evaluator
Die zweite hilfreiche TYPO3-Extension ist der Extension Development Evaluator (extdeveval). Diese Erweiterung stellt eine Reihe von Funktionen zur Verfügung, um Ihre Erweiterung zu säubern und an die TYPO3-Richtlinien anzupassen. Außerdem stellt sie eine Dokumentation der TYPO3-Funktionen zur Verfügung.
Auch diese Erweiterung werden wir beim Aufbau unserer Extension einsetzen.
T3Dev
Die Erweiterung T3Dev (t3dev) stellt ebenfalls einen Zugang zur Dokumentation zur Verfügung. Darüber hinaus enthält sie ein Tool zum Erstellen der XML-Strukturen für eine Flexform.
Dokumentationen
Die wichtigsten Dokumentationen zu TYPO3 stehen im Repository als »Extensions« zur Verfügung, auch wenn sie keinerlei Code enthalten. Stattdessen bringen sie die Dokumentation in Form einer OpenOffice-Datei auf Ihren Rechner, sodass die Informationen auch ohne Internet-Verbindung jederzeit zur Verfügung stehen.
Die Dokumentationen lassen sich mithilfe des Extension Managers problemlos installieren, indem Sie nach »doc_« suchen. Die wichtigsten Dokumentationen sind:
Dokumentation
Extension Key
Beschreibung
TSconfig
doc_core_tsconfig
Dokumentation der Typoscript-Konfiguration für Page und User TSConfig.
TSref
doc_core_tsref
Die Typoscript-Referenz
TYPO3 Coding Guidelines
doc_core_cgl
Guidelines für die Code-Entwicklung von TYPO3-Extensions
TYPO3 Core API
doc_core_api
Dokumentation der Programmierschnittstellen (APIs) von TYPO3
TypoScript Syntax and In-depth Study
doc_core_ts
Einführung in Typoscript
Tabelle 1.1: TYPO3-Dokumentationen
2 Planung der Erweiterung
Am Anfang jedes Projekts steht eine sorgfältige Planung, und eine TYPO3-Extension macht hier keine Ausnahme – im Gegenteil. Da jede Erweiterung Bestandteil des umfangreichen und komplexen TYPO3-Systems wird, muss sie über die »normalen« Anforderungen an ein Software-Projekt hinaus auch noch die Regeln erfüllen, die TYPO3 vorgibt. Ohne diese Vorgaben wäre es kaum möglich, die Stabilität und Flexibilität von TYPO3 zu gewährleisten.
2.1 Anforderungen sammeln
Am Beginn jeder Planung steht das Sammeln der Anforderungen – noch unabhängig vom Weg der Implementierung. So banal das klingen mag, so häufig wird dieser wesentliche Schritt versäumt oder zumindest zu leichtfertig angegangen. Stattdessen entwickelt sich das endgültige Konzept oft erst bei der Implementierung bzw. der Vorstellung der ersten Funktionen. Allerdings bedeutet das meist unnötige Verzögerungen und führt zu nicht optimalen Ergebnissen, weil an bereits fertigen Funktionen nachträglich Anpassungen erfolgen müssen. Im schlimmsten Fall stellt sich heraus, dass die grundlegende Struktur falsch ist, was dann umfangreiche Umbauarbeit nach sich zieht.
Eine gute erste Planungsphase hilft auch, unterschiedliche Denkweisen auszugleichen. Einfaches Beispiel: Denkt ein Bankangestellter an eine Transaktion, dann meint er meistens den Transfer von Geld. Ein Programmierer hat dagegen bei diesem Begriff eher Datenbanken im Sinn. Es lohnt sich daher, solche Missverständnisse von vornherein auszuschließen und eine gemeinsame Sicht der Dinge zu schaffen.
Das Pflichtenheft der Beispiel-Extension
Hier kommt nun das erste Mal unsere Beispiel-Extension ins Spiel. Im Laufe des Buches wollen wir einen Event Manager entwickeln, eine Erweiterung also, mit der sich Veranstaltungen verwalten lassen. Die Ausgangssituation soll folgendermaßen aussehen:
Auf der Website sollen Veranstaltungen angekündigt werden, zu denen sich Besucher registrieren können.
Eine Veranstaltung wird beschrieben mit Titel, Ort und Zeit. Außerdem soll es eine ausführliche Beschreibung geben sowie eine Agenda und einen Anreißtext, beispielsweise für die Homepage.
Zu einer Veranstaltung gibt es Sponsoren. Auf der Seite einer Veranstaltung soll eine Liste der Sponsoren mit Name und Logo zu sehen sein, die jeweils mit einem kurzen Firmenprofil verlinkt werden.
Es gibt Haupt- und Nebensponsoren.
Die Registrierung der Besucher erfolgt per Online-Formular. Dabei ist zu berücksichtigen, dass eine Veranstaltung nur eine begrenzte Zahl von Plätzen hat.
Jede Registrierung soll eine Mail an einen Mitarbeiter der Firma auslösen. Darüber hinaus soll in der Website-Verwaltung zu jeder Veranstaltung eine Teilnehmerliste abrufbar sein.
Als ergänzende Faktoren kommen dazu:
Ein Sponsor kann mehrere Veranstaltungen bezuschussen. Das Firmenprofil soll in diesem Fall nicht jedes Mal neu erstellt werden.
Besucher, die sich bereits einmal registriert haben, sollen ihre Daten nicht neu eingeben müssen.
Es gibt natürlich noch weitere naheliegende Funktionen, die zu unserer Erweiterung passen würden. Wir werden sie hier aber nicht umsetzen, um den Rahmen nicht zu sprengen. Denkbare zusätzliche Funktionen wären:
Veranstaltungsreihen, also sich wiederholende Termine
Online-Bezahlfunktionen
Registrierte Besucher können sich nach der Veranstaltung online anmelden, um zusätzliche Daten abzurufen, etwa die Präsentationen.
Technische Anforderungen
Über das funktionelle Pflichtenheft hinaus gibt es einige technische Details, die häufig nicht zur Sprache kommen, aber auf jeden Fall berücksichtigt werden sollten. Dazu gehören:
Einfache Anpassbarkeit des Layouts
Einfache Konfiguration im Backend
Unterstützung für mehrsprachige Websites
Dokumentation
Insbesondere der letzte Punkt gilt als undankbare Aufgabe und wird oft nur kurz oder lieblos erfüllt. Erfahrene Auftraggeber bestehen auf einer guten Dokumentation, doch auch aus Sicht des Programmierers ist sie wichtig. Denn nahezu jedes Projekt holt die Entwickler irgendwann wieder ein, beispielsweise weil neue Funktionen implementiert werden sollen. Und auch wenn man den Code selbst geschrieben hat – ein Jahr später wirkt er so fremd, als hätte man ihn nie gesehen.
Lesen Sie weiter in der vollständigen Ausgabe!
Lesen Sie weiter in der vollständigen Ausgabe!
Lesen Sie weiter in der vollständigen Ausgabe!
Lesen Sie weiter in der vollständigen Ausgabe!
Lesen Sie weiter in der vollständigen Ausgabe!
Lesen Sie weiter in der vollständigen Ausgabe!
Lesen Sie weiter in der vollständigen Ausgabe!
Lesen Sie weiter in der vollständigen Ausgabe!
Lesen Sie weiter in der vollständigen Ausgabe!
Lesen Sie weiter in der vollständigen Ausgabe!
Tausende von E-Books und Hörbücher
Ihre Zahl wächst ständig und Sie haben eine Fixpreisgarantie.
Sie haben über uns geschrieben: