typo3-workshop typoscript und templates

41
Regionales Rechenzentrum für Niedersachsen TYPO3-Workshop TypoScript und Templates RRZN Universität Hannover

Upload: aden

Post on 19-Jan-2016

50 views

Category:

Documents


0 download

DESCRIPTION

TYPO3-Workshop TypoScript und Templates. RRZN Universität Hannover. Templates und TypoScript. Ziele dieses Kapitels Einführung der Begriffe Template und TypoScript TypoScript an Hand einfacher Templates TypoScript Syntax Kennlernen der Werkzeuge zur Template-Berarbeitung Template-Analyzer - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: TYPO3-Workshop TypoScript und Templates

Regionales Rechenzentrum für Niedersachsen

TYPO3-WorkshopTypoScript und Templates

RRZN Universität Hannover

Page 2: TYPO3-Workshop TypoScript und Templates

Regionales Rechenzentrum für NiedersachsenT. Kröckertskothen | April 2005 | Folie 2

Templates und TypoScript

Ziele dieses Kapitels Einführung der Begriffe Template und TypoScript TypoScript an Hand einfacher Templates TypoScript Syntax Kennlernen der Werkzeuge zur Template-Berarbeitung

Template-Analyzer TypoScript Object Browser (TCO) Template Record Editor

Ausgangslage: Site mit wenigen Seiten und ohne Template

Page 3: TYPO3-Workshop TypoScript und Templates

Regionales Rechenzentrum für NiedersachsenT. Kröckertskothen | April 2005 | Folie 3

Templates in Typo3

steuern die Web-Darstellung von Seiten ohne Template keine Web-Seite

steuern die Web-Darstellung von Seiten Konfiguration mit TypoScript hierarchisch geordnet Datensatz in der Tabelle sys_template

sind keine HTML-Dateien

Page 4: TYPO3-Workshop TypoScript und Templates

Regionales Rechenzentrum für NiedersachsenT. Kröckertskothen | April 2005 | Folie 4

TypoScript

TYPO3-spezifische Syntax zur Beschreibung von Daten hierarchische Struktur in ASCII-Text wird in einen mehrdimensionalen PHP-Array übersetzt (TS-Parser)

„TypoScript is parsed that means it is transformed into a PHP array!“ ermöglicht die Konfiguration von php-Dateien in Typo3

TypoScript ist zu finden in

Page TSConfig User TSConfig TypoScript Templates

Page 5: TYPO3-Workshop TypoScript und Templates

Regionales Rechenzentrum für Niedersachsen

TypoScript – Erstes Template

Ausgangslage

T. Kröckertskothen | April 2005 | Folie 5

Page 6: TYPO3-Workshop TypoScript und Templates

Regionales Rechenzentrum für NiedersachsenT. Kröckertskothen | April 2005 | Folie 6

Erstes Template erstellen

Start-Seite im Seitenbaum wählenWeb-Module TemplateButton

„Create Template for a new site“

Page 7: TYPO3-Workshop TypoScript und Templates

Regionales Rechenzentrum für Niedersachsen

Template-Werkzeuge – Pulldown-Menü

Werkzeuge im Template-Modul Constant-Editor Info/Modify TypoScript Object Browser Template Analyzer

T. Kröckertskothen | April 2005 | Folie 7

Page 8: TYPO3-Workshop TypoScript und Templates

Regionales Rechenzentrum für Niedersachsen

Hello-World-Template

TypoScript-Template Hello-World

# Default PAGE object:page = PAGEpage.10 = TEXTpage.10.value = HELLO WORLD!

T. Kröckertskothen | April 2005 | Folie 8

Page 9: TYPO3-Workshop TypoScript und Templates

Regionales Rechenzentrum für Niedersachsen

Hello-World-Template

TypoScript-Template Hello-World

# Default PAGE object:page = PAGEpage.10 = TEXTpage.10.value = HELLO WORLD!

Zeile 1: Kommentar Zeile 2: Objekt vom Typ PAGE mit der Bezeichnung page

page.10 Property cObj vom Typ TEXT Die Nummer legt die Reihenfolge der cObj-Elemente auf der Seite fest

Zeile 3: page.10.value Property value des ObjektsTEXT (Text erhält den Wert „HELLO WORLD!“)

T. Kröckertskothen | April 2005 | Folie 9

Page 10: TYPO3-Workshop TypoScript und Templates

Regionales Rechenzentrum für NiedersachsenT. Kröckertskothen | April 2005 | Folie 10

PAGE

PAGE TypoScript Objekt „setup“-Objekt startet Web-Präsentation einer Seite

