Certified TYPO3 Integrator: Unterschied zwischen den Versionen
| (7 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
| Zeile 93: | Zeile 93: | ||
wiederkehrende Namen (title etc.) | wiederkehrende Namen (title etc.) | ||
| + | |||
| + | == Templates == | ||
| + | Differenzieren zw. HTML und TS | ||
| + | === TypoScript Template === | ||
| + | Root oder Extension | ||
| + | |||
| + | ==== Template Tools ==== | ||
| + | Info/Modify, Constant Editor, Object Browser, Template Analyser | ||
| + | |||
| + | Template ist ein Datensatz | ||
| + | |||
| + | == TypoScript == | ||
| + | Assoziatives Array, keine Programmiersprache eher Konfiguration, weniger Objekt als Strukturierte Information (hierarchisch) | ||
| + | |||
| + | Objektpfad, Wert | ||
| + | |||
| + | liegt am Ende alles im TSFE (komplettes Frontend) | ||
| + | |||
| + | (weitere Objekte TCA, ConfVars, Globals TYPO3DB...) | ||
| + | |||
| + | * Unbekannte Teile werden ignoriert | ||
| + | * Durch TS wird irgendwann PHP ausgeführt. | ||
| + | * Der zuletzt definierte Wert gilt | ||
| + | Gglobalstsfe->pSetup... Funktion | ||
| + | * objektpfad - operator wert | ||
| + | page=PAGE | ||
| + | |||
| + | === Operatoren === | ||
| + | <pre> | ||
| + | = Zuweisen | ||
| + | := modifizieren | ||
| + | > löschen | ||
| + | < kopieren | ||
| + | =<Referenz | ||
| + | </pre> | ||
| + | === Kommentare === | ||
| + | #, /, //, /* */ | ||
| + | |||
| + | Müssen immer in der ersten Zeile stehen. Wenn danach wird auch das davor ignoriert | ||
| + | === Syntax === | ||
| + | * Verkürzen durch geschweifte Klammer | ||
| + | * runde Klammer für mehrere Zeilen (dann ohne = und nach öffnen der neuen Klammer neue Zeile und Endklammer in eigene Zeile) | ||
| + | |||
| + | === Top Level Objekte (TLO) und CONTENT Objekten (CO) === | ||
| + | ==== TLO === | ||
| + | Findet man unter Setup in der TSREF | ||
| + | Braucht man eins bevor überhaupt was geht z.B. | ||
| + | |||
| + | CONFIG | ||
| + | |||
| + | gibt es allein, gilt dann für alles oder als sub zu pageObjekte, gilt dann nur für die betreffende Seite. | ||
| + | |||
| + | PAGE (muß verwendet werden) | ||
| + | |||
| + | ==== PAGE Objekt ==== | ||
| + | page=PAGE | ||
| + | ist eigentlich schon eine Seite aber wegen einem Bug muß zumindest eine weitere Zeile mit | ||
| + | page.irgendwas = irgendwas | ||
| + | kommen | ||
| + | |||
| + | Unterschied HTML / TEXT | ||
| + | HTML: darauf value und darauf stdWrap | ||
| + | TEXT: value und parallel dazu wrap | ||
| + | |||
| + | TEXT Objekt kann auch HTML besser TEXT verwenden durch paralleles verwendne kann man den Inhalt besser wieder verwenden. Historisch ist TEXT das neuere. | ||
| + | |||
| + | IMAGE, IMG_RESOURCE | ||
| + | |||
| + | ==TEMPLATE== | ||
| + | |||
| + | Marker und Subparts | ||
| + | kommt ein Marker zweimal vor wird es automatisch ein Subpart. Kommentare sind nur da damit er nicht versehentlich angezeigt wird. auch begin und end ist nicht notwendig. | ||
| + | |||
| + | Beispiel: | ||
| + | |||
| + | <pre> | ||
| + | // Beim includieren könne man auch EXT: statt FILE: nehmen | ||
| + | // Includieren funktioniert auch in PageTS und UserTS und in den Files selber | ||
| + | //<INCLUDE_TYPOSCRIPT:source="FILE:fileadmin/ts/setup.ts"> | ||
| + | page = PAGE | ||
| + | page{ | ||
| + | 10 = TEMPLATE | ||
| + | 10{ | ||
| + | // TEMPLATE hat die Eigenschaft template, die ein CObject bekommt | ||
| + | // Wir nehmen ein CObject vom Typ FILE | ||
| + | // Ein FILE-Objekt hat die Eigenschaft file vom Typ resource (Pfad zu Datei) | ||
| + | template = FILE | ||
| + | template.file = fileadmin/site/index.html | ||
| + | // workOnSubpart sorgt dafür das nur ein bestimmter Teil (hier DOCUMENT) für die Ausgabe genommen wird. | ||
| + | workOnSubpart = DOCUMENT | ||
| + | marks{ | ||
| + | HEADERTEXT = TEXT | ||
| + | HEADERTEXT.value = Ein Marker mit dem Namen HEADERTEXT | ||
| + | } | ||
| + | } | ||
| + | </pre> | ||
| + | |||
| + | ==TypoScript== | ||
| + | Statisches TypoScript, Includiert, in der Datenbank oder als Text File | ||
| + | == stdWrap == | ||
| + | get -> Daten holen | ||
| + | |||
| + | die wichtigsten sind | ||
| + | === field === | ||
| + | field -> damit holt man alle Felder einer Seite (title etc.) | ||
| + | <pre> | ||
| + | MARKER = TEXT | ||
| + | MARKER.field = title | ||
| + | </pre> | ||
| + | |||
| + | === data === | ||
| + | Vom Typ getText kann auf fast alles zugreifen | ||
| + | <pre> | ||
| + | FOOTERTEXT = TEXT | ||
| + | //so | ||
| + | FOOTERTEXT.data = date : Y | ||
| + | FOOTERTEXT.wrap = © | | ||
| + | |||
| + | // oder mit dataWrap werden Teile in {} wie mit data ausgewertet | ||
| + | FOOTERTEXT.dataWrap = ©: {date:Y} by {field:author} | ||
| + | |||
| + | </pre> | ||
| + | |||
| + | |||
| + | override / conditions | ||
| + | -> Bedingungen | ||
| + | |||
| + | parseData | ||
| + | ->verändern | ||
| + | |||
| + | === Weitere Tipps === | ||
| + | außer bei den Datentypen auch immer in den Functions der TSREF suchen | ||
| + | levelfield Absolut gezählt = Position in Rootline von Root seite aus gezählt 1,2,3 | ||
| + | |||
| + | 0 ist Weltkugel | ||
| + | |||
| + | relativ gezählt -1,-2,-3 (-1 ist immer die Seite auf der ich mich gerade befinde) | ||
| + | |||
| + | slide rutsche solange in richtung rootseite bis du was findest.# | ||
Aktuelle Version vom 18. März 2010, 12:29 Uhr
Infos aus dem Kurs Certified Typo3 Integrator[Bearbeiten]
17.3. und 18.3.2011 Kurs bezieht sich auf Version 4.2.x
Installation[Bearbeiten]
Install Tool
- disabled
- Sicherheit (misc Verzeichnis mit superadmin, entwicklertools) besser löschen
- Verzeichnisse
- fileadmin -> für den Benutzer
- uploads -> sollte immer automatisch von typo3 bedient werden nie manuell
- Gefahren: Referenz Index zerstört, automatische umbenennungen
- Kern eins vor
- typo3conf
- extTables.php -> metadaten für formulardarstellung im be
- extension vezeichnis (ext)
Install Tool[Bearbeiten]
Evtl. im Livebetrieb weg wg. Sicherheit
"Edit files in typo3conf/"
Möglichkeit die localconf.php zu bearbeiten. Sinnvoll z.B um nicht funktionierende Extensions wieder auszubauen. Cache löschen nicht vergessen.
Fragen: - wo macht man was? - dev ipmask - wie kommt man an externe Files (fopen, curl)
Basic Configuration[Bearbeiten]
Encryption key: wichtig z.B. für salted Passwords. Nicht verändert
Auch wichtig gleich alles auf utf-8 umstellen (besser Datenbank kopieren.
- Datenbank, Tabellen
- Speicherung der Daten
- Datenbankverbindung
Database Analyser[Bearbeiten]
- Compare - Admin User
Version z.B. 4.2.11 MajorVersion . Compatibility Version . PatchVersion
All Configuration[Bearbeiten]
Extensions[Bearbeiten]
Systemextensions -> auf die Version angepasst => nicht verändern sind in typo3 sysext
Sie sind teil des Systems. Kann man praktischerweise abschalten (Performance)
- Systemextension "cms"
- Globale Extensions
Diese sind Teil des Cores
für Globale Extensions kann man da sie Teil des Kerns sind für mehrere Installationen nehmen.
Sie können aber trotzdem lokal installiert werden (weil das ja in localconf.php passiert)
Bei überschneidungen gilt Reihenfolge System dann Global dann Lokal (lokal überschreibt z.B. Global)
Sicherheit[Bearbeiten]
milworm für Übersicht
Backend[Bearbeiten]
Caching[Bearbeiten]
- Page Content Cache -> Datenbank
- Configuration Cache -> Cache Dateien in localconf.php
Struktur[Bearbeiten]
- 3 Teilung, von links nach rechts arbeiten (als Tipp)
- Hauptmodule für Inhalte (List,Page)
- Seitenbaum
- WEltkugel -> nur Admin, bestimmte Datensätze, uid=0,
- alles ist Tabelle und wird auf den Datenbaum projiziert (uid und pid)
- Wo kann man Seiteneigenschaften einstellen (Pagemodul, Seiteneigenschaften Button, Listmodul, Kontextmenü)
Module[Bearbeiten]
- Redakteur Bereich
- Admin Bereich
Extension Manager[Bearbeiten]
Reviewed Extensions, Shy Extensions, Obsolete, Was passiert? Warum sehe ich meine Extension nicht, TER
Deinstallieren nützt nichts bei Hacken -> delete, wo geht das? Wo melde ich (Security-) Bugs (Team)
Name von Extensions
Grundsätzliches zu Tabellen[Bearbeiten]
Namen, pid, uid, sorting, hidden, deleted
wiederkehrende Namen (title etc.)
Templates[Bearbeiten]
Differenzieren zw. HTML und TS
TypoScript Template[Bearbeiten]
Root oder Extension
Template Tools[Bearbeiten]
Info/Modify, Constant Editor, Object Browser, Template Analyser
Template ist ein Datensatz
TypoScript[Bearbeiten]
Assoziatives Array, keine Programmiersprache eher Konfiguration, weniger Objekt als Strukturierte Information (hierarchisch)
Objektpfad, Wert
liegt am Ende alles im TSFE (komplettes Frontend)
(weitere Objekte TCA, ConfVars, Globals TYPO3DB...)
- Unbekannte Teile werden ignoriert
- Durch TS wird irgendwann PHP ausgeführt.
- Der zuletzt definierte Wert gilt
Gglobalstsfe->pSetup... Funktion
- objektpfad - operator wert
page=PAGE
Operatoren[Bearbeiten]
= Zuweisen := modifizieren > löschen < kopieren =<Referenz
Kommentare[Bearbeiten]
#, /, //, /* */
Müssen immer in der ersten Zeile stehen. Wenn danach wird auch das davor ignoriert
Syntax[Bearbeiten]
- Verkürzen durch geschweifte Klammer
- runde Klammer für mehrere Zeilen (dann ohne = und nach öffnen der neuen Klammer neue Zeile und Endklammer in eigene Zeile)
Top Level Objekte (TLO) und CONTENT Objekten (CO)[Bearbeiten]
= TLO[Bearbeiten]
Findet man unter Setup in der TSREF Braucht man eins bevor überhaupt was geht z.B.
CONFIG
gibt es allein, gilt dann für alles oder als sub zu pageObjekte, gilt dann nur für die betreffende Seite.
PAGE (muß verwendet werden)
PAGE Objekt[Bearbeiten]
page=PAGE
ist eigentlich schon eine Seite aber wegen einem Bug muß zumindest eine weitere Zeile mit
page.irgendwas = irgendwas
kommen
Unterschied HTML / TEXT
HTML: darauf value und darauf stdWrap TEXT: value und parallel dazu wrap
TEXT Objekt kann auch HTML besser TEXT verwenden durch paralleles verwendne kann man den Inhalt besser wieder verwenden. Historisch ist TEXT das neuere.
IMAGE, IMG_RESOURCE
TEMPLATE[Bearbeiten]
Marker und Subparts kommt ein Marker zweimal vor wird es automatisch ein Subpart. Kommentare sind nur da damit er nicht versehentlich angezeigt wird. auch begin und end ist nicht notwendig.
Beispiel:
// Beim includieren könne man auch EXT: statt FILE: nehmen
// Includieren funktioniert auch in PageTS und UserTS und in den Files selber
//<INCLUDE_TYPOSCRIPT:source="FILE:fileadmin/ts/setup.ts">
page = PAGE
page{
10 = TEMPLATE
10{
// TEMPLATE hat die Eigenschaft template, die ein CObject bekommt
// Wir nehmen ein CObject vom Typ FILE
// Ein FILE-Objekt hat die Eigenschaft file vom Typ resource (Pfad zu Datei)
template = FILE
template.file = fileadmin/site/index.html
// workOnSubpart sorgt dafür das nur ein bestimmter Teil (hier DOCUMENT) für die Ausgabe genommen wird.
workOnSubpart = DOCUMENT
marks{
HEADERTEXT = TEXT
HEADERTEXT.value = Ein Marker mit dem Namen HEADERTEXT
}
}
TypoScript[Bearbeiten]
Statisches TypoScript, Includiert, in der Datenbank oder als Text File
stdWrap[Bearbeiten]
get -> Daten holen
die wichtigsten sind
field[Bearbeiten]
field -> damit holt man alle Felder einer Seite (title etc.)
MARKER = TEXT MARKER.field = title
data[Bearbeiten]
Vom Typ getText kann auf fast alles zugreifen
FOOTERTEXT = TEXT
//so
FOOTERTEXT.data = date : Y
FOOTERTEXT.wrap = © |
// oder mit dataWrap werden Teile in {} wie mit data ausgewertet
FOOTERTEXT.dataWrap = ©: {date:Y} by {field:author}
override / conditions
-> Bedingungen
parseData ->verändern
Weitere Tipps[Bearbeiten]
außer bei den Datentypen auch immer in den Functions der TSREF suchen
levelfield Absolut gezählt = Position in Rootline von Root seite aus gezählt 1,2,3
0 ist Weltkugel
relativ gezählt -1,-2,-3 (-1 ist immer die Seite auf der ich mich gerade befinde)
slide rutsche solange in richtung rootseite bis du was findest.#