TYP03 4.0 Das Handbuch für Entwickler

12
Kai Laborenz, Andrea Ertel, Thomas Wendt, Prakash Dussoye, Elmar Hinz TYP03 4.0 Das Handbuch für Entwickler Galileo Press

Transcript of TYP03 4.0 Das Handbuch für Entwickler

Page 1: TYP03 4.0 Das Handbuch für Entwickler

Kai Laborenz, Andrea Ertel, Thomas Wendt,

Prakash Dussoye, Elmar Hinz

TYP03 4.0

Das Handbuch für Entwickler

Galileo Press

Page 2: TYP03 4.0 Das Handbuch für Entwickler

Inhalt

1.1 Für wen wurde dieses Buch geschrieben? 17

1.2 Was befindet sich in diesem Buch? 18

1.3 Was enthält die CD-ROM und die Referenzkarte? 18

1.4 Die Website zum Buch 19

1.5 Danke! 19

TEIL I: GRUNDLAGEN

2.1 Grundlegendes 23

2.1.1 Trennung von Inhalten und Darstellung 23

2.1.2 Erweiterbarkeit 24

2.1.3 Mehrsprachigkeit 24

2.1.4 Weitere Funktionen 25

2.1.5 Open Source 26

2.1.6 Entstehung von TYP03 26

2.2 DieTYP03-Community 27

2.3 Entwicklung von TYP03 27

2.3.1 Neu in Version 4.0 27

2.3.2 Pläne für die Zukunft 30

3.1 Systemaufbau 31

3.1.1 Der Systemkern von TYP03 32

3.1.2 Erweiterungen (Extensions) 33

3.2 Datenbank 34

3.2.1 MySQL 34

3.2.2 Verwendung anderer Datenbanken mit TYP03 34

3.2.3 Wichtige Tabellen in der TYP03-Datenbank 35

3.3 Dateinamen und Verzeichnisse 36

3.3.1 Verzeichnisse einer Standard-Installation 36

3.3.2 Wichtige Dateien 38

Page 3: TYP03 4.0 Das Handbuch für Entwickler

Inhalt

3.4 Performance 3 g

3.4.1 Praktische Hinweise 39

3.4.2 Performance-Steigerungen 39

4.1 Dokumentat ionen 4 5

4.1.1 Dokumentat ionen für Redakteure 46

4.1.2 Quel lcode-Dokumentat ion 46

4.2 Websites, Foren und Mail ingl isten 4 7

4.2.1 Mail ingl isten und Newsgroups 4g

4.2.2 TYP03-Websi tes Z I . I I 48

4.2.3 T3N-dasTYP03 -Newsmagaz in 4 8

TEIL I I ; T Y P 0 3 V E R W E N D E N

5.1 Voraussetzungen zum Betrieb von TYP03 53

5.1.1 Hardware und Betriebssystem 53

5.1.2 Software 53

5.2 Installation von TYP03 54

5.2.1 Basic Configuration 5 7

5.2.2 Database Analyzer QQ

5.2.3 Update-Wizard g 2

5.2.4 Image Processing 6 3

5.2.5 Al l Configuration g 4

5.3 Installation mehrerer Sites auf einem TYP03-System 79

5.3.1 Ein Kern - viele TYP03 7 g

5.3.2 Ein TYP03 - v i e l e Websites 8 0

5.3.3 Erstellen mult ipler Sites mit Freesite 81

5.4 Anbindung an bestehende IT-Strukturen (LDAP) 83

5.4.1 Kurzbeschreibung LDAP 83

5.4.2 Installation der LDAP-Extension g 3

5.4.3 Konfiguration der LDAP-Extension 84

5.4.4 Kontaktaufnahme zum LDAP-Server 87

5.4.5 Fehlersuche 8 8

5.5 Konfiguration von TYP03 g 9

5.5.1 Wo werden welche Bereiche von TYP03 konfiguriert? .... 89

5.5.2 Allgemeine Datensatzverwaltung im »Root-Record« 90

S

Page 4: TYP03 4.0 Das Handbuch für Entwickler

Inhalt

5.6 Backup und Migration von TYP03-Sit.es 94

5.6.1 Import/Export von t3d-Dateien 94

5.6.2 Sicherung von TYP03-lnstallationen 98

6.1 Das AdminPanel 101

6.1.1 Kategorien des AdminPanels 102

6.1.2 Eingabe 102