(Web-Ausgabe eines Datensatzes uid aus Tabelle pages) notwendig (ohne PAGE keine Ausgabe)

Weitere Informationen siehe auch TSref

typo3.org Dokumentation

– Core Documentation

(tsref.de)

Page 11: TYPO3-Workshop TypoScript und Templates

Regionales Rechenzentrum für Niedersachsen

TypoScript-Elemente

Erste Übersicht über TypoScript-Elemente (Details folgen): Data types Conditions Functions setup-Objekte

PAGE config ...

Content-Objects TEXT HTML HMENU IMAGE ...

Menu Objects

T. Kröckertskothen | April 2005 | Folie 11

Page 12: TYPO3-Workshop TypoScript und Templates

Regionales Rechenzentrum für NiedersachsenT. Kröckertskothen | April 2005 | Folie 12

page.10=TEXT

page = PAGE

page.10 = TEXT

page.10.value=Hallo cObject

erste Formulierung

Objekt vom Typ TEXT wird an die Position 10 auf die Seite gesetzt

Wert ist Hallo cObject

präziser formuliert (siehe TSref)

PAGE hat die Property 1,2,3, …

zulässiger Datentyp ist cObject (Content Object)

die Nummer legt die Reihenfolge der Content-Objekte auf der Seite fest

Page 13: TYPO3-Workshop TypoScript und Templates

Regionales Rechenzentrum für NiedersachsenT. Kröckertskothen | April 2005 | Folie 13

Content Objects (cObject)

Konfigurieren die Darstellung von Inhaltselementen auf der Web-Seite Inhaltselemente werden aus Tabellen geladen oder in TypoScript erzeugt Beispiele für Content Objects (siehe TSref)

TEXT HTML CONTENT HMENU FORM PHP_SCRIPT …

Werte für die Darstellung werden durch Properties des jeweiligen Content Object festgelegt

Page 14: TYPO3-Workshop TypoScript und Templates

Regionales Rechenzentrum für NiedersachsenT. Kröckertskothen | April 2005 | Folie 14

Content-Element HTML

Content-Element HTML an Position 10

Hinweis zur Syntax:

Runder Klammern

(

eine Zeile

noch eine Zeile

)

fassen mehrere Zeilen zusammen

und weisen diesen einem Wert zu

page = PAGE

page.typeNum = 0

page.10=HTML

page.10.value (

<h1>Hallo HTML</h1>

Dies ist ein ...

<p>Inhalt wird mit TypoScript erzeugt!

<hr>

<h5>Typo3</h5>

)

Page 15: TYPO3-Workshop TypoScript und Templates

Regionales Rechenzentrum für NiedersachsenT. Kröckertskothen | April 2005 | Folie 15

Ein Menü

page.5 = HMENU

page.5.1=TMENU

page.5.1.wrap = | <br><br>

page.5.1.NO.AtagBeforeWrap=1

page.5.1.NO.linkWrap=&nbsp; | &nbsp;

Position 5 wird ein HMENU (Content-Object vom Typ HMENU) gesetzt

HMENU ist ein Array von MENU-Objekten

MENUE-Objekte sind z.B. GMENU, TMENU, IMGMENU, …

An Position1 von HMENU wird ein TMENU gesetzt

wrap umschließt das aktuelle Elemente mit Werten

| bezeichnet das aktuelle Element

Page 16: TYPO3-Workshop TypoScript und Templates

Regionales Rechenzentrum für NiedersachsenT. Kröckertskothen | April 2005 | Folie 16

TypoScript am Beispiel Menü

An Hand der MENU-Anweisungen werden TypoScript-Elemente vorgestellt:

{ } Properties zusammenfassen

< Objekte kopieren

=< Objekte referenzieren

> Objekte löschen

page.5 = HMENU

page.5.1=TMENU

page.5.1.wrap = | <br><br>

page.5.1.NO.AtagBeforeWrap=1

page.5.1.NO.linkWrap = &nbsp; | &nbsp;

Page 17: TYPO3-Workshop TypoScript und Templates

Regionales Rechenzentrum für NiedersachsenT. Kröckertskothen | April 2005 | Folie 17

TypoScript { }

page.5 = HMENU

page.5.1=TMENU

page.5.1.wrap = | <br><br>

page.5.1.NO.AtagBeforeWrap=1

page.5.1.NO.linkWrap = &nbsp; | &nbsp;

page.5 = HMENU

page.5.1=TMENU

page.5.1{

wrap = | <br><br>

NO {

AtagBeforeWrap=1

linkWrap = &nbsp; | &nbsp;

}

}

TypoScript Anweisungen für das HMENU lassen sich auch übersichtlicher formulieren

