Inhalt Einführung in TypoScript... 2 TypoScript kennen lernen... 16 Tools und Editoren... 42



Ähnliche Dokumente
TYPO3 und TypoScript

TYPO3 und TypoScript

TYPO 3 und Typoscript

Daniel Koch. TYP03 und TypoScript. Webseiten programmieren Templates erstellen Extensions entwickeln HANSER

1. Zusammenfassung der letzten Vorlesung

1. Zusammenfassung der letzten Vorlesung

anschauen live mitmachen verstejen

Vorwort TYPO3 Installation und Leistungsumfang 13

5 Zweisprachige Seiten

TYPO3-Schulung für Redakteure Stand:

Migration von statischen HTML Seiten

Content Management. mit TYPO3. Galileo Computing

Einrichten eines News-Systems in Typo3

TYPO3 und TypoScript

Kurzeinführung Excel2App. Version 1.0.0

ID VisitControl. Dokumentation Administration Equitania Software GmbH cmc Gruppe Seite 1

Newsletter mit TYPO3. TYPO3-Consultant.de Matthias Stübner

Anleitung zum LPI ATP Portal

Suchmaschinenoptimierung. für Typo 3

Anleitung für Autoren auf sv-bofsheim.de

Content Management System (CMS) Manual

Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten

Contao Schulung. Martin Kozianka Donnerstag,

1.5. Passwort-geschützte Seiten

Aufklappelemente anlegen

Zahlen auf einen Blick

Zusammenfassung der letzten Vorlesungen. - Ergänzungen zu Menüs /Sprachumschaltung. - indexed search

CC Modul Leadpark. 1. Setup 1.1 Providerdaten 1.2 Einstellungen 1.3 Qualifizierungsstati 1.4 Reklamationsstati 1.5 Design 1.

Webseite innerhalb der TYPO3-Oberfläche anzeigen. Datei Verzeichnisbaum und Dateien anzeigen und bearbeiten

Webseite innerhalb der TYPO3-Oberfläche anzeigen. Newsletter-Adressen verwalten. Datei Verzeichnisbaum und Dateien anzeigen und bearbeiten

Wonneberger Homepage

Satzhilfen Publisher Seite Einrichten

Einrichten einer mehrsprachigen Webseite mit Joomla (3.3.6)

TYPO3 und TypoScript

5. Übung: PHP-Grundlagen

Kurzanleitung fu r Clubbeauftragte zur Pflege der Mitgliederdaten im Mitgliederbereich

Bedienung des Web-Portales der Sportbergbetriebe

3. Die tägliche -Flut effizient verwalten

Einrichten der BASE Projektbasis

4 Aufzählungen und Listen erstellen

Da die Bedienung des Editors viele Möglichkeiten aufweist, aber auch etwas Übung voraussetzt, haben wir ihm ein eigenes Unterkapitel gewidmet.

ArenaSchweiz AG. CMS Concrete5.7 Erste Schritte

Anlegen von Serviceboxen

Anleitung zum Anlegen und Bearbeiten einer News in TYPO3 für

Handbuch für Redakteure

CompuMaus-Brühl-Computerschulung Anleitung CMS-Joomla Version 2.5

Microsoft Access 2010 Navigationsformular (Musterlösung)

Der neue persönliche Bereich/die CommSy-Leiste

Fsr Amazon Konfiguration

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

User Manual Data 24. Login und Layout

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Erstellen von x-y-diagrammen in OpenOffice.calc

1. Anmeldung in das Content Management System WEBMIN CMS

ERFORDELICHEN EXT INSTALLIEREN DIE LZ_GALLERY IN UNSERE TYPO3-UMGEBUNG INTEGRIEREN. Bildergalerien einbinden mit EXT: lz_gallery

Umstellung News-System auf cms.sn.schule.de

Anleitung Typo3-Extension - Raumbuchungssystem

MdtTax Programm. Programm Dokumentation. Datenbank Schnittstelle. Das Hauptmenü. Die Bedienung des Programms geht über das Hauptmenü.

Bedienungsanleitung für Mitglieder von Oberstdorf Aktiv e.v. zur Verwaltung Ihres Benutzeraccounts auf

teamsync Kurzanleitung

Word Aufbaukurs kompakt. Dr. Susanne Weber 1. Ausgabe, Oktober 2013 K-WW2013-AK

Handbuch für Redakteure

Kapitel 16 Seite 1. Mit Wikispaces eine Homepage erstellen. Die eigene Homepage mit Wikispaces.

Virtuemart-Template installieren? So geht es! (Virtuemart 2.0.x)

Textgestaltung mit dem Editor TinyMCE Schritt für Schritt

2.1 Grundlagen: Anmelden am TYPO3-Backend

Modul Bildergalerie Informationen zum Bearbeiten des CMS-Systems für den SV Oberteisendorf

Einführungskurs MOODLE Themen:

LuVHS. Version: ARONET GmbH Alle Rechte vorbehalten.

5 DATEN Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

Wo möchten Sie die MIZ-Dokumente (aufbereitete Medikamentenlisten) einsehen?

Erstellen eines Wordpress-Blogs

In dem unterem Feld können Sie Ihre eintragen, wenn sie im System hinterlegt wurde. Dann wird Ihnen Ihr Passwort noch einmal zugeschickt.

Affiliate-Marketing. Kapitel 6. Copyright by Worldsoft AG, 2014, Pfäffikon SZ, Switzerland. Version: Seite 1

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

