Benutzer-Werkzeuge

Webseiten-Werkzeuge


typo3:about

Dies ist eine alte Version des Dokuments!


Über TYPO3

Hier halte ich die Funktionsweise von TYPO3 fest. Keine Snippets, sondern Grundsätzliches zum Verständnis des CMS. Gedacht als kleine Alternative zur TSref und dem offiziellen Wiki. Es sind nicht immer alle möglichen Eigenschaften aufgeführt, aber die relevanten (für mich) besser erklärt.


Install Tool
Caching
Datentypen
Top Level Objects (Setup)
Inhaltselemente (cObject)
Menü-Objekte
Funktionen
Conditions
Constants
TSconfig
RTE (rtehtmlarea)
Konfigurations-Tipps


Verzeichnisstruktur

Kern

index.phpDiese Datei sorgt für die Ausgabe aller in TYPO3 angelegten Seiten im Frontend.
t3libEnthält Klassen und Dateien, die im BE und FE eingebunden werden. Der Unterordner /stddb enthält das grundsätzliche Datenbank-Setup.
typo3Enthält den Quellcode für BE- und Administrationsbereich. In /classes liegen die Funktionalitäten in Klassen gekapselt. /contrib enthält externe Software und Frameworks wie modernizr und JSON, die von TYPO3 verwendet werden. In /ext liegen ggf. die global installierten Extensions, in /sysext die System-Extensions. Das Install Tool-Skript findet sich unter /install.

Instanzen

typo3confDieser Ordner hat verschiedene Inhalte. Im Hauptordner speichert TYPO3 die gesammelten Konfigurationen in temporären Dateien. Der Unterordner /ext enthält alle lokal installierten Extensions, im Unterordner /l10n liegen die Lokalisierungen von TYPO3.
typo3tempDient ausschließlich zur Aufnahme temporärer Dateien. Der Ordner kann inkl. Unterverzeichnisse komplett geleert werden - TYPO3 wird alle benötigten Dateien und Ordner neu aufbauen. Die temporären Dateien umfassen dynamisch erzeugte Grafiken, Sprachdateien, CSS und Javascript.
fileadminDas Verzeichnis, in dem Benutzer Dateien ablegen können. Üblicherweise werden hier die Dateien für das Frontend-Template (HTML, CSS, etc.) sowie Dateien der Redakteure gespeichert. Der Name ist theoretisch im Install Tool unter $TYPO3_CONF_VARS['BE']['fileadminDir'] änderbar (der entsprechende Ordner müsste allerdings noch manuell angelegt werden).
uploadsSpeicherort für Dokumente, die über ein Backendformular hochgeladen werden.

Der Kern von TYPO3 besteht aus den Verzeichnissen t3lib und typo3 sowie der index.php. Mit diesem Kern können mehrere Instanzen derselben TYPO3-Version betrieben werden. Aus diesem Grund gibt es auf der Download-Seite auf typo3.org neben der Komplettversion von TYPO3 auch das Paket 'Source' mit dem genannten Kern und das Paket 'Dummy' mit der Verzeichnisstruktur einer einzelnen TYPO3-Instanz. Über einen symbolischen Link (symlink) zum Kern-Verzeichnis werden die einzelnen Instanzen funktionstüchtig.

Vorteile dieser Betriebsweise:

  • Extensions können für alle Instanzen global im Verzeichnis typo3/ext/ installiert werden
  • Kern und Extensions brauchen nur einmal mit Sicherheitsupdates versorgt werden
  • Ein Upgrade der TYPO3-Version ist ebenfalls einfacher
  • Das Backup wird vereinfacht

Wichtige Datenbank-Tabellen

Datenbankfelder ausgewählter Tabellen
Wichtige Werte in Datenbanktabellen