{ } fassen Wertzuweisungen für Properties eines Objekts zusammen

Page 18: TYPO3-Workshop TypoScript und Templates

Regionales Rechenzentrum für NiedersachsenT. Kröckertskothen | April 2005 | Folie 18

TypoScript – Anweisungen kopieren <

temp.MeinMenu = HMENU

temp.MeinMenu.1 = TMENU

temp.MeinMenu.1 {

wrap = | <br><br>

NO {

AtagBeforeWrap=1

linkWrap = &nbsp; | &nbsp;

}

}

page = PAGE

page.typeNum = 0

page.5 < temp.MeinMenu

Konzept: TypoScript-Anweisungen werden an

einer Stelle festgelegt und an andere Stellen kopiert

< kopiert einen Objekt-Pfad

page.5 < temp.MeinMenu

temp.MeinMenu wird nach page.5 kopiert

top-level-Pfade mit der Bezeichnung temp (und styles) werden vom Parser nach dem Kopieren gelöscht!

Page 19: TYPO3-Workshop TypoScript und Templates

Regionales Rechenzentrum für NiedersachsenT. Kröckertskothen | April 2005 | Folie 19

Objekt-Pfade referenzieren =<

lib.MeinMenu = HMENU

lib.MeinMenu.1 = TMENU

lib.MeinMenu.1 {

wrap = | <br><br>

NO {

AtagBeforeWrap=1

linkWrap = &nbsp; | &nbsp;

}

}

page = PAGE

page.typeNum = 0

page.5 <= lib.MeinMenu

<= referenziert einen Objekt-Pfad

Identische Objekt-Pfade können an mehreren Stellen im TypoScript-Code verwendet werden

temp darf nicht für referenzierte Objekt-Pfade verwendet werden (da vom Parser entfernt)

Page 20: TYPO3-Workshop TypoScript und Templates

Regionales Rechenzentrum für NiedersachsenT. Kröckertskothen | April 2005 | Folie 20

Objekt-Pfade löschen >

lib.MeinMenu = HMENU

lib.MeinMenu.1 = TMENU

lib.MeinMenu.1 {

wrap = | <br><br>

NO {

AtagBeforeWrap=1

linkWrap = &nbsp; | &nbsp;

}

}

page = PAGE

page.typeNum = 0

lib.MeinMenu >

page.5 < lib.MeinMenu

lib.MeinMenu >

Objekt lib.Meinu ist ab der TypoScript-Zeile gelöscht.

Das Menü wird in diesem Fall nicht angezeigt – Demo-Anwendung

> wird benötigt, um in Template-Hierarchien übergeordnete Objekt-Pfade sicher zu bereinigen und durch eigene Werte zu ersetzen.

Page 21: TYPO3-Workshop TypoScript und Templates

Regionales Rechenzentrum für NiedersachsenT. Kröckertskothen | April 2005 | Folie 21

Bedingungen

[browser = netscape]

page.5 =< lib.MeinMenu

[else]

page.5=TEXT

page.5.value = KEIN MENUE

[end]

[global]

Bedingungen werden durch [bedingung]

eingeleitet

[else] Verzweigung

[end] Ende der Bedinugung

[global] setzt alle Bedingungen zurück

kehrt zur obersten (globalen)

TypoScript-Ebene zurück

Es gibt Bedingungen für Browser Betriebssysteme Zeiten Sprachen IP-Adressen …. siehe TSRef

Page 22: TYPO3-Workshop TypoScript und Templates

Regionales Rechenzentrum für NiedersachsenT. Kröckertskothen | April 2005 | Folie 22

Kommentare in TypoScript

# Dies ist ein Kommentar

// ebenfalls ein Kommentar

/*

Kommentar-Block

*/

# bisher keine Inhalts-Elemente ausgegeben!

Page 23: TYPO3-Workshop TypoScript und Templates

Regionales Rechenzentrum für NiedersachsenT. Kröckertskothen | April 2005 | Folie 23

Inhaltselemente darstellen

Ziel: Inhaltselemente von Seiten ausgeben

Schritte einfaches Template für die Ausgabe von Text-

Elementen statische Templates einsetzen content (default) nutzen Template-Hierarchie

Page 24: TYPO3-Workshop TypoScript und Templates

Regionales Rechenzentrum für NiedersachsenT. Kröckertskothen | April 2005 | Folie 24

Ziel: Text von Seiten ausgeben

Typo3-php-classes

Page 25: TYPO3-Workshop TypoScript und Templates

Regionales Rechenzentrum für NiedersachsenT. Kröckertskothen | April 2005 | Folie 25