6.1.3 Vorschau 103

6.1.4 Cache 103

6.1.5 Veröffentlichen 104

6.1.6 TypoScript 104

6.1.7 Info 105

6.1.8 Konfiguration des AdminPanels 105

6.2 Anpassen des ßackends mit TSconfig 106

6.2.1 TSconfig 106

6.2.2 TypoScript-Wizard 107

6.2.3 Page TSconfig 108

6.2.4 User TSconfig 112

6.2.5 Beispiele zur Backend-Anpassung 114

6.3 Rieh Text Editor 125

6.3.1 System-Extension RTE 125

6.3.2 htmlArea RTE im Extension-Manager konfigurieren 126

6.3.3 Standardkonfigurationen für htmlArea RTE 130

6.3.4 Eine eigene Konfiguration für htmlArea RTE 141

6.3.5 RTE-Transformationen 144

6.4 Alternative Editoren für das Backend 147

6.4.1 Konfiguration der Benutzeroberfläche des alten

Standard-RTE (bis TYP03-Version 3.8) 148

6.4.2 Die Toolbar des Rieh Text Editors 148

6.4.3 pageTSconfig.txt 149

6.4.4 Absatzarten und Zeichenarten begrenzen 150

6.4.5 Klassen definieren und als Absatzart zuweisen 151

6.4.6 Ausgabekonfiguration 154

6.4.7 FCKeditor 157

6.4.8 TinyMCE 158

6.5 Eine Beispielkonfiguration für den htmlArea unter

TYP03 < 4.0 158

7

Page 5: TYP03 4.0 Das Handbuch für Entwickler

Inhalt

7.1 Vorgehensweise 163

7.1.1 Ziele und Zielgruppen festlegen 164

7.1.2 Inhalte planen 164

7.1.3 Funktionen festlegen 165

7.1.4 Dokumententypen festlegen 165

7.1.5 Sitemap/Struktur planen 165

7.1.6 Designvorlagen vorbereiten 166

7.1.7 Extensions auswählen 168

7.1.8 Template-Struktur planen 169

7.1.9 Designvorlageneinbinden 170

7.1.10 Struktur anlegen 171

7.1.11 Benutzergruppen/Benutzer 172

7.1.12 Inhalte eingeben 172

7.2 Designvorlagen (HTML-Templates) 172

7.2.1 The old way: Templates per Hand vorbereiten 172

7.2.2 The modern way: die Extension Template-Autoparser 178

7.2.3 The futuristic way: die Extension TemplaVoila 183

7.3 Benutzerverwaltung 205

7.3.1 Frontend-Benutzerverwaltung 205

7.3.2 Geschützten Bereich anlegen 209

7.3.3 Login einbauen und anpassen 209

7.3.4 Login-Layoutanpassung 210

7.3.5 Backend-Benutzer 215

7.3.6 Rechte und Rollen definieren 216

7.3.7 Benutzergruppen anlegen 217

7.3.8 Benutzergruppen - Beispiele 225

7.3.9 Einzelne Backend-Benutzer anlegen 230

7.3.10 Backend-Benutzer-Beispiel 233

7.3.11 Seitenzugriff 234

7.3.12 Benutzerrechte vergleichen 239 7.3.13 Was sind Workflows? 240

7.3.14 Einfacher Workflow ohne Extensions 241 7.3.15 Das Modul Benutzer>Aufgaben 241 7.3.16 Aktionen 241

7.3.17 Extension Native Workflow System 242 7.4 Workspaces 247

7.4.1 Was sind Workspaces? 247 7.4.2 Versionierung 247

Page 6: TYP03 4.0 Das Handbuch für Entwickler

Inhalt

7.4.3 Arten von Workspaces 250

7.4.4 Anlegen von Workspaces 252

7.4.5 Arbeiten mit Workspaces 254

7.4.6 Modu l Benutzer>Workpace 255

8.1 Was ist TypoScript? 261

8.1.1 TypoScript im engeren und im weiteren Sinne 261

8.1.2 Grundlegende Konstrukte 262

8.1.3 Arbeiten mit der TypoScript-Referenz (TSref) 265

8.1.4 Begriffsdefinitionen und Syntax 269

8.1.5 Operatoren in TypoScript 272

8.1.6 TypoScript-Verschachteiungen - mehrdimensio­

nale PHP-Arrays 276

8.2 TypoScript-Elemente 278