ECDL Europäischer Computer Führerschein. Jan Götzelmann. 1. Ausgabe, Juni 2014 ISBN

HTML Programmierung. Aufgaben

1. Trennlinie mit hr Eine dünne Trennlinie wie die obige in der Regio-Farbe (gelb) kann man recht einfach erstellen. Dafür reicht der Befehl

Eine eigene Seite auf Facebook-Fanseiten einbinden und mit einem Tab verbinden.

Volker Krell. Patrick Lobacher. 100 Tipps. für TYP03 CMS. Typische Fehler erkennen und vermeiden. 2. Auflage. Source Press. Open

Die TYPO3-Extension Publikationen

TYPO3-Blockseminar. am 23. und 30. September Sibylle Nägle, Tanja Bode. TYPO3 Blockseminar, Seite 1

Serienbriefe schreiben mit Ratio - Adressen (Microsoft Word Versionen 8.0 und 9.0)

PHP - Projekt Personalverwaltung. Erstellt von James Schüpbach

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Erstellen eigener HTML Seiten auf ewon

Guideline. Facebook Posting. mit advertzoom Version 2.3

Schrittweise Anleitung zur Erstellung einer Angebotseite 1. In Ihrem Dashboard klicken Sie auf Neu anlegen, um eine neue Seite zu erstellen.

CSS-Grundlagen. Etwas über Browser. Kapitel. Die Vorbereitung

Der Jazz Veranstaltungskalender für Deutschland, Österreich und die Schweiz

Installation des Templates Multiflex5

Lehrer: Einschreibemethoden

Stammdatenanlage über den Einrichtungsassistenten

Dreamweaver 8 Einführung

Wie kann ich in der Backstage-Ansicht eigene Dokumentationen einbinden?

Anlegen einer neuen Newsmeldung

Nicht kopieren. Der neue Report von: Stefan Ploberger. 1. Ausgabe 2003

Erstellen eines HTML-Templates mit externer CSS-Datei

Wie Sie mit Mastern arbeiten

Transkript:

Inhalt 1 Einführung in TypoScript... 2 1.1 Grundlegende Vorarbeiten zum Buch...2 1.1.1 Deutsche Benutzeroberfläche einrichten...2 1.1.2 Dummy-Paket...4 1.1.3 Für manche Fälle: Eine Seitenstruktur erstellen...4 1.2 Deklarative Programmierung oder was ist TypoScript?...6 1.2.1 So leistungsfähig ist TypoScript...7 1.2.2 Das ist TypoScript wirklich...8 1.2.3 TypoScript für die Backend-Gestaltung...9 1.2.4 TypoScript und PHP...10 1.3 TypoScript-Templates...12 1.4 TypoScript-Funktionen...14 2 TypoScript kennen lernen... 16 2.1 Hallo, Welt!...16 2.2 Syntax...18 2.2.1 Objekte und Objekteigenschaften...19 2.2.2 Die Einteilung der Objektgruppen...26 2.2.3 Konstanten...26 2.2.4 Operatoren...27 2.2.5 Datentypen...30 2.2.6 Das Wrap-Prinzip...32 2.2.7 Kommentare...33 2.2.8 Bedingungen...34 2.2.9 Funktionen...36 3 Tools und Editoren... 42 3.1 Der Editor Ihrer Wahl...42 3.1.1 Syntaxhighlighting im UltraEdit...43 3.2 Info/Modify...43 3.2.1 Elemente...44 3.3 TypoScript Object Browser...46

Inhalt VII 3.4 Template Analyzer... 48 3.5 Die TypoScript Eigenschaften-Anzeige... 49 3.6 Admin-Panel... 50 3.6.1 Kategorien... 51 3.7 Constant Editor... 54 3.7.1 Konstanten bereitstellen... 54 3.7.2 Der Praxisbeweis Überschriftenfarben über Konstanten definieren... 55 3.7.3 Kategorien... 57 3.7.4 Feldtypen... 59 3.7.5 Kategorien beschreiben... 60 3.8 Ein Java-Editor für TypoScript... 62 3.9 TypoScript in HomeSite... 63 3.10 HTMLArea RTE... 64 3.11 Den Rich-Text-Editor (RTE) anpassen... 71 3.11.1 Die Buttonleiste anpassen... 72 3.11.2 Eigene Klassen definieren... 74 3.11.3 Absatzformate... 74 3.11.4 Farben definieren... 76 3.11.5 Benutzerdefinierte Menüs... 76 3.11.6 Hintergrundfarbe anpassen... 77 3.11.7 Die Ausgabe gezielt steuern... 78 4 Designvorlagen... 82 4.1 Designvorlagen vs. Templates... 82 4.2 Das Prinzip von Designvorlagen... 82 4.2.1 Marker... 83 4.2.2 Subparts... 83 4.3 Der doppelte Head-Bereich... 85 5 Templates... 90 5.1 Das Konzept von Templates... 90 5.1.1 Hallo, Welt!... 90 5.1.2 Hallo, Welt! Zum Zweiten... 90 5.1.3 Templates vererben... 92 5.2 Template-Bestandteile...92 5.3 Objekte und Eigenschaften von Websites... 96 5.3.1 Seiteneigenschaften mit TypoScript definieren... 96 5.4 Designvorlagen einbinden... 97 5.4.1 Die Designvorlage ansprechen... 97 5.4.2 Platzhalter ansprechen... 99 5.5 Das Template Auto-Parser... 101 5.5.1 Den Parser installieren... 102 5.6 Standard-Templates... 106 5.7 Reine TypoScript-Templates... 110 5.8 TemplaVoila... 111 5.8.1 Systemvoraussetzungen... 112