Text von Seite ausgeben – TypoScript

cObject vom Typ CONTENT Mit Property table wird die Tabelle

festgelegt (Inhaltselemente einer Seite sind Datensätze in der Tabelle tt_content)

select-Anweisung für DB-Abfrage wird spezifiziert

tt_content wird als COA (Content Object Array) festgelegt

Positition 10 header-Feld des Text-Records Positions 20 bodytext-Feld

Anmerkungen: Es werden nur Text-Elemente des Seite

angezeigt! Für solche Standard-Anwendungen gibt es

fertige statische Templates!

page = PAGEpage.typeNum = 0page.10 = CONTENTpage.10{ table = tt_content select { pidInList = this orderBy=sorting }}

tt_content = COAtt_content{ 10 = TEXT 10.field = header 10.wrap = <h1> | </h1> 20 = TEXT 20.field = bodytext}

Page 26: TYPO3-Workshop TypoScript und Templates

Regionales Rechenzentrum für NiedersachsenT. Kröckertskothen | April 2005 | Folie 26

statische Templates – content (default)

Satz vorgefertigter Templates in Typo3 („preset chunks of TypoScript code“)

werden in der Liste „Include statics“ im Template-Record-Editor aufgeführt sind nicht änderbar („read only“)

CSS styled content Ausgabe der Inhalte mit "CSS-Rendering"

Page 27: TYPO3-Workshop TypoScript und Templates

Regionales Rechenzentrum für Niedersachsen

Inhalte mit style.content.get einfügen

Einfügen von Inhalt in eine Seite

# Default PAGE object:

page = PAGE

page.10 = TEXT

page.10.value = Inhalt:

page.30 < styles.content.get

# die rechte Spalte

page.40 < styles.content.getRight

T. Kröckertskothen | April 2005 | Folie 27

Page 28: TYPO3-Workshop TypoScript und Templates

Regionales Rechenzentrum für NiedersachsenT. Kröckertskothen | April 2005 | Folie 28

Bemerkungen zu TypoScript

TypoScript ist nur eine Syntax Folgendes ist zulässig (aber wirkungslos) (Objekt bla mit Properties)