8.2.1 Datentypen 278

8.2.2 Funktionen 280

8.2.3 Condit ions 281

8.2.4 Constants 285

8.2.5 cObjects 286

8.2.6 cObjects - veraltet 302

8.2.7 Content-Objekte kopieren und referenzieren 305

8.2.8 Top-Levei-Objekte 306

8.3 TypoScript-Templates 310

8.3.1 Templateserstel len 310

8.3.2 TypoScript-Setup 311

8.3.3 TypoScript-Constants 313

8.3.4 Kaskadierung von Templates 314

8.3.5 Standard-Templates (static templates) 316

8.3.6 Basis-Templates-eigene Standard-Templates 319

8.3.7 Templates ab der nächsten Ebene (Templates on

next Level) 320

8.3.8 Root, Rootline und Rootline-Arrays 320

8.4 Die Template Tools 321

8.4.1 Template Tool: In fo /Modi fy 321

8.4.2 Template Tool : Template Analyzer 323

8.4.3 Template Tool: TypoScript Object Browser 324

8.4.4 Template Tool: Constant Editor 325

8.4.5 Erstellen eigener Eingabemasken im Constant Editor 326

8.4.6 Template Tool: CSS Styler 332

Page 7: TYP03 4.0 Das Handbuch für Entwickler

Inhalt

8.4.7 Clear FE cache - admin functions 333

8.4.8 setup.txtundconstants.txt 333 8.4.9 TSconfig ' 3 3 3

8.5 Der Rendering-Prozess 3 3 4

8.6 TypoScript-Schnipsel/Praxisbeispiele 33g

8.6.1 Allgemeine Seitenkonfiguration 33g 8.6.2 TypoScript-Menüs 343

8.6.3 Navigation aus Bildern der Mediafelder 350 8.6.4 Ändern des Standard-<body>-Tag 353 8.6.5 Auswählbare Wraps um den gesamten Inhalt der

Spalte NORMAL 3 5 3

8.6.6 Konfiguration der Standard-Überschrift (stdheader) 355 8.6.7 Überschriftentyp in Abhängigkeit von der

verwendeten Inhaltsspalte 355

8.6.8 Keinen StdHeader für das Überschriften-Objekt verwenden 357

8.6.9 Sitemap/Menü 3 g g

8.6.10 Login-Formular per TypoScript 35g

8.6.11 Ausblenden der erweiterten Suche der Extension »indexed search« 3 6 1

8.6.12 Anzahl der Bilder des Mediafeldes erhöhen 362 8.6.13 Mehrsprachigkeit 3g2

8.6.14 Immer das aktuelle Jahr im Footer anzeigen 365

9.1 Allgemeine Definition von Extensions 35g 9.2 Einteilung von Extensions 3 6 8

9.2.1 Einteilung nach Bedeutung 36g

9.2.2 Einteilung nach Funktion 369

9.3 Verwaltung von Extensions 3 7 1

9.3.1 Extension Manager 372

9.3.2 TYP03-Online-Repository (TER2) 3g2 9.4 Der Extension Kickstarter Wizard 3gg 9.5 Anwendungsbeispiele von Extensions 389

9.5.1 Extension: News (tt^news) 339

9.5.2 Extension: News - RSS 4-I3

9.5.3 Extension: TimTab Weblog (timtab) 417

9.5.4 Extension RealURL (realurl) 4 2 4

9.5.5 Komplette Beispielkonfiguration 432

^0

Page 8: TYP03 4.0 Das Handbuch für Entwickler

Inhalt

10.1 Unicode (UTF-8) 435

10.1.1 Was ist Unicode? 435

10.1.2 Technische Zusammenfassung 437

10.2 TYP03 als UTF-8 einrichten 438

10.2.1 Überblick 438

10.2.2 Sprachdateien, TypoScript und UTF-8 439

10.2.3 Grundlagen zur Zeit 440

10.2.4 Die Locales 441

10.3 TypoScript-Einstellungen für einsprachige Seiten 442

10.4 TypoScript-Einstellungen für mehrsprachige Seiten 445

10.4.1 Ein Seitenbaum für jede Sprache (AAulti-Tree-Ansatz) 446

10.4.2 Ein Seitenbaum für alle Sprachen (Single-Tree-Ansatz) .... 446

11.1 Warum Sie barrierefrei entwickeln sollten 459

11.2 Wie sieht eine barrierefreie Website aus? 460

