|
Inhaltsverzeichnis |
6 |
|
|
1 Grundlagen |
12 |
|
|
1.1 Einleitung |
12 |
|
|
1.2 Entstehung von Typo3 |
12 |
|
|
1.3 Architektur |
13 |
|
|
1.4 TYPO3 Association und Community |
16 |
|
|
1.5 Ressourcen |
17 |
|
|
2 Typo3 installieren |
18 |
|
|
2.1 Systemvoraussetzungen |
18 |
|
|
2.1.1 Grundvoraussetzungen |
18 |
|
|
2.1.2 Optionale Voraussetzungen |
19 |
|
|
2.2 Typo3 unter Linux und Windows |
19 |
|
|
2.2.1 Linux-spezifische Eigenheiten |
19 |
|
|
2.2.2 Windows-spezifische Eigenheiten |
21 |
|
|
2.3 Basisinstallation |
22 |
|
|
2.3.1 Schnellinstallation im 1-2-3-Modus |
22 |
|
|
2.3.2 Erweiterte Konfiguration |
24 |
|
|
2.4 Extensions |
32 |
|
|
2.4.1 Der Extension Manager |
33 |
|
|
2.4.2 Extensions installieren |
37 |
|
|
2.5 Multiple Websites mit Typo3 |
38 |
|
|
2.5.1 Mehrere Instanzen von Typo3 |
38 |
|
|
3 Website Design mit Typo3 |
42 |
|
|
3.1 HTML ist aller Seiten Anfang |
42 |
|
|
3.2 Die statische Variante |
43 |
|
|
3.2.1 Platzhalter: Subparts oder Marker? |
43 |
|
|
3.2.2 Typoscript sorgt für Inhalte |
48 |
|
|
3.2.3 Mehrere Templates verwalten |
51 |
|
|
3.3 Automatische Templates |
57 |
|
|
3.3.1 Die Erweiterung automaketemplate |
57 |
|
|
3.3.2 Einbinden der Erweiterung |
57 |
|
|
3.3.3 Das virtuelle Template |
60 |
|
|
3.3.4 Feintuning für den Auto-Parser |
63 |
|
|
3.3.5 Abschlussarbeiten |
63 |
|
|
3.3.6 Auto-Parser und Template Selector |
65 |
|
|
3.4 TemplaVoila |
65 |
|
|
3.4.1 Ein TemplaVoila-Template anlegen |
66 |
|
|
3.5 TypoScript |
81 |
|
|
3.5.1 Einführung |
81 |
|
|
3.5.2 Typoscript-Bereiche |
82 |
|
|
3.5.3 Der Typoscript Object Browser |
83 |
|
|
3.5.4 Syntax |
85 |
|
|
3.5.5 Datentypen |
89 |
|
|
3.5.6 Bedingungen (Conditions) |
92 |
|
|
3.5.7 Funktionen |
96 |
|
|
3.5.8 Konstanten |
100 |
|
|
3.5.9 Der Setup-Bereich |
100 |
|
|
3.5.10 Fehlersuche |
108 |
|
|
3.5.11 Editoren für Typoscript |
113 |
|
|
3.5.12 Ein Beispiel-Template |
116 |
|
|
3.6 Menüs in Typo3 |
120 |
|
|
3.6.1 Das HMENU-Objekt |
121 |
|
|
3.6.2 Menü-Ebenen |
123 |
|
|
3.6.3 Menü-Zustände |
128 |
|
|
3.6.4 TMENU |
130 |
|
|
3.6.5 GMENU |
135 |
|
|
3.6.6 Layer-Menüs |
137 |
|
|
3.6.7 GMENU_FOLDOUT |
140 |
|
|
3.6.8 IMGMENU |
142 |
|
|
3.6.9 JSMENU |
145 |
|
|
3.6.10 Spezielle Menüs |
146 |
|
|
3.7 Barrierefreies Design |
156 |
|
|
3.7.1 Ressourcen zur Barrierefreiheit |
156 |
|
|
3.7.2 Valider Quellcode |
159 |
|
|
3.8 Mehrsprachige Websites |
179 |
|
|
3.8.1 Das Zwei-Baum-Konzept |
179 |
|
|
3.8.2 Das One-Tree-Fits-All-Konzept |
181 |
|
|
3.8.3 Extensions und Mehrsprachigkeit |
191 |
|
|
3.8.4 RealUrl und Mehrsprachigkeit |
192 |
|
|
3.8.5 TemplaVoila und Mehrsprachigkeit |
197 |
|
|
3.9 Frontend-Benutzer |
198 |
|
|
3.9.1 Von Usern und Gruppen |
199 |
|
|
3.9.2 Zugriffsrechte vergeben |
202 |
|
|
3.9.3 Login-Seite einrichten |
204 |
|
|
3.9.4 Login auf jeder Seite |
207 |
|
|
3.9.5 User-Registrierung und Profilverwaltung |
209 |
|
|
3.9.6 Passwörter absichern |
213 |
|
|
4 Das Typo3 Backend |
216 |
|
|
4.1 Benutzerverwaltung |
216 |
|
|
4.1.1 Backend-Benutzergruppen |
216 |
|
|
4.1.2 Rechte vergeben |
218 |
|
|
4.1.3 Backend-User anlegen |
228 |
|
|
4.2 Backend anpassen |
232 |
|
|
4.2.1 Die Typoscript-Hierarchie |
232 |
|
|
4.2.2 UserTS |
233 |
|
|
4.2.3 PageTS |
253 |
|
|
4.3 Workflows in Typo3 |
269 |
|
|
4.3.1 Versionierung |
270 |
|
|
4.3.2 Workspaces |
272 |
|
|
5 Extension-Entwicklung |
282 |
|
|
5.1 Grundlagen |
282 |
|
|
5.1.1 Typo3 und Extensions |
282 |
|
|
5.1.2 Arten von Extensions |
284 |
|
|
5.1.3 Benennung von Extensions |
287 |
|
|
5.1.4 Veröffentlichen von Extensions |
289 |
|
|
5.1.5 Verzeichnisstruktur |
289 |
|
|
5.2 Der Extension Kickstarter |
295 |
|
|
5.2.1 General info |
296 |
|
|
5.2.2 Setup languages |
297 |
|
|
5.2.3 New Database Tables |
297 |
|
|
5.2.4 Extend existing Tables |
305 |
|
|
5.2.5 Frontend Plugins |
306 |
|
|
5.2.6 Backend Modules |
309 |
|
|
5.2.7 Integrate in existing Modules |
310 |
|
|
5.2.8 Clickmenu items |
311 |
|
|
5.2.9 Services |
311 |
|
|
5.2.10 Static TypoScript code |
314 |
|
|
5.2.11 TSconfig |
314 |
|
|
5.2.12 Extension schreiben |
314 |
|
|
5.2.13 Dateien des Kickstarters |
316 |
|
|
5.2.14 Konfiguration einer Extension |
327 |
|
|
5.3 Backend-Programmierung |
328 |
|
|
5.3.1 Backend-Module |
328 |
|
|
5.3.2 Modulerweiterungen |
332 |
|
|
5.3.3 Integration mit mod.php |
332 |
|
|
5.3.4 Backend-Klassen |
335 |
|
|
5.3.5 ext_tables.php / tca.php |
337 |
|
|
5.3.6 Das Objekt $BE_USER |
340 |
|
|
5.3.7 Verwendung des System-Logs |
344 |
|
|
5.4 Frontend-Programmierung |
347 |
|
|
5.5 Project Coding Guidelines |
352 |
|
|
5.5.1 Konventionen für Benennung und Formatierung |
352 |
|
|
5.5.2 Variablen und Konstanten |
357 |
|
|
5.5.3 Datenbankzugriff |
358 |
|
|
5.5.4 Sicherheit |
361 |
|
|
5.5.5 Coding |
363 |
|
|
5.6 Typo3-API |
366 |
|
|
5.6.1 Grundlagen |
366 |
|
|
5.6.2 Workspaces |
371 |
|
|
5.6.3 TYPO3 Core Engine (TCE) |
375 |
|
|
5.6.4 Erweitern von Typo3- und Extension-Funktionen |
384 |
|
|
5.6.5 Nützliche Variablen und Konstanten |
386 |
|
|
5.6.6 AJAX im TYPO3 Backend |
391 |
|
|
5.6.7 Der Table Configuration Array (TCA) |
397 |
|
|
6 Lösungen |
444 |
|
|
6.1 Performance steigern |
444 |
|
|
6.1.1 Typo3 optimieren |
444 |
|
|
6.1.2 PHP |
449 |
|
|
6.1.3 Apache |
450 |
|
|
6.1.4 MySQL |
452 |
|
|
6.1.5 Leistung messen |
452 |
|
|
6.2 Einbinden in bestehende Architekturen |
454 |
|
|
6.2.1 Typo3 und LDAP |
454 |
|
|
6.2.2 Typo3 und OpenEMM |
462 |
|
|
6.3 Backup |
467 |
|
|
6.3.1 Import/Export als T3D |
467 |
|
|
6.3.2 Backup mittels Extension |
469 |
|
|
6.3.3 Backup mittels Shell-Skript |
472 |
|
|
6.4 Sicherheit |
474 |
|
|
6.4.1 Aktuelle Patches einspielen |
474 |
|
|
6.4.2 Weniger ist besser |
475 |
|
|
6.5 Suchmaschinenoptimierung |
483 |
|
|
6.5.1 Validen Quellcode erzeugen |
483 |
|
|
6.5.2 Metadaten optimieren |
486 |
|
|
6.5.3 Sitemap anlegen |
489 |
|
|
6.5.4 SEO-freundliche Links |
491 |
|
|
Stichwortverzeichnis |
496 |
|