Extensions für TYPO3 - So entwickeln Sie maßgeschneiderte TYPO3-Erweiterungen | 1 |
Inhaltsverzeichnis | 5 |
1 Vorbereitung | 9 |
1.1 Einleitung | 9 |
1.1.1 Voraussetzungen | 9 |
1.1.2 Einrichten von TYPO3 als Entwicklungsumgebung | 10 |
2 Planung der Erweiterung | 13 |
2.1 Anforderungen sammeln | 13 |
2.1.1 Das Pflichtenheft der Beispiel-Extension | 13 |
2.1.2 Technische Anforderungen | 14 |
2.1.3 Die Datenbankstruktur | 15 |
2.2 Umsetzung des Entwurfs in TYPO3 | 17 |
2.2.1 Der Extension Key | 17 |
2.2.2 Veröffentlichen von Extensions | 19 |
2.2.3 Anpassung der Datenbankstruktur | 21 |
3 Struktur einer Extension | 27 |
3.1 Kategorien von Extensions | 27 |
3.1.1 Backend | 28 |
3.1.2 Backend Modules | 29 |
3.1.3 Frontend | 29 |
3.1.4 Frontend Plugins | 29 |
3.1.5 Services | 29 |
3.1.6 Documentation | 29 |
3.1.7 Examples | 30 |
3.1.8 Templates | 30 |
3.1.9 Miscellaneous | 30 |
3.1.10 Kategorie [ ] | 30 |
3.2 Dateistruktur einer Extension | 31 |
3.2.1 ext_emconf.php | 31 |
3.2.2 ext_localconf.php | 32 |
3.2.3 ext_tables.php | 32 |
3.2.4 ext_tables.sql | 33 |
3.2.5 ext_tables_static+adt.sql | 33 |
3.2.6 ext_typoscript_constants.txt | 34 |
3.2.7 ext_typoscript_setup.txt | 34 |
3.2.8 ext_typoscript_editorcfg.txt | 34 |
3.2.9 ext_conf_template.txt | 34 |
3.2.10 ext_icon.gif | 35 |
3.2.11 class.ext_update.php | 35 |
3.2.12 Sprachdateien | 36 |
3.2.13 Ordnerstrukturen | 36 |
3.2.14 Statische Templates | 37 |
4 Der Extension Kickstarter | 39 |
4.1 Aufbau des Kickstarters | 39 |
4.1.1 General info | 40 |
4.1.2 Setup languages | 40 |
4.1.3 New Database Tables | 41 |
4.1.4 Extend existing Tables | 52 |
4.1.5 Frontend Plugins | 54 |
4.1.6 Backend Modules | 57 |
4.1.7 Integrate in existing Modules | 59 |
4.1.8 Clickmenu items | 59 |
4.1.9 Services | 60 |
4.1.10 Static TypoScript code | 62 |
4.1.11 TSconfig | 64 |
4.1.12 Extension schreiben | 65 |
4.2 Dateien des Kickstarters | 67 |
4.2.1 ext_emconf.php | 68 |
4.2.2 ext_localconf.php | 75 |
4.2.3 ext_tables.php | 78 |
4.2.4 tca.php | 81 |
4.2.5 locallang_db.xml | 83 |
4.2.6 ext_tables.sql | 84 |
4.2.7 Icons | 85 |
4.2.8 Texte | 85 |
4.2.9 Konfiguration einer Extension | 86 |
5 Das Frontend-Plugin | 89 |
5.1 Ausgangsbasis | 89 |
5.2 Frontend-Funktionen | 91 |
5.2.1 tslib_pibase | 91 |
5.2.2 Weitere Frontend-Klassen | 92 |
5.3 Plugin-Konfiguration | 93 |
5.3.1 Konfiguration via Typoscript | 93 |
5.3.2 Konfiguration via Template Editor | 93 |
5.3.3 Konfiguration via Flexform | 95 |
5.3.4 Auswerten der Konfiguration | 103 |
5.3.5 Unterstützung von Templates | 104 |
5.4 Lokalisierung | 106 |
5.4.1 locallang.xml | 107 |
5.4.2 Lokalisierte Texte im Plugin | 107 |
5.4.3 Lokalisierte Templates | 108 |
5.4.4 Lokalisierte Einträge | 108 |
5.4.5 Verwendung von Zeichensätzen | 109 |
5.5 Caching in Plugins | 110 |
5.5.1 Der TYPO3-Cache | 110 |
5.5.2 Caching in Plugins | 111 |
5.5.3 Caching abschalten | 112 |
5.6 Der Plugin-Code | 114 |
5.6.1 Beispielcode säubern | 114 |
5.6.2 Sichtbarkeitsattribute (access identifier) | 116 |
5.6.3 Die Funktion main() | 116 |
5.6.4 Die Listenansicht | 118 |
5.6.5 Die Einzelansicht | 124 |
5.6.6 Erweitern der Extension-Funktionen | 131 |
5.6.7 Zusammenfassung | 134 |
6 Backend-Programmierung | 135 |
6.1 Das Backend-Formular | 135 |
6.1.1 ext_tables.php / tca.php | 135 |
6.2 Das Backend-Modul | 139 |
6.2.1 Die Ausgangsbasis | 139 |
6.2.2 Backend-Klassen | 141 |
6.2.3 Das Objekt $GLOBALS['BE_USER'] | 144 |
6.2.4 Verwendung des System-Logs | 148 |
6.2.5 index.php | 151 |
6.2.6 mod_template.html | 161 |
7 Fertigstellen der Extension | 163 |
7.1 Code Review | 163 |
7.1.1 Funktionalität prüfen | 163 |
7.1.2 Code prüfen | 163 |
7.2 Dokumentation | 166 |
7.2.1 Handbuch-Struktur | 167 |
7.2.2 Verwendung der Formatvorlagen | 168 |
7.3 Veröffentlichen der Erweiterung | 170 |
8 Project Coding Guidelines | 173 |
8.1 Project Coding Guidelines | 173 |
8.1.1 Konventionen für Benennung und Formatierung | 173 |
8.1.2 Variablen und Konstanten | 178 |
8.1.3 Datenbankzugriff | 180 |
8.1.4 Sicherheit | 182 |
8.1.5 Coding | 184 |
9 Die TYPO3-API | 189 |
9.1 Die Programmierschnittstelle von TYPO3 | 189 |
9.1.1 Grundlagen | 189 |
9.1.2 Workspaces | 194 |
9.1.3 TYPO3 Core Engine (TCE) | 198 |
9.1.4 Nützliche Variablen und Konstanten | 207 |
9.1.5 AJAX im TYPO3-Backend | 211 |
9.1.6 Der Table Configuration Array (TCA) | 216 |
10 Ausblick | 263 |
10.1 Einschätzung | 263 |
10.2 MVC als Entwurfsmuster | 264 |
10.3 FLOW3 und Extbase | 265 |
10.3.1 FLOW3 | 265 |
10.3.2 Extbase | 266 |
10.3.3 Entwicklungsprinzipien | 266 |
10.4 Fluid | 269 |
10.5 Kickstarter | 271 |
10.6 Zusammenfassung | 272 |
Stichwortverzeichnis | 275 |