11.2.1 Inhalt und Präsentation trennen 460

11.2.2 Logische Strukturen schaffen 460

11.2.3 Nicht für bestimmte Geräte arbeiten 460

11.2.4 Abwärtskompat ible Seiten erstellen 461

11.2.5 Alternativen bereitstellen 461

11.2.6 Standards beachten 461

11.3 Standardkonforme Seiten mit TYP03 erstellen 462

11.3.1 XHTML-Cleaning 462

11.3.2 Sprungmarken ä la XHTML 463

11.3.3 HTAAL-Code opt imieren m i tT idy 464

11.3.4 Die Extension »Page Validator« 465

11.4 Barrierefreie Websites mit TYP03 466

11.4.1 Vorhandene Hilfsmittel 467

11.5 TYP03-Inhaltselemente barrierefrei gestalten 471

11.5.1 Die Grundlage-CSS Styled Content 471

11.5.2 Überschrift und Text 474

11.5.3 Text-Bild und Bilder 477

11.5.4 Aufzählung (Punktliste) 478

11.5.5 Tabelle 478

11.5.6 Dateiliste 483

11.5.7 Mul t imed ia 485

11.5.8 Si temap/Menü 486

Page 9: TYP03 4.0 Das Handbuch für Entwickler

(nha)t

11.5.9 HTML 4 8 7

11.5.10 Mari formular 4 8 7

11.5.11 Suchformular 4gg

11.5.12 Anmeldeformular 490

