Inhalt | 6 |
Vorwort zur 2. Auflage | 16 |
Vorwort | 17 |
1 Installation unter Windows | 20 |
R1.1 Installation mit XAMPP | 20 |
R1.2 Installation mit dem TYPO3Winstaller | 23 |
R1.3 Installation mit WOS | 25 |
R1.4 Installation auf bestehenden Windows-Webserver | 26 |
R1.5 Besonderheiten unter Windows Vista | 30 |
2 Installation unter Linux | 32 |
R2.1 Installation auf einem Linux Webserver | 32 |
R2.2 Automatische Installation per Skript | 35 |
R2.3 Zentralisierter Kern | 38 |
3 Installation unter Mac OS X | 40 |
R3.1 Das „Rund-um-Sorglos“-Paket installieren | 40 |
R3.2 TYPO3 manuell installieren | 42 |
4 Zusätzliche Tools installieren | 50 |
R4.1 ImageMagick/GraphicsMagick installieren | 50 |
R4.2 Installation von catdoc und pdf2text | 52 |
5 Konfiguration | 56 |
R5.1 PHP und Apache richtig konfigurieren | 56 |
R5.2 Zugang zum Konfigurationsskript | 58 |
R5.3 Aktivieren und neues Passwort vergeben (joh316) | 59 |
R5.4 ImageMagick und GDlib richtig einstellen | 61 |
R5.5 Session-Timeout erhöhen | 65 |
R5.6 Dateien in typo3conf/ editieren | 66 |
R5.7 Zugang mit wechselnder IP | 67 |
R5.8 Eigene 404 Error-Seite | 68 |
R5.9 404 von Suchmaschinen verhindern | 71 |
R5.10 Backend-Usern ermöglichen, Cache zu löschen | 71 |
R5.11 Dateirechte unter Linux vernünftig setzen | 72 |
R5.12 Eigenes vHost für das TYPO3-Backend | 72 |
R5.13 Unterschiedliche Startseiten pro Domain definieren | 73 |
R5.14 Eigene Copyright-Informationen im Quelltext | 74 |
R5.15 Konfiguration ermitteln (misc/superadmin.php) | 75 |
6 Wartung | 78 |
R6.1 Das Changelog | 78 |
R6.2 TYPO3 Upgrade | 78 |
R6.3 Seitenbaum exportieren | 81 |
R6.4 TYPO3 Installation auf einen anderen Server migrieren | 84 |
R6.5 Statistiken mit AWStats einrichten | 85 |
R6.6 AWStats für Redakteure verfügbar machen | 86 |
7 TYPO3 4.1/4.2/4.3 | 88 |
R7.1 TYPO3 4.1 – Übersicht | 88 |
R7.2 TYPO3 4.1 – IRRE (Inline Relational Record Editing) | 94 |
R7.3 TYPO3 4.1 – Kommandozeile (CLI-Skript) zur Datenbankpflege | 100 |
R7.4 TYPO3 4.2 – Übersicht | 109 |
R7.5 TYPO3 4.3 – Übersicht | 117 |
8 Fehlersuche im Frontend | 120 |
R8.1 localconf.php is not found! | 120 |
R8.2 Datenbankfehler (Database error) | 121 |
R8.3 Error: No pages are found on the rootlevel! | 124 |
R8.4 Error: No template found! | 125 |
R8.5 Error: The requested page does not exist! | 127 |
R8.6 Error: ID was not an accessible page | 128 |
R8.7 Error: Subsection was found and not accessible | 129 |
R8.8 Error: ID was outside the domain | 130 |
R8.9 Error: The requested page alias does not exist | 131 |
R8.10 Error: The page is not configured! [type= xx][] | 132 |
R8.11 Error: Page is not available in the requested language | 132 |
R8.12 Error: Page is not available in default language | 133 |
R8.13 Error: Page is not available in the requested language (strict). | 134 |
R8.14 Error: Segment xxx was not a keyword for a postVarSet as expected | 135 |
9 Fehlersuche im Backend | 138 |
R9.1 Important notice! | 138 |
R9.2 The password of your Install Tool is still using the default value "joh316" | 139 |
R9.3 The backend user "admin" with password "password" is still existing | 140 |
R9.4 The encryption key is not set! Set it in $TYPO3_CONF_VARS[SYS][encryptionKey] | 140 |
R9.5 This installation is not configured for the TYPO3 version it is running … | 141 |
R9.6 The Reference Index table is empty which is … | 142 |
R9.7 In the source distribution of TYPO3, the install script is disabled by a die() function call. | 143 |
R9.8 Install Tool Meldungen | 145 |
10 TypoScript Debugging | 150 |
R10.1 TypoScript Object Browser und Template Analyzer | 150 |
R10.2 TypoScript Debugging im Frontend mit dem Admin Panel | 158 |
R10.3 Offsite-Debugging von TypoScript mit PSPad und SweeTS | 159 |
11 TYPO3 Debugging | 168 |
R11.1 TYPO3 (PHP) Debugging mittels Eclipse | 168 |
R11.2 Debugging mit der debug()-Funktion | 184 |
R11.3 Erweiterung der debug()-Funktion durch Extensions | 185 |
R11.4 Debugging mit der Funktion t3lib_div::devLog() | 189 |
R11.5 FE Debug/lnfo output und BE Env-Info | 192 |
12 Backend anpassen | 194 |
R12.1 Anmeldemaske anpassen | 194 |
R12.2 Backend-User auf das Frontend umleiten | 197 |
R12.3 Das Backend-Design ändern | 199 |
13 Arbeiten mit dem Backend | 202 |
R13.1 Passwort zurücksetzen | 202 |
R13.2 Backend für schmale Bildschirme | 204 |
R13.3 Anzahl der Inhaltsspalten ändern | 206 |
R13.4 Inhaltsspalten umbenennen | 207 |
R13.5 Auswahllisten bearbeiten | 209 |
R13.6 Das Feld Page/Layout für verschiedene CSS Stylesheetsverwenden | 212 |
R13.7 Eingabefelder und Bearbeitungsmöglichkeiten reduzieren | 213 |
R13.8 Formularanordnung ändern | 215 |
R13.9 Eingabefelder ändern | 219 |
R13.10 Formulareingaben überprüfen | 220 |
R13.11 Der TypoScript-Editor | 223 |
R13.12 Cache automatisch leeren | 224 |
14 Ordnung und Übersicht im Backend schaffen | 226 |
R14.1 Shortcuts verwenden | 226 |
R14.2 Die zuletzt bearbeiteten Datensätze öffnen | 227 |
R14.3 IDs von Seiten und Datensätzen ermitteln | 227 |
R14.4 Weitere Datensätze im Seitenmodul anzeigen | 228 |
R14.5 Die Übersicht im Seitenbaum behalten | 230 |
R14.6 Neue Suche im Backend ab TYPO3 4.2 | 230 |
R14.7 Zusätzliche Daten im Listenmodul anzeigen | 231 |
R14.8 Mithilfe von Befehlen Vorgänge automatisieren | 233 |
R14.9 Element-Browser konfigurieren | 236 |
R14.10 Kontextmenü im Seitenbaum deaktivieren | 237 |
R14.11 Die Größe des RTE ändern | 238 |
15 Inhalte eingeben | 240 |
R15.1 Mehrere Seiten schnell erzeugen | 240 |
R15.2 Schnelle Inhaltseingabe | 241 |
R15.3 Inhaltsfelder anderer Datentypen nutzen | 243 |
R15.4 Standardwerte für Eingabefelder vorgeben | 245 |
R15.5 Sichtbarkeit vordefinieren | 246 |
R15.6 Upload-Beschränkungen anheben | 247 |
R15.7 Typolinks erstellen | 248 |
16 Inhalte verwalten | 250 |
R16.1 Mehrere Seiten/Datensätze verschieben | 250 |
R16.2 Mehrere Dateien/Verzeichnisse kopieren | 252 |
R16.3 Mehrere Datensätze gleichzeitig bearbeiten | 252 |
R16.4 Rekursives Löschen und Kopieren | 255 |
R16.5 Seiten sortieren | 255 |
R16.6 Einfaches Bearbeiten von Datumsfeldern | 256 |
R16.7 Änderungen rückgängig machen | 257 |
R16.8 Gelöschte Inhalte wieder herstellen | 258 |
R16.9 Gelöschte Inhalte per Undo/Redo wiederherstellen | 259 |
R16.10 Nur eigene Datensätze verwalten | 260 |
17 Inhalte ausgeben – Design | 266 |
R17.1 Quellcode gehighlighted darstellen | 266 |
R17.2 Dynamische Stylesheets | 268 |
R17.3 Headerbild auf jeder Seite anzeigen | 269 |
R17.4 Klickvergrößerung für Bilder anpassen | 271 |
R17.5 clear.gif und Abstände nach Elementen löschen | 272 |
R17.6 Überschrift für jede Spalte anders formatieren | 273 |
18 Inhalte ausgeben – Funktion | 274 |
R18.1 Standardinhalt für leere Content-Spalten | 274 |
R18.2 P-Tags in Textabsätzen entfernen | 275 |
R18.3 Dateiliste gefiltert und sortiert ausgeben | 276 |
R18.4 Das aktuelle Datum ausgeben | 277 |
R18.5 Einen Abreißkalender generieren | 280 |
R18.6 Inhalte auf jeder Seite anzeigen lassen | 283 |
R18.7 E-Mail-Adressen vor Spammern schützen | 284 |
R18.8 Inhalte von anderen Seiten verknüpfen | 285 |
R18.9 RSS-Feeds anbieten | 286 |
R18.10 Druckversion der Website erstellen | 290 |
R18.11 PDF-Version der Website erstellen | 292 |
R18.12 RealMedia im Multimedia-Content-Element | 293 |
R18.13 Eigene PHP-Skripte als Seiteninhalt einbinden | 293 |
19 Suche integrieren (indexed_search) | 296 |
R19.1 Basiskonfiguration und Grundeinstellungen | 296 |
R19.2 indexed_search auf jeder Seite per TypoScript einbinden | 300 |
R19.3 Es werden keine Seiten indiziert | 301 |
R19.4 Suche auf bestimmte Inhalte begrenzen | 305 |
R19.5 Suche auf Teilbereiche der Site beschränken | 305 |
R19.6 Meta-Tags nicht in die Suchergebnisse übernehmen | 306 |
R19.7 Suchergebnisse anpassen | 307 |
R19.8 Alternative zur indexed_search (Search in tables) | 307 |
20 Formulare | 310 |
R20.1 Formularlayout anpassen | 310 |
R20.2 Mailform plus als Alternative zum Mailformular | 312 |
R20.3 Mailform Plus mit CAPTCHA | 314 |
R20.4 Formulare mit einem Fieldset umgeben | 316 |
R20.5 Standard-Mailform mit Rollover-Effekt | 319 |
R20.6 Mail an mehrere Empfänger senden | 321 |
R20.7 Felder mit Werten aus der Datenbank vorbelegen | 321 |
R20.8 Frontend Userdaten in Standard Mailform nutzen | 322 |
R20.9 Absender eine Bestätigungsmail senden | 323 |
R20.10 Absender des Kontaktformulars aus Mailfeld vorbelegen | 324 |
21 Passwortgeschützte Bereiche | 326 |
R21.1 Frontendbenutzer und Benutzergruppen | 326 |
R21.2 Zugriffsrechte für Frontendbenutzer einrichten | 329 |
R21.3 Nach Anmeldung weiterleiten | 330 |
R21.4 Logout realisieren | 332 |
R21.5 Passwörter MD5-verschlüsselt ablegen | 332 |
R21.6 Die Extension newloginbox einsetzen | 333 |
R21.7 Benutzerliste anzeigen | 334 |
R21.8 Automatisches Login im Frontend | 337 |
R21.9 Besuchern die Registrierung als Benutzer ermöglichen | 337 |
R21.10 sr_feuser_register um eigene Felder erweitern | 340 |
R21.11 Benutzername auf der Webseite anzeigen | 344 |
R21.12 Zugriffsschutz für fileadmin | 345 |
R21.13 Login über LDAP (Active Directory) | 347 |
22 TypoScript-Tricks | 352 |
R22.1 TypoScript aus externen Dateien einbinden | 352 |
R22.2 Tageszeitabhängiger Content | 353 |
R22.3 Favicon einbinden | 354 |
R22.4 Datum der letzten Änderung der Seite anzeigen | 355 |
R22.5 Letzte Änderung in Datensätzen von Extensions | 356 |
R22.6 Neue Seiten sollen im selben Fenster geöffnet werden | 357 |
R22.7 Aktuelle URL anzeigen | 357 |
R22.8 TypoScript in PHP über eine userfunc verwenden | 358 |
23 Templates erstellen und einsetzen | 362 |
R23.1 Header-Daten richtig setzen | 362 |
R23.2 Doctype Switching | 363 |
R23.3 JavaScript und CSS-Dateien extern verlinken | 364 |
R23.4 Mehrere Stylesheets einbinden | 365 |
R23.5 Static Templates | 365 |
R23.6 Marker und Subparts | 368 |
R23.7 Template Auto-Parser | 371 |
R23.8 YAML | 376 |
R23.9 Kompatibilitätsmodus des Webbrowsers prüfen | 380 |
24 TemplaVoilà | 382 |
R24.1 TemplaVoilà – Grundkonfiguration | 382 |
R24.2 Template-Objekt, Datenstruktur und Mapping | 387 |
R24.3 Anordnung der Elemente im Backend verändern | 404 |
R24.4 Content-Slide in TemplaVoilà realisieren | 407 |
R24.5 Flexible Content Element (FCE) | 409 |
25 Benutzerverwaltung | 420 |
R25.1 User und Gruppen anlegen | 420 |
R25.2 Neue Benutzer aus einer Vorlage heraus erstellen | 426 |
R25.3 Inhaltselemente in bestimmten Seiten verbieten | 427 |
R25.4 Benutzern Zugriff auf das Filesystem erlauben | 428 |
R25.5 Seiteneinstiegspunkt setzen | 430 |
R25.6 Seitenrechte einrichten | 431 |
R25.7 Benutzerrechte vergleichen | 434 |
R25.8 Standardrechte bei Seitenerstellung | 435 |
R25.9 Mehreren Gruppen Rechte auf Seiten geben | 435 |
R25.10 Benutzereinstellungen | 436 |
26 Arbeiten im Redaktionsteam | 440 |
R26.1 Einfacher Workflow mit Bordmitteln | 440 |
R26.2 Arbeiten mit Workspaces | 441 |
R26.3 Eigene Workspaces anlegen und benutzen | 445 |
R26.4 E-Mail-Benachrichtigungen | 448 |
27 Frontend Editing | 450 |
R27.1 Frontend Editing aktivieren | 450 |
R27.2 Frontend Editing anpassen und optimieren | 453 |
R27.3 Editierleiste anpassen | 455 |
R27.4 Editierleiste und Symbole ohne Admin Panel | 456 |
R27.5 Neue Seite im Frontend anlegen | 456 |
R27.6 Neue Datensätze im Frontend anlegen | 457 |
R27.7 tt_news-Datensätze bearbeiten | 458 |
28 RTE – HTMLArea anpassen | 460 |
R28.1 Das RTE-Transformationsdiagramm | 460 |
R28.2 Die RTE-Basiskonfiguration | 462 |
R28.3 Die erweiterte Konfiguration des RTE | 464 |
R28.4 Eigene Text- und Absatz-Klassen verwenden | 468 |
R28.5 Anpassung des RTE für einzelne Benutzer bzw. Benutzergruppen | 470 |
29 Der GIFBUILDER | 472 |
R29.1 Bilder mit Wasserzeichen | 472 |
R29.2 Dynamisches Logo im Web 2.0-Stil | 474 |
R29.3 Spiegelnde Bilder | 478 |
R29.4 Corporate Identity bei Überschriften | 480 |
R29.5 Grafiken mit mehrzeiligem Text | 480 |
30 Navigation | 482 |
R30.1 Menü auf Basis ungeordneter Listen | 482 |
R30.2 Textmenü mit Icon | 483 |
R30.3 Textmenü mit CSS-Auszeichnung der Zustände | 484 |
R30.4 Menüeinträge konfigurieren (Positionsabhängigkeit) | 486 |
R30.5 Geschütze Seiten anzeigen und auf Login umleiten | 488 |
R30.6 Grafikmenü auf Basis ungeordneter Listen | 489 |
R30.7 Rootline- bzw. Breadcrumb-Navigation erstellen | 491 |
R30.8 Eine Sitemap anlegen und konfigurieren | 492 |
R30.9 Liste der zuletzt aktualisierten Seiten | 494 |
R30.10 Blätternavigation | 495 |
R30.11 Jump-Menü/Drop-Down-Menü | 498 |
R30.12 Haupt- und Unternavigation räumlich trennen | 500 |
R30.13 Grafikmenü mit bestehenden Grafiken realisieren | 501 |
31 Barrierefreiheit | 504 |
R31.1 Den richtigen Doctype setzen | 504 |
R31.2 Validierung und XHTML-Cleaning | 505 |
R31.3 HTML-Quellcode aufräumen und optimieren mit Tidy | 507 |
R31.4 Überprüfung der Validität (HTML-Validator) | 508 |
R31.5 Browserweichen einrichten | 510 |
R31.6 Barrierefreie Templates mit dem YAML-Framework | 512 |
R31.7 Semantisch korrekte Überschriften | 514 |
R31.8 Barrierefreie Menüs mit Accesskeys einrichten | 517 |
R31.9 Barrierefreie Grafikmenüs erstellen | 519 |
R31.10 Multimedia-Inhalte wie Flash und Video einbinden | 521 |
R31.11 Schriftgrößen-Umschalter realisieren | 522 |
R31.12 Barrierefreie grafische Header verwenden | 525 |
32 Mehrsprachigkeit | 530 |
R32.1 Die richtigen Vorbereitungen treffen | 530 |
R32.2 Multi-Tree und One-Tree-Fits-All Ansatz | 534 |
R32.3 Flagge für die Default-Sprache setzen | 535 |
R32.4 Eigene Sprachen und Flaggen hinzufügen | 536 |
R32.5 Mehrsprachigkeit aktivieren | 538 |
R32.6 Übersetzungen anlegen | 542 |
R32.7 Einen Sprachumschalter realisieren | 543 |
R32.8 Mehrsprachige Texte und Bilder | 546 |
R32.9 Japanische Sprachversion (chinesisch, koreanisch) | 548 |
R32.10 Lokalisierungsansicht | 553 |
33 Der Extension Manager | 556 |
R33.1 Extensions aus dem TER2 laden | 556 |
R33.2 Extensions aktualisieren | 560 |
R33.3 Extensions importieren | 561 |
R33.4 Extension Manager findet keine Extensions | 562 |
R33.5 Installierte Extensions ermitteln | 563 |
R33.6 Extensions exportieren | 564 |
R33.7 Extensions deinstallieren | 564 |
R33.8 Extensions im TER2 veröffentlichen | 565 |
R33.9 Extension Manager meldet Fehler | 567 |
R33.10 Sprachen installieren | 567 |
R33.11 Firefox Suchfeld für TER2 | 568 |
R33.12 Neue Extension verursacht schweren Fehler | 569 |
34 Extensions anwenden undkonfigurieren | 572 |
R34.1 Entfernen des Standard-CSS einer Extension | 572 |
R34.2 tt_news einrichten | 573 |
R34.3 tt_news-Liste unterschiedlich formatieren | 580 |
R34.4 tt_news-Autor und E-Mail-Anschrift voreinstellen | 582 |
R34.5 Neuer News-Eintrag löscht Cache automatisch | 583 |
R34.6 Einrichten von ve_guestbook | 584 |
R34.7 Einen Blog mit timtab einrichten | 587 |
R34.8 timtab erweitern | 592 |
R34.9 RealURL (realurl) einrichten | 601 |
R34.10 Einen Onlineshop mit commerce aufbauen | 606 |
35 Extensions erstellen undprogrammieren | 628 |
R35.1 Extension Key festlegen | 629 |
R35.2 Extension Key registrieren | 630 |
R35.3 Anlegen einer Basis-Extension | 632 |
R35.4 Plugins und Module anlegen | 637 |
R35.5 Anlegen von eigenen Datenbanktabellen | 641 |
R35.6 Statischen TypoScript-Code zu Ihrer Extension hinzufügen | 647 |
R35.7 Datenbank-Relationen | 649 |
R35.8 Das TCA (Table Configuration Array) verstehen | 654 |
R35.9 Anzeige eines Frontend-Plugins realisieren | 657 |
R35.10 Links in Frontend-Plugins generieren | 664 |
R35.11 Mehrsprachigkeit bei der Anzeige | 665 |
R35.12 Eigene Anzeige-Optionen erstellen | 668 |
R35.13 Eigene HTML-Templates verwenden | 671 |
R35.14 Flexform-Felder verwenden und konfigurieren | 674 |
R35.15 AJAX in Backend-Formularen | 691 |
R35.16 Eigene Tags realisieren | 693 |
36 Suchmaschinen-Optimierung | 700 |
R36.1 SEO-Basiskonzepte und -konfiguration | 700 |
R36.2 Meta-Daten zufügen | 702 |
R36.3 Fehlercodes richtig konfigurieren | 707 |
R36.4 Seitentitel optimieren | 708 |
R36.5 Zusätzliche Inhalte mit Suchwörtern in Klick-Layer einbinden | 710 |
R36.6 Optimierte Pfade und Dateinamen mit StaticDocuments bzw. RealURL | 712 |
R36.7 Bilder suchmaschinenfreundlich einbinden | 714 |
R36.8 Extension Google Sitemap einrichten | 716 |
R36.9 Extension Tooltip für Keywords einrichten | 719 |
R36.10 Kontrolle über die Optimierung mit der Extension AWStats | 721 |
R36.11 Google Analytics in TYPO3 einbauen | 725 |
R36.12 Google von bestimmten Inhalten aussperren | 726 |
37 TYPO3-Sicherheit | 728 |
R37.1 Install Tool absichern | 728 |
R37.2 Backend-Zugang über SSL | 729 |
R37.3 Session an IP-Adresse binden | 730 |
R37.4 PHP-Fehlermeldungen abschalten | 731 |
R37.5 Das Backend zusätzlich per .htaccess absichern | 732 |
R37.6 Angriffsziel Admin | 734 |
R37.7 Zugriff auf das Filesystem | 734 |
R37.8 Gefährliche Inhaltselemente einschränken | 735 |
R37.9 Sicherheit der Webserver-Umgebung | 735 |
R37.10 Der Umgang mit Sicherheitslücken | 736 |
R37.11 Diff und Patch | 737 |
R37.12 Nachvollziehbarkeit durch Log-Dateien | 737 |
R37.13 Sichere PHP-Skripte schreiben | 738 |
38 TYPO3-Tuning | 740 |
R38.1 Grundlagen und Methode | 740 |
R38.2 Apache-Tuning | 745 |
R38.3 PHP-Tuning | 747 |
R38.4 MySQL-Tuning | 753 |
R38.5 Aufbau eines Proxy-Servers mittels mod_proxy | 758 |
R38.6 TYPO3-Tuning + Caching | 760 |
R38.7 TYPO3-Extension fl_staticfilecache | 767 |
39 TYPO3-Backstage | 772 |
R39.1 Das TYPO3-Framework | 772 |
R39.2 TYPO3 Frontend-Ablaufdiagramm (Flow) | 773 |
R39.3 Die TYPO3-Verzeichnisstruktur verstehen | 780 |
R39.4 t3x-Datenstruktur und -Viewer | 786 |
R39.5 TYPO3 Coding Guidelines (CGL) | 790 |
R39.6 Bugs melden und neue Features vorschlagen | 810 |
R39.7 TYPO3 FORGE | 816 |
R39.8 Die Struktur der TYPO3-Community | 819 |
R39.9 TYPO3-Zertifizierung | 835 |
40 Ausblick auf TYPO3 5.0 – FLOW3 | 838 |
R40.1 Ausblick auf TYPO3 5.0 – FLOW3 | 838 |
Register | 852 |