VIII Inhalt 5.8.2 TemplaVoila vorbereiten...112 5.8.3 Die Datenstruktur anlegen...114 5.8.4 Inhalte eingeben...120 5.8.5 Fazit...122 5.8.6 Flexforms...122 6 Grafikbearbeitung... 124 6.1 Vorarbeiten für dieses Kapitel...124 6.2 Grafiken einbinden...126 6.3 Grafiken anpassen...126 6.3.1 Die Grafikgröße ändern...127 6.4 Dynamisch Grafiken erzeugen der GIFBUILDER...127 6.4.1 GIFBUILDER...128 6.4.2 Ebenen...130 6.4.3 6.4.4 Ebenen positionieren...133 Boxen zeichnen...133 6.4.5 Grafischer Text...134 6.4.6 Anti-Aliasing mit -nicetext...137 6.5 Weiterführende Möglichkeiten...138 6.5.1 Schatten...138 6.5.2 Relief...139 6.5.3 Den Seitentitel als Grafik ausgeben...140 6.5.4 Grafiken aus der Datenbank auslesen...141 6.6 Caching...142 6.6.1 Was gecacht wird...142 6.6.2 Den Cache leeren...143 7 Menüs... 146 7.1 Diese Menüarten gibt es...146 7.2 Hallo, Menüs!...147 7.3 Eigenschaften von Menüs festlegen...148 7.3.1 Zustände bestimmen...149 7.3.2 Den Startpunkt des Menüs festlegen...149 7.3.3 Menüarten bestimmen...150 7.3.4 Das Einstiegslevel bestimmen...152 7.3.5 Den ersten Menüeintrag festlegen...152 7.3.6 Anzahl von Menüeinträgen bestimmen...152 7.3.7 Menüpunkte ausschließen...153 7.4 Textmenüs...153 7.4.1 Eigenschaften von Textmenüs...153 7.4.2 Untermenüs festlegen...154 7.4.3 Stylesheets verwenden...155 7.4.4 Abstände zwischen den Menüpunkten...156 7.4.5 optionsplit Senkrechte Striche einfügen...156 7.4.6 Menüs und Tabellen...158 7.4.7 Textmenüs und JavaScript...159

Inhalt IX 7.5 JavaScript-Menüs... 159 7.5.1 Seiten aus dem Menü aufrufen... 160 7.6 Grafische Menüs... 161 7.6.1 Menüpunkte erzeugen... 161 7.6.2 Untermenüpunkte integrieren... 163 7.6.3 Linien erzeugen... 163 7.6.4 Die Menübreite automatisch anpassen... 165 7.6.5 Hintergrundgrafiken einfügen... 166 7.6.6 Eine Alternative zum GMENU... 167 7.7 GMENU_FOLDOUT... 168 7.8 Layer-Menüs... 170 7.8.1 Das Menü formatieren... 174 7.8.2 Textmenüs in Layer-Form... 176 7.9 ImageMaps... 177 7.10 Spezielle Menüs... 178 7.10.1 Zur nächsten Seite (browse)... 178 7.10.2 Sie befinden sich hier (rootline)... 179 7.10.3 Schlüsselwörter (keywords)... 180 7.10.4 Aktualisierte Seiten (updated)... 180 7.10.5 Directory... 183 7.10.6 List... 183 8 Frames... 186 8.1 Hallo, Frames!... 186 8.2 Vor- und Nachteile von Frames... 187 8.3 Frames erzeugen... 189 8.3.1 Reihen... 190 8.3.2 Spalten... 190 8.3.3 Frames verschachteln... 191 8.3.4 Eigenschaften von Frames definieren... 195 8.4 Iframes... 198 8.4.1 Die Extension installieren... 198 8.4.2 Eigenschaften von Iframes festlegen... 199 9 Formulare... 202 9.1 Formulare anlegen... 203 9.1.1 Pflichtfelder... 204 9.1.2 Der Formularassistent... 205 9.2 Felder gestalten... 206 9.2.1 Ein vollständiges Formular... 206 9.2.2 Formularelemente in Spalten anzeigen... 207 9.3 Einen passwortgeschützten Bereich anlegen... 209 9.4 MailformPlus... 215 9.5 Die Standard-Suche... 218 9.5.1 Die Suche anpassen... 218 9.5.2 Die Ausgabe formatieren... 222