bla = zui{ bg=gelb tzum=123 tzum { 1 = rt}

TypoScript wird vom Parser in einen php-Array überführtder Array wird von entsprechenden php-Dateien ausgewertet

Wirkung der TypoScript-Objekte (Arrays) wird von der php-Datei (Typo3-Core, Extension) festgelegt (nicht von TypoScript)

Information und Hilfe TSRef, Extension-Dokumentation TypoScript property lookup

Page 29: TYPO3-Workshop TypoScript und Templates

Regionales Rechenzentrum für Niedersachsen

HTML-Vorlagen und CSS

Aufbau einer Web-Site allein mit TypoScript-Template möglich aber nicht sinnvoll

Konzept: HTML-Design-Vorlagen (HTML-Templates)und CSS mit TypoScript werden nur die dynamischen Elemente (Inhalte, Menüs,

Fußzeilen, etc.) gesteuert.

Vorteil u.a.: Design-Vorlage und TypoScript können getrennt voneinander bearbeitet

werden

T. Kröckertskothen | April 2005 | Folie 29

Page 30: TYPO3-Workshop TypoScript und Templates

Regionales Rechenzentrum für Niedersachsen

HTML-Template

HTML-Templage (HTML-Vorlagen-Datei)

(fileadmin/vorlagen/homepage.html)

<html>

<head>

</head>

<body>

<!-- ###DOCUMENT_BODY### begin -->

<h1>Demo-Site</h1>

###CONTENT###

<!-- ###DOCUMENT_BODY### end -->

</body>

</html>

Anmerkung:

fileadmin/vorlagen ist ein übliches Verzeichnis, im TLUH-Template liegen die Vorlagen in typo3conf/ext/... (im fileadmin also nicht sichtbar)

T. Kröckertskothen | April 2005 | Folie 30

Page 31: TYPO3-Workshop TypoScript und Templates

Regionales Rechenzentrum für Niedersachsen

HTML-Template in TypoScript

TypoScript

page = PAGEpage.10 = TEMPLATEpage.10 {  template=FILE  template.file=fileadmin/vorlagen/homepage.html   workOnSubpart = DOCUMENT_BODY  marks {    CONTENT < styles.content.get  }}

T. Kröckertskothen | April 2005 | Folie 31

Page 32: TYPO3-Workshop TypoScript und Templates

Regionales Rechenzentrum für NiedersachsenT. Kröckertskothen | April 2005 | Folie 32

Anwendungs-Beispiele

Einfacher Tagtt_content.text.20.parseFunc.tags.orange = TEXT

tt_content.text.20.parseFunc.tags.orange {

current = 1

wrap = <font color=orange>|</font>

}

Interner Bereich mit Zugangsregeln über IP-Nummerpage.10.subparts.SUB_CONTENT.10 >

[IP= 130.75.5.*]

page.10.subparts.SUB_CONTENT.10 = COA

page.10.subparts.SUB_CONTENT.10 {

10 < styles.content.get

}

[globals]

Page 33: TYPO3-Workshop TypoScript und Templates

Regionales Rechenzentrum für NiedersachsenT. Kröckertskothen | April 2005 | Folie 33

Konstanten

Konstanten (Contants) im „Constants“-Feld eines Templates definierte Werte

constante = wert

es gilt TypoScript-Syntax im „Setup“-Feld eingefügt

{$constante}

Page 34: TYPO3-Workshop TypoScript und Templates

Regionales Rechenzentrum für NiedersachsenT. Kröckertskothen | April 2005 | Folie 34

Template-Strukturen

Rootlevel-Templates im Template-Record ist Rootlevel aktiviert Konfiguration gilt innerhalb der gesamten Rootline – bis Werte in

Sublevel-Templates überschrieben oder ergänzt werden

Sublevel-Templates innerhalb einer Rootline mit bestehenden Rootlevel-Template überschrieben/ergänzen bestehenden Template-Record

Basis-Templates enthalten TypoScript (und andere Template-Record-Konfigurationen) werden in Rootleve-Templates/Sublevel-Templates eingebunden schaffen Ordnung im TypoScript-Code

Template on next level Template für die nächste Ebene

Page 35: TYPO3-Workshop TypoScript und Templates

Regionales Rechenzentrum für NiedersachsenT. Kröckertskothen | April 2005 | Folie 35

Werkzeuge zur Template-Bearbeitung

Überblick über die wichtigsten Werkzeuge zur Template-Bearbeitung

an Hand eines Standard-Templates

Page 36: TYPO3-Workshop TypoScript und Templates

Regionales Rechenzentrum für NiedersachsenT. Kröckertskothen | April 2005 | Folie 36

Template-Werkzeuge

Werkzeuge im Template-Module

Pull-down-Menü

Constant Editor Info/Modify TypoScript Objekt Browser (TSOB) Template Analyzer

Page 37: TYPO3-Workshop TypoScript und Templates

Regionales Rechenzentrum für NiedersachsenT. Kröckertskothen | April 2005 | Folie 37

TypoScript Object Browser (TSOB)

zeigt TypoScript-Objekte und Properties

Ändern, Hinzufügen von Properties Kontrolle und Anpassung bei der

TypoScript-Entwickling

Page 38: TYPO3-Workshop TypoScript und Templates

Regionales Rechenzentrum für NiedersachsenT. Kröckertskothen | April 2005 | Folie 38

Template Analyzer

Anzeigen der Template Hierarchie Quelltext

Page 39: TYPO3-Workshop TypoScript und Templates

Regionales Rechenzentrum für NiedersachsenT. Kröckertskothen | April 2005 | Folie 39

Admin-Panel

Admin-Panel – TypoScript

Page 40: TYPO3-Workshop TypoScript und Templates

Regionales Rechenzentrum für NiedersachsenT. Kröckertskothen | April 2005 | Folie 40

typnum – &id und &type

Jede Seite wird aufgerufen mit

http://domain/index.php?id=xx

wobei xx die Seiten-ID der Seite in Typo3 istZusätzlicher Parameter kann type sein:

http://domain/index.php?id=xx&type=n

n ist der Wert für den Ausgabetyp der Seite

Der Ausgabetyp wird mit der PAGE-Propertyp typeNum festgelegt

Standard-Wert ist 0 (und kann beim Aufruf entfallen)

Page 41: TYPO3-Workshop TypoScript und Templates

Regionales Rechenzentrum für NiedersachsenT. Kröckertskothen | April 2005 | Folie 41

page.typeNum

Beispiel:Zwei Ausgabe-Typen für eine Seite

page = PAGEpage.typeNum = 0page.bodyTag = <BODY bgColor="{$bgCol}">page.10 = HTMLpage.10.value = {$zf}page.10.value.case = upper

zweiteAusgabe = PAGE# BEACHTE SYNTAX {}zweiteAusgabe{ typeNum = 30 bodyTag = <BODY bgColor=yellow> 10 = TEXT 10.value = Ausgabe mit typeNum 30}

Aufrufhttp://domain/index.php?id=1&type=30