Certified TYPO3 Integrator

Aus Wikizone
Version vom 18. März 2010, 12:29 Uhr von 193.196.133.220 (Diskussion) (→‎Weitere Tipps)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

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 = &copy: {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.#