X Inhalt 9.6 Die Erweiterte Suche integrieren...223 9.7 Dateien hochladen...232 10 TypoScript und SQL... 236 10.1 Die Datenbankstruktur...236 10.2 Datenbankinhalte dynamisch auslesen...238 10.2.1 Überprüfen, ob ein Feld leer ist...239 10.3 Die SQL-Anweisung manipulieren...239 10.3.1 Inhalte sortieren...240 10.3.2 Spalten gezielt auswählen...241 10.4 SQL-Abfragen bei der Extension-Entwicklung...243 10.4.1 Die Extension im Kickstarter anlegen...243 10.4.2 Plugin-Vorschau...245 10.4.3 Einen neuen Datensatz anlegen...246 10.4.4 SQL-Abfragen einfügen...246 11 Extensions... 250 11.1 Grundlagen...250 11.1.1 Extension-Kategorien...251 11.2 Der Extension Manager...251 11.2.1 Extensions installieren...254 11.3 Extensions im Einsatz...255 11.3.1 News...255 11.3.2 Kalender...259 11.3.3 Newsletter...261 11.4 Einen Chat integrieren...265 11.5 Eigene Erweiterungen entwickeln...267 11.6 Der Extension Kickstarter...267 11.6.1 Einen Extension Key anlegen...268 11.6.2 Die Kickstarter-Komponenten...269 11.6.3 Das Frontend-Plugin integrieren...271 11.6.4 Die Extension-Struktur...273 11.6.5 Funktionen des Extension Managers...274 11.6.6 TER-Account...276 11.6.7 Eine eigene Extension entwerfen...277 11.7 Praxiswissen für die Extension-Entwicklung...281 11.7.1 Programmierrichtlinien...281 11.7.2 Datenbankabstraktion...285 11.7.3 Datenbankabstraktion in der Praxis...287 11.7.4 Sicherheit...288 11.7.5 Subparts ansprechen...293 11.7.6 Marker ersetzen...293 12 Barrierefreiheit... 298 12.1 Hilfsmittel in TYPO3...299 12.1.2 Accesskeys definieren...301

Inhalt XI 12.2 TYPO3-Inhaltselemente barrierefrei gestalten... 303 12.2.1 Tabellen... 304 12.2.2 Formulare... 307 12.3 Menüs und Barrierefreiheit... 308 12.3.1 Textmenüs... 308 12.3.2 Grafikmenüs... 309 12.4 Weitere Maßnahmen... 310 13 Feinabstimmung... 314 13.1 TypoScript und Mehrsprachigkeit... 314 13.1.1 Automatische Sprachauswahl... 318 13.1.2 Menü und Mehrsprachigkeit... 319 13.2 Die Website in mehreren Versionen ausgeben... 320 13.2.1 PDF... 320 13.2.2 Eine Druckversion anbieten... 322 13.3 Being generated deaktivieren... 323 13.4 TYPO und Suchmaschinen... 324 13.4.1 Meta-Tags einfügen... 324 13.4.2 Statische Dokumente simulieren... 326 13.4.3 Schutz vor E-Mail-Spam... 328 13.4.4 Den Seitenheader anpassen... 329 14 Backend-Anpassung... 332 14.1 Page TSConfig... 332 14.1.1 Backend-Module konfigurieren... 332 14.1.2 Bearbeitungsformulare anpassen TCEFORM... 334 14.1.3 Systemtabellen konfigurieren TCEMAIN... 335 14.2 User TSConfig... 336 14.2.1 Setup... 337 14.2.2 admpanel... 337 14.2.3 options... 338 14.3 Praxislösungen für die Backend-Anpassung... 338 14.3.1 Überschriften-Typen im Bereich Überschrift anpassen... 338 14.3.2 Entfernen nicht mehr benötigter Seitentypen... 339 14.3.3 Einen neuen Menüeintrag in das Backend einfügen... 340 15 Referenz... 342 15.1 Funktionen... 342 15.1.1 Datums- und Zeitfunktionen... 342 15.1.2 if... 342 15.1.3 imagelinkwrap... 344 15.1.4 parsefunc... 347 15.1.5 select... 348 15.1.6 tablestyle... 350 15.2 Conditions (Bedingungen)... 351 15.2.1 Browser... 351

XII Inhalt 15.2.2 Browser-Version...352 15.2.3 Betriebssystem...352 15.2.4 Device...353 15.2.5 Sprache...353 15.2.6 Weitere Möglichkeiten...353 15.3 Formulare...354 15.3.1 Formularfelder...354 15.4 Frames...355 15.4.1 Frame...355 15.4.2 Frameset...356 15.5 GIFBUILDER...357 15.6 Menüs...359 15.7 Objekt-Referenz...361 15.7.1 CONTENT...361 15.7.2 EDITPANEL...361 15.7.3 FILE...363 15.7.4 HRULER...363 15.7.5 IMAGE...364 15.7.6 CLEARGIF...365 15.7.7 IMAGE_RESOURCE...365 15.7.8 PAGE...365 15.7.9 PAGE und Stylesheet-Angaben...368 15.7.10 TEMPLATE...369 15.8 CONFIG...370 Index... 377

16 2 TypoScript kennen lernen 2 TypoScript kennen lernen In diesem Kapitel werden die Grundzüge von TypoScript vorgestellt. Dabei geht es vor allem um Grundlagenforschung, wie sie normalerweise zum Erlernen jeder neuen Sprache gehört. Denn selbst wenn TypoScript nicht als echte Programmiersprache verstanden wird, gibt es doch Operatoren, Konstanten und Datentypen. All das und noch vieles mehr sollen Sie in diesem Kapitel kennen lernen. 2.1 Hallo, Welt! Endlich geht es in die Praxis. Und wie sonst sollte der Einstieg beginnen als mit dem klassischen Hallo, Welt!? Im Falle von TypoScript schlagen Sie mit dem Hallo, Welt! - Beispiel zwei Fliegen mit einer Klappe: Sie werden nämlich nicht nur Ihren ersten eigenen TypoScript-Code schreiben, sondern quasi im Vorbeigehen gleich ein TypoScript- Template erstellen. Bei dem folgenden Workshop wird davon ausgegangen, dass Sie das Dummy-Paket installiert und dort noch kein Template angelegt haben. Wer bereits ein Template besitzt, darf die Template-Erstellung überspringen und direkt zum eigentlichen TypoScript-Teil übergehen. Für die Template-Erstellung besteht die Option, zwischen unterschiedlichen Varianten zu wählen (wobei alle gut funktionieren und die hier ausführlicher vorgestellte Variante rein aus Gewohnheit verwendet wird): Bei Variante eins zeigen Sie im linken Fensterbereich unter Web auf Seite, rufen das Kontextmenü einer der Seiten auf und zeigen auf Neu. Hier wird nun ein Datensatz vom Typ Template angelegt. Bei der zweiten Variante gehen Sie unter Web auf Template und wählen die Root-Seite im Seitenbaum aus. TYPO3 meldet sich daraufhin mit der (sehr passenden) Information No Template. Abbildung 2.1 Ein neues Template anlegen.