11.5.13 Plugins """ 4 9 0

11.6 Barrierefreie Menüs mit TYP03 49-I

11.6.1 Textmenüs 4g-|

11.6.2 Grafische Menüs 493

11.6.3 Grafische Textmenüs 49g

11.7 Ein barrierefreier RTE 4 9 7

11.7.1 Akronyme und Abkürzungen 498

11.7.2 Kennzeichnung von Links 49g

11.8 Accessible Content 5 Q Q

11.8.1 Exkurs: Render ingvon Content-Elementen 501

11.8.2 Neues Rendering erstellen 502

11.8.3 DieXCLASS ' ' " 5 0 3

11.8.4 Tabellen ' ' " ' ' 5 0 4

11.8.5 Formulare 504

11.8.6 Probleme mit Plugins (bis Version 0.2) 506

11.8.7 Weitere Entwicklung von »Accessible Content« 508

11.9 Empfehlung zur Wahl der Extensions für Barrierefreiheit 508

TEIL III: TYP03 ERWEITERN

12.1 Grundlagen 5 - . 3

12.1.1 Namenskonventionen 513

12.1.2 Dateistruktur einer Extension 514

12.1.3 Der Extension-Manager 51g

12.1.4 Die Datei ext_emconf.php 517

12.1.5 Die Datei ex t joca lconf .php 519

12.1.6 Die Datei ext_tables.php 520

12.2 Drei Extensions als Beispiel 5 2 Q

12.2.1 Die Extension »Text w /summary« 520

12.2.2 Die Extension »Function Reference« 522

12.2.3 Die Extension »Akronymmanager« 524

12.3 Globale Variablen und Datenbankfunkt ionen 525 12.3.1 Variablen " ' 5 2 5

12.3.2 Datenbankzugriffe mit dem DBAL 527

12.3.3 Datenbanktabellen co<

12

Page 10: TYP03 4.0 Das Handbuch für Entwickler

Inhalt

12.4 Backend-Programmierung 533

12.4.1 Eingabemasken 533

12.4.2 Das Table Configuration Array $TCA 534

12.4.3 $TCA-Beispiel: Extension »Function Reference« 537

12.4.4 Context Sensitive Help (CSH) 545

12.4.5 TCE und TCEforms 549

12.4.6 Anlegen und Bearbeiten von Inhaltstypen 552

12.4.7 Der Inhaltstyp »Plugin einfügen« 555

12.5 Backend-Module 560

12.5.1 Anlegen eines Moduls 560

12.5.2 Ausgabeformatierungen in Modu len 563

12.5.3 Einfügen eines Submoduls in das Menü 567

12.5.4 Beispiel für Modu le - der Akronymmanager 569

12.5.5 Der Navigationsbereich 574

12.5.6 Rechte von Backend-Usern abfragen 575

12.6 Frontend-Programmierung 577

12.6.1 Das Frontend-Rendering 577

12.6.2 Objekte im STSFE 579

12.6.3 Standard-Rendering-Funktionen 579

12.6.4 Ausgabe eigener Inhalte mittels USER, USERJNT,

PHP_SCRIPTr PHP_SCRIPT_INT oder

PHP_SCRIPT_EXT 581

12.6.5 Neue Rendering-Funktionen anlegen 582

12.6.6 stdWrap in Rendering-Funktionen 584

12.6.7 Frontend-User und Sessions 585

12.6.8 Eingabeformulare 586

12.6.9 Beispiel für Eingabeformulare - Pinboard für die

»Function Reference« 588

12.6.10 HTML-Vorlagen für Templates 593

12.6.11 CSS und JavaScript 596

12.7 P l u g i n s - d i e Klasse tslib_pibase 597

12.7.1 tslib_pibase - L ink-Methoden 597

12.7.2 tslib_pibase - Methoden für das Aufl isten von

Datensätzen 600

12.7.3 ts l ib_p ibase- Methoden für Stylesheet und CSS 603

12.7.4 ts!ib_pibase - M e t h o d e n für das Frontend-Edit ing 604

12.7.5 tslib pibase - Methoden für Mehrsprachigkeit

und Lokalisation 605

12.7.6 tslib pibase — Methoden für Datenbankabfragen 606

12.7.7 tslib_pibase - M e t h o d e n für Fiexforms 607

13

Page 11: TYP03 4.0 Das Handbuch für Entwickler

Inhalt

12.8 Flexforms

12.8.1 Hello World mit Flexforms 6 0 9

12.8.2 Flexform einbinden 6 1 3

12.8.3 Flexforms gestalten 6 1 6

12.8.4 Flexform - Grundstruktur 6 1 6

12.8.5 Flexform-Input-Felder ' 6 1 7

12.8.6 Fiexform dynamisch 6 3 1

12.8.7 Auf Flexform-Daten zugreifen 6 3 1

12.9 Mehrsprachigkeit

12.9.1 Eigene Locallang-Dateien für einzelne Sprachen 636

12.9.2 Extensions für die Arbeit mit Locallang-Dateien 637 12.10 Ajax mit TYP03

12.10.1 Installation der Tutorial-Extension ... 638 12.10.2 Tutorial „ „

• D ^ y

12.11 Weitere Themen der Extension-Entwicklung 6 4 6

12.11.1 TypoScript in Extensions 6 4 7

12.11.2 Static-Templates hinzufügen 6 4 7

12.11.3 TypoScript einfügen 6 4 g

12.11.4 Klassen erweitern - XCLASS 6 4 8

12.11.5 Hooks '"' 6 5 0

12.11.6 Services

12.11.7 Sicher programmieren 6 5 5

12.11.8 Der Extension Kickstarter 6 5 g

12.11.9 Der Development Evaluator 6 6 0

12.11.10 Dokumentation 6 6 ?

12.12 Ausblick: Moderne Extension-Programmierung in Model-View-Controller-Architektur r-vcL

665

12.12.1 Idee und Konzept 6 g 5

12.12.2 Die Bibliotheken .''.' 6 6 8

12.12.3 Beispielanwendung Articles 6 8 3

12.12.4 Ausblick , „ 699

12.12.5 Ein Anwendungskonzept 7 0 0

CD-ROM 703

A.1 Listines ... . . _ . 6 703 A.2 Dokumentationen

A.2.1 Tutorials

A.2.2 Installation

A.2.3 Core Documentation 7 0 3

14

Page 12: TYP03 4.0 Das Handbuch für Entwickler

Inhalt

A.2.4 References 704

A.2.5 Extension Manuals 704 A.3 Video-Tutorials 704

A.4 TYP03 4.0 zum Installieren 705

A.5 Extensions 705 A.6 TYP03 4.0 Doxygen-Dokumentation 705

A.7 Static Templates der CSS Styled Content 706

A.8 Software 706 A.9 Beispielwebsite_Dateien 706

A.10 Infos zur Barrierefreiheit 706 B Zusätzliche Informationen 707

B.1 Caching-FAQ 707

B.2 CSS Styled Content im Detail 713

B.2.1 CONSTANTS: EXT:css_styled_content/static/ 713 B.2.2 SETUP: EXT:css_styled_content/static/ 716

B.3 Ein reines CSS-Menü (für Kapitel 11) 783

C Glossar 789

ndex 795