Certified TYPO3 Integrator

Aus Wikizone
Wechseln zu: Navigation, Suche

Infos aus dem Kurs Certified Typo3 Integrator

17.3. und 18.3.2011 Kurs bezieht sich auf Version 4.2.x

Installation

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

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

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

- Compare - Admin User

Version z.B. 4.2.11 MajorVersion . Compatibility Version . PatchVersion

All Configuration

Extensions

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

milworm für Übersicht

Backend

Caching

  • Page Content Cache -> Datenbank
  • Configuration Cache -> Cache Dateien in localconf.php

Struktur

  • 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

  • Redakteur Bereich
  • Admin Bereich

Extension Manager

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

Namen, pid, uid, sorting, hidden, deleted

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

 = Zuweisen
:= modifizieren
> löschen
< kopieren
=<Referenz 

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:

// 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

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.)

MARKER = TEXT
MARKER.field = title

data

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

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)

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.#