2.1 Hallo, Welt! 17 Hier haben Sie zwei Möglichkeiten: Entweder wählen Sie aus der Auswahlliste ein Standard-Template aus oder Sie legen über Create template for a new site ein neues Template an. Für die folgenden Schritte realisieren Sie letztere Variante, Sie erzeugen also Ihr persönliches Template. Nachdem Sie den Button Create template for a new site gewählt haben, bestätigen Sie gleich die Kontrollabfrage Are you sure you want to do this? Daraufhin erzeugt TYPO3 einen Template-Datensatz mit dem Titel NEW SITE. Zum Bearbeiten des Templates zeigen Sie auf den Link Click here to edit whole template record. Das öffnet eine Eingabemaske, über die Sie alle Felder des Templates bearbeiten können. Für den Anfang wirkt diese Maske etwas unaufgeräumt und stößt eher ab. Besser Sie nähern sich ganz gezielt nur den Informationen, die tatsächlich geändert werden sollen, in diesem Fall der Inhalt des Feldes Setup. Um ihn zu ändern, gehen Sie auf das Stift- Symbol neben Setup. Der Inhalt von Setup stellt sich folgendermaßen dar. # Default PAGE object: page = PAGE page.10 = TEXT page.10.value = HELLO WORLD! Wird die Seite jetzt im Frontend aufgerufen, ergibt sich dieses Bild: Abbildung 2.2 Die erste Seite wurde erstellt. Das war es schon. Sie haben gesehen, dass sich mit wenigen Zeilen eine Textausgabe realisieren lässt. Um selbst ins Geschehen eingreifen zu können, ändern Sie den vorhandenen Quellcode folgendermaßen ab: page = PAGE page.10 = TEXT page.10.value = Hallo, Welt! page.10.wrap = <i> </i> Was geschieht hier? Wenn Sie bereits Erfahrungen mit HTML gesammelt haben, erkennen Sie auf den ersten Blick, was die Modifikation, abgesehen von der Einbürgerung des Hallo, Welt!-Begriffs, bringt: Die Zeichenkette Hallo, Welt! wird kursiv angezeigt. Zur

18 2 TypoScript kennen lernen Kontrolle lassen Sie sich die Seite wieder im Frontend anzeigen. Vergessen Sie aber nicht, den Update-Button zu benutzen, da ansonsten die Änderungen nicht übernommen werden! Abbildung 2.3 Hallo, Welt! dieses Mal kursiv. Experimentieren Sie ein wenig mit dem Feld Setup und ändern Sie z.b. page.10.wrap = <i> </i> in page.10.wrap = <u> </u>. Als Ergebnis erscheint Hallo, Welt! jetzt unterstrichen. Es sind genauso auch Kombinationen möglich: Geben Sie beispielsweise page.10.wrap = <u><i> </i></u> ein, wird die Zeichenkette unterstrichen und kursiv angezeigt. Immer interessant ist übrigens auch ein Blick in den generierten Quelltext des Frontends. So bewirkt das gezeigte TypoScript im Browser den folgenden HTML- Code: <u><i>hallo, Welt! </i></u> Sie haben gesehen, wie einfach Templates zu erstellen sind und sich TypoScript anwenden lässt. Nun war dieses Beispiel zugegebenermaßen sehr simpel und diente eher einer ersten Kontaktaufnahme. 2.2 Syntax Auf den folgenden Seiten werden die wichtigsten Sprachelemente von TypoScript vorgestellt. Die Syntax von TypoScript ist zwar längst nicht so komplex wie die der meisten Programmier- oder Skriptsprachen, dennoch gibt es Syntaxelemente, die tatsächlich etwas mit richtiger Programmierung zu tun haben. So werden Sie z.b. feststellen, dass Datentypen und Funktionen existieren, also Elemente, durch die sich Programmiersprachen auszeichnen. Aber keine Sorge: Sie müssen sich weder mit Flussdiagrammen für Schleifen noch mit einer komplizierten Syntax befassen. TypoScript lässt sich vom Schwierigkeitsgrad her wohl zwischen HTML und CSS einordnen.