pagesAlle Seiten und die Seitenstruktur.
tt_contentAlle Inhaltselemente.
be_users, be_groupsBackend-Benutzer bzw. -Gruppen inkl. der zugehörigen Einstellungen.
fe_users, fe_groupsFrontend-Benutzer bzw. -Gruppen inkl. der zugehörigen Einstellungen.
sys_be_shortcutsDie von BE-Benutzern angelegten Lesezeichen (→ Stern neben Cache).
cache_pagesDie gesamte generierte Seite im HTML-Format mit eventuellen Platzhaltern für USER_INT-Bereiche.
cachingframework_cache_*TYPO3 CMS 4.3 - 4.5: Teile des Caching-Framework, das von FLOW3 rückportiert wurde.
cf_cache_*Seit TYPO3 CMS 4.6: Das o.g. Caching-Framework (als neuer Standard).
fe_sessions, fe_session_dataSessioninformationen angemeldeter FE-Benutzer, falls Zugangsbeschränkungen auf Seiten gesetzt werden.
sys_templateDie angelegten TypoScript-Templates.

Glossar

TSFE

Die TypoScript Frontend Engine (TSFE) ist für die Auswertung von TypoScript verantwortlich. Sie analysiert das Array und kümmert sich um die daraus folgenden Aktionen.

$TCA

Das Table Configuration Array ($TCA) ist ein globales Array in TYPO3, das die Definition von DB-Tabellen ausbaut; jenseits dessen, was mit reinem SQL möglich ist. Vor allem definiert $TCA, welche Tabellen im Backend von TYPO3 editierbar sind. DB-Tabellen ohne entsprechenden Eintrag in $TCA sind im TYPO3-Backend nicht sichtbar. Die $TCA-Definition einer Tabelle deckt weiterhin die folgenden Eigenschaften ab:

  • Die Beziehungen zwischen dieser Tabelle und anderen Tabellen
  • Welche Datenbankfelder werden im Backend angezeigt und mit welchen Layout
  • Wie sind die Eigenschaften eines DB-Feldes (required, integer, etc.)

Dieses Array ist mit Extensions stark erweiterungsfähig. Extensions können Felder zu existierenden Tabellen hinzufügen und neue Tabellen erstellen.

Das $TCA wird zusammen mit weiteren globalen Variablen in t3lib/stddb/tables.php definiert. Diese Datei enthält allerdings nur den „Header“-Part, die volle Konfiguration erfolgt in weiteren PHP-Dokumenten im gleichen Ordner.

TCE

Typo3 Core Engine (TCE) ist die Klasse, die alle Daten in den DB-Tabellen verarbeitet, die im $TCA konfiguriert sind. Sie verarbeitet Befehle wie kopieren, verschieben, löschen, rückgängig, auch die Versionierung von Datensätzen und das Schreiben des sys_log wird von ihr übernommen. Grundsätzlich wird jede für die Verarbeitung bestimmte Option im $TCA Array von TCE erledigt.

Dies sorgt für die Datenintegrität innerhalb von TYPO3. Diese ist nicht gewährleistet, wenn direkt in $TCA-konfigurierte DB-Tabellen geschrieben wird. Ebenso werden die Beziehungen zu Dateien und anderen records verwaltet.

TCE benötigt einen Backend-Login, um zu funktionieren. Dies hat seinen Grund in der Tatsache, dass Berechtigungen natürlich überwacht werden und TCE einen BE-Benutzer benötigt, um diese Berechtigungen beurteilen zu können. Dies bedeutet auch, dass TCEmain nicht im Bereich des Frontends verwendet werden kann. So wird das Schreiben von Tabellen aus dem Frontend (z.B. Gästebucheinträge) ohne TCEmain durchgeführt.

TCE hat auch einen Teil, um Dateien zu handhaben. Dies beinhaltet das Kopieren, Verschieben, Löschen und Bearbeiten von Dateien und Verzeichnissen im fileadmin.

TCEMAIN

TCEFORM

t3lib

tslib

pibase und Extbase

Text wird noch ergänzt

Um TYPO3 mit eigenen Funktionen zu erweitern, bietet das CMS aktuell zwei API-Schnittstellen (Application Program Interface): Das ältere pibase und das neuere Extbase.

pibase

Stellt dem Entwickler eine umfangreiche Funktionsbibliothek zur Verfügung. Dieser hat die Wahl, ob er die angebotenen Funktionen nutzt.

Extbase

Ein Backport des Frameworks TYPO3 FLOW, welches für TYPO3 NEOS entwickelt wurde. Im Gegensatz zu pibase gibt Extbase eine klare Struktur vor.

typo3/about.1410551411.txt.gz · Zuletzt geändert: 2015/12/03 19:29 (Externe Bearbeitung)