2.2 Syntax 19 2.2.1 Objekte und Objekteigenschaften In diesem Buch kommt häufiger die Rede auf Objekte und deren Eigenschaften. Um verständlich zu machen, was Objekte sind und wie sie gehandhabt werden, stellen Sie sich folgendes Beispiel vor: Sie haben vermutlich mehrere Möglichkeiten, allmorgendlich zur Arbeit zu gehen. Die einen setzen auf Busse und Bahn, die anderen auf ihr Auto und wieder andere schwören auf die Fortbewegung per Muskelkraft, also auf den Einsatz eines Fahrrads. Alle diese Fortbewegungsmittel lassen sich in TypoScript z.b. unter dem Begriff meinvehikel zusammenfassen. Diesem Begriff können Sie nun die Fortbewegungsmittel als Objekte zuweisen. Typische Objekte wären in diesem Fall BAHN, AUTO oder FAHRRAD. Letzteres, da ökologisch wertvoll, soll auf den folgenden Seiten als Ausgangspunkt für weitere Erklärungen dienen. meinvehikel = FAHRRAD Durch diese Syntax wird festgelegt, dass sich hinter dem frei gewählten Namen meinvehikel das Objekt FAHRRAD verbirgt. TYPO3 weiß nun, dass es sich immer, wenn Sie meinvehikel verwenden, um das FAHRRAD-Objekt handelt. Selbstverständlich besitzt jedes FAHRRAD Eigenschaften, beispielsweise eine bestimmte Größe und verschiedene Gänge (wenn auch im einfachsten Fall nur einen Gang). Ihr ganz persönliches FAHRRAD-Objekt könnte also folgendermaßen aussehen: meinvehikel = FAHRRAD meinvehikel.groesse = 28 meinvehikel.gaenge = 3 Über diese Definition wird TYPO3 mitgeteilt, wie das FAHRRAD genau beschaffen ist: Es besitzt die Größe 28 Zoll und außerdem stolze 3 Gänge. Intern weiß TYPO3 bereits, dass FAHRRAD die Eigenschaften groesse und gaenge hat, ihre entsprechenden Werte werden später jeweils gesetzt. Natürlich kennt FAHRRAD weitere Eigenschaften. So ließe es sich ü- ber farbe, alter und dynamo noch genauer beschreiben. Allerdings wäre es mühsam, jedes Mal alle möglichen Eigenschaften einzutippen. Deswegen nimmt TYPO3 immer dann, wenn keine expliziten Angaben zu den Eigenschaften notiert werden, Standardwerte an. Um einer Eigenschaft einen Wert zuzuweisen, wird der Operator = (Gleichheitszeichen) verwendet. (Mehr zu Operatoren und Wertzuweisungen erfahren Sie ab Seite 27.) Damit das Ganze nicht zu abstrakt erscheint, soll kurz der TypoScript Object Browser zu Rate gezogen werden (was das genau ist und welche Möglichkeiten er bietet, wird in Kapitel 3 gezeigt). Das Objekt FAHRRAD stellt dieses Tool folgendermaßen dar:

20 2 TypoScript kennen lernen Abbildung 2.4 Das Objekt FAHRRAD wird im Object Browser angezeigt. Hier lassen sich schön die Eigenschaften des Objekts erkennen. TYPO3 hält eine Menge von Objekten bereit. Als Beispiel betrachten Sie hier das HRULER-Objekt, über das eine horizontale Linie ausgegeben werden kann. Als Eigenschaften kennt HRULER u.a. die Linienbreite (linethickness) und die Farbe (linecolor). Die Definition einer Linie in TypoScript sieht dann beispielsweise so aus: page = PAGE page.typenum = 0 page.20 = HRULER page.20 { linethickness = 10 linecolor = #000000 } Über page.20 = HRULER wird ein TypoScript-Objekt vom Typ HRULER erzeugt. Innerhalb der nächsten Zeilen sehen Sie die Eigenschaften dieses Objekts genauer beschrieben. An der Syntax brauchen Sie sich hier nicht zu stören. Was es mit den geschweiften Klammern auf sich hat, wird noch erklärt. Zusammenfassend lässt sich für Objekte und ihre Eigenschaften diese allgemeine Syntax festhalten: [Objekt]. [Eigenschaft] [Operator] [Wert] Auf dieser Basis aufbauend, soll die Syntax des einführenden Hallo, Welt!-Beispiels noch einmal genauer untersucht werden. page = PAGE page.typenum = 0 page.10 = TEXT page.10.value = Hallo, Welt! Abgewandelt in eine allgemeine Syntax ergibt sich Folgendes: meinobjekt = OBJEKT meinobjekt.eigenschaft = wert1 meinobjekt.unterobjekt = OBJEKTART meinobjekt.unterobjekt.eigenschaft = wert2

Index _parent 221 A accesskey 301 Accesskeys Standard 301 ACT 149 ACTLANG 231 ADJUST 129 Admin-Panel 50 ADVANCED 231 angle 135 Anmeldeformular 203, 212 antialias 135 Apache-Server 326 RewriteEngine 326 Arbeitsbereich 129 arrowact 170 arrowimgparams 170 arrowno 170 AtagsParams 154 B backcolor 129 badmess 221 Barrierefreiheit 298 Bedingungen 34 Extended TS Conditions 35 before 154 beforeimg 154 beforeroimg 154 beforewrap 154 begin 152 beginaltlevel 180 bodytag 96 boolean 30 bottombackcolor 170 BOX 129 Boxen 133 Browse-Menü 178 Building Queries 286 C Cache 142 deaktivieren 144 leeren 143 cache_clearatmidnight 144 Chat 265 Clear 94 clearsearchbox 228 cols 190 commentwrap 219 Conditions siehe Bedingungen 34 CONFIG 370 Constant Editor 54 CONTENT 361 select 361 table 361 CROP 129 Cross Site Scripting 289 CUR 149

378 Index D data 239 Datei-Upload 232 erlaubte Dateigröße 232 erlaubte Mime-Typen 232 Mime-Typen kontrollieren 232 Verzeichnispfad 232 Datenbankfelder auf Inhalt prüfen 239 dynamisch auslesen 238 Datentypen 30 einfache 30 Deklarative Programmierung 6 Designvorlagen 82, 87 einbinden 97 Direct Mail 261 directory 150 Directory-Menü 183 distrib 178 donotstriphtml 135 dontlinkifsubmenu 170 Drucklayout 322 Druckversion 322 DS siehe Datenstrukturen 117 dworkarea 177 E Ebenen 130 Nummerierung 131 positionieren 133 EDITPANEL 361 allow 361 label 362 line 362 newrecordfromtable 362 onlycurrentpid 362 previewborder 362 EFFECT 129 Else-Condition 35 emboss 135, 139 EMBOSS 129 entrylevel 148 Erweiterte Suche 223 auf jeder Seite 231 erweiterte Vorschau 227 Formular einbinden 225 installieren 224 konfigurieren 226 Mehrsprachigkeit 230 Sprachbox einblenden 227 Starting-Point 229 Trefferzahl pro Seite 227 excludenosearchpages 180 excludeuidlist 153 Extension Key 268 Extension Manager 250 Extension Repository 250 Extension-Entwicklung 281 Abstraktionslayer 285 Dateibezeichnungen 282 Funktionen 282 Klassen 282 Programmierrichtlinien 281 Quelltext-Dokumentation 283 Sicherheit 288 Variablen 285 Zeilenlänge 283 Extension-Kategorien 251 Extension-Key registrieren 268 Extension-Kickstarter 267 Komponenten 269 Extension-Manager Aufgaben 252 Funktionen 274 Extensions 250 Abhängigkeiten 270 API 250 beteiligte Dateien 273 Dokumentationen erstellen 276 eigene entwickeln 267 einen Chat einfügen 265 Feldtyp 271 importieren 254 Installationsart 253 installieren 254

Index 379 neue Datenbanktabelle 270 News 255 Status 270 TER 276 F field 238 fieldwrap 219 FILE 363 alttext 363 file 363 longdescurl 363 titletext 363 File Uplad siehe Datei-Upload 232 Flexforms 122 Foldout-Menü 168 foldspeed 170 fontcolor 135 fontfile 135 fontsize 135 format 130 Formular-Assistent 205 Formulare anlegen 203 Anmelden 203 E-Mail 203 in Spalten 207 Pflichtfelder 204 Suchen 203 Formularfelder 203 FRAME 189 frameborder 195, 196 Frames 186 bordercolor 196 cols 190 Eigenschaften 195 marginheight 196 marginwidth 196 Nachteile 187 noresize 196 Rahmen 195 Rahmen ausblenden 196 Reihen anlegen 190 Reihen definieren 190 rows 190 Scollbalken 195 Spalten anlegen 190 Spalten definieren 190 verschachteln 191 Vorteile 188 frameset 189 Frameset 186 definieren 186 FRAMESET 189 framespacing 196 Frontend Editing 50 Frontend-Plugins 277 Funktionen 36 G GIFBUILDER 127 Objekte 128 GMENU 147 GMENU_FOLDOUT 168 GMENU_LAYERS 170 goodmess 222 Grafiken 124 Ebenen 130 Ebenen-Reihenfolge 129 einbinden 126 Farben umkehren 129 Format 130 Größe anpassen 127 Hintergrundfarbe 129 maximale Breite 130 maximale Höhe 130 Qualität 130 Rechteck zeichnen 129 referenzieren 129 Relief-Effekt 129 Schatten erzeugen 129 Tonwertkorrekturen 129 transparenter Hintergrund 130 Umrisslinie einfügen 129 Grafischer Text 134 FreeType-Antialiasing 135

380 Index horizontale Ausrichtung 135 HTML-Tags behalten 135 maximale Breite 135 Position 136 Relief-Effekt 135 rotieren 135 Schatten 136 Schriftartendatei 135 Schriftfarbe 135 Schriftgröße 135 Weichzeichner-Effekt 135 Wortabstand 136 H Head-Bereich doppelter 85, 86 HEADLINE 232 HomeSite 63 HTMLDoc installieren 320 htmlentities() 289 HTML-Seiten 326 simulieren 326 I IFRAME 198 IFRAME2 198 IFRAMES Eigenschaften 199 Rahmen 199 Scrollbalken 199 IFSUB 149 IMAGE 126, 129, 364 alttext 364 border 364 file 364 longdescurl 364 params 364 titletext 364 ImageMaps 177 IMGMENU 177 Include static 94 Indexed Search Engine 223 Info/Modify 43 Constants 45 Description 45 Resources 45 Setup 45 Sitetitle 44 Title 44 Inline Frame siehe IFRAMES 198 INNER 115 Instructions 262 int 30 iterations 135 J JavaDoc 283 JavaScript-Menüs 147 Seiten aufrufen 160 JSMENU 147 K Kalender-Extension 259 Datum anpassen 260 Designvorlage 260 Uhrzeit 260 keywords 151 keywordsfield 180 Keywords-Menü 180 Kommentare 33 einzeilige 33 Konstanten 26 anpassen 54 Feldtyp 59 Kategorien 57 Kategorienbeschreibung 60 L L1sections 228 L2sections 228 labelwrap 219 Layer-Menüs 147, 170 Opera 171 linkwrap 154 list 151

Index 381 List-Menü 183 Login-Seite 212 LxAlltypes 228 M Mailer Engine Status 262 MailformPlus 215 Formular anpassen 217 Mailformular 202 Make Printlinks 322 Marker 83, 87 ansprechen 99 Syntax 83, 87 maxage 151 maxheight 130 maxitems 152 maxwidth 130, 135 Mehrsprachigkeit 314 automatisieren 318 Flaggen-Symbol 315 in Menüs 319 Sprachparameter setzen 317 Standardsprache 317 Übersetzung anlegen 316 Menü Art festlegen 150 Arten 146 directory 150 grafische 147 special 149 Untermenüs 154 Zustand bestimmen 149 menubackcolor 170 menuoffset 170 Menüs 146 Anfangspunkt 152 Breite anpassen 165 Einstiegslevel 152 Hintergrundgrafiken 166 ImageMaps 177 JavaScript 147 Layer 147 Seitenliste 151 Startpunkt festlegen 149 Stylesheets 155 Tabellen 158 textbasierte 147 menuwidth 170 meta 97 Meta-Tags 97, 324 minitems 152 Module configuration 262 mozex-plugin 42 Multiple-tree-Konzept 314 N New frontend login box 213 News-Extension 255 Newsletter 261 abbestellen 265 Anmeldeformular 264 Extension installieren 261 konfigurieren 262 personalisieren 263 Statistiken 264 nicetext 135, 137 NO 149 no_cache 144 O Objektart 21 Objekte 19 Eigenschaften 19 kopieren 21 löschen 23 referenzieren 23 offset 136 Operator kopieren 28 löschen 28 Wertzuweisung 27 Operatoren 21 optionsplit 156 OUTER 115 OUTLINE 129

382 Index P PAGE 365 admpanelstyles 368 bgimg 366 bodytag 366 bodytagadd 366 bodytagmargins 366 config 366 CSS_inlineStyle 368 frameset 366 headerdata 367 hover 368 hoverstyle 368 includecss.[array] 368 includelibs 367 insertclassesfromrte 369 meta 367 nolinkunderline 369 shortcuticon 367 smallformfield 369 stylesheet 369 typenum 367 parsetimes 228 Passwortschutz 209 Benutzergruppen 210 PDF 320 pidsearchpage 231 pixel 31 Platzhalter 83, 87 Q quality 130 Query execution functions 286 QuickMail 262 R radiowrap 219 RANGEHIGH 222 RANGELOW 222 RealURL 326 Recipient list 262 reducecolors 177 Relief 139 Resources 94 RESULT 222 Rich-Text-Editor Absatzdefinitionen 74 die Buttonleiste anpassen 72 eigene Menüs 76 Farbwähler 76 Hintergrundfarbe 77 Stil-Klassen 74 RO 149 Rootlevel 94 rootline 151 Rootline-Menü 179 rows 190 rules 228 S SCALE 129 Schatten 138 scrolling 195 Searchbox for Indexed Search Engine 231 SEARCHPID 232 SEARCHRESULT 219 Seitentitel angeben 44 select 240, 348 andwhere 348 begin 349 join 349 languagefield 349 leftjoin 349 max 349 orderby 349 pidinlist 350 rightjoin 349 selectfields 350 uidinlist 350 where 350 SHADOW 129 Sicherheit 288 simulatestaticdocuments_addtitle 326 sorting 240 Spam 328

Index 383 SPC 149 SQL-Anweisung 239 manipulieren 239 Standard-Suche 218 Auswahlfeld anpassen 220 Auswahlfeld entfernen 220 einfügen 218 Fehlermeldungen 221 Zielfenster 220 Standard-Templates 106 BLUG 108 BUSINESS 108 CANDIDATE 108 CrCPH 108 FIRST 108 GLUECK 108 GREEN 108 HYPER 107 MM 108 NEWSLETTER 107 RE 107 template 107 Standard-Templates TU 107 stayfolded 170 string 30 stylesheet 96 submenuoffset 170 Subparts 83, 87 ansprechen 99 HTML-Kommentare 84, 87 Suche 218 erweiterte siehe Erweiterte Suche 223 Suchformular 203 Suchmaschinen 324 T Template 12, 90 Beschreibung 45 C. Constants 49 C. Setup 49 Elemente einbinden 45 Konstanten definieren 45 Rootlevel 49 Seitentitel 44 Struktur anzeigen 48 Titel 44 Template Analyzer 48 Template Auto Parser konfigurieren 103 Template Auto-Parser 101 Template Objects 117 Templates Aufgaben 90 Description 95 Name 93 on next level 95 Standard 106 vererben 92 Template-Titel angeben 44 TemplaVoila 111 Systemvoraussetzungen 112 temppagecachecontent() 323 TER Extensions verwalten 276 TER-Account 276 TEXT 129 textmaxlength 136 Textmenüs 153 Eigenschaften 153 TMENU 147 TMENU_LAYERS 147, 170 TO siehe Template Objects 117 TOTAL 222 transparentbackground 130 transparentcolor 130 tt_calender 259 type = *sword 219 TYPO3 236 Datenbankstruktur 236 TYPO3-Kommentar 329 entfernen 329 erweitern 329 TypoScript Funktionen 14 und PHP 10

384 Index TypoScript 2 TypoScript Object Browser 46 TypoScript-Code 46 als Baumstruktur 46 TypoScript-Editor 42 auf Java-Basis 62 für Mozilla 42 Macromedia HomeSite 63 TypoScript-Templates 110 U UltraEdit Syntaxhighlighting 43 unsetempty 214 updated 151 Updated-Menü 180 URL rewriting 372 usergroupoverride 213 USR 149 W Website title 93 Wertzuweisung 27 wordspacing 136 WORKAREA 129 Wrap 32 Wrapper-Klasse 285 X XY 130