von Søren Schaffstein, 03.12.2006

Dynamische Erstellung eines TYPO3-Seitenbaums aus externen Datenbanken: 10.000 Seiten in 15 Minuten

Aus dem
t3n Magazin Nr. 6

Die Daten der Seiten werden in einer externen Datenbank mit zwei Tabellen gespeichert. Die Tabelle „main_categories“ enthält die Kategorien und die Tabelle „tools“ beinhaltet alle Daten der Werkzeuge.

Die XML-Konfigurationsdatei

Die externe Beispiel-Datenbank besteht aus zwei einfachen Tabellen: „main_categories“ und „tools“.

Die externe Beispiel-Datenbank besteht aus zwei einfachen Tabellen: „main_categories“ und „tools“.

Bevor die eigentliche Arbeit beginnen kann, muss „ml_dbsync“ über den Extension-Manager installiert werden. Dabei können die Standardeinstellungen übernommen werden. Anschließend muss eine XML-Konfigurationsdatei für den Synchronisationsprozess erstellt werden. „ml_dbsync“ ermöglicht die Synchronisation mit beliebig vielen externen Datenbanken. Die importierten Daten können an jeder gewünschten Stelle im Seitenbaum eingefügt werden.

Wenn unterhalb einer Seite dynamische Inhalte eingefügt werden sollen, muss dafür eine eigene XML-Konfigurationsdatei erstellt werden. Im Internet ist eine komplette XML-Beispieldatei zu finden, die die Konfiguration dokumentiert [1]. Im Folgenden sind die wichtigsten Bereiche einer solchen Datei erklärt.

Zuerst werden innerhalb eines „database“-Blocks die Verbindungsparameter zur externen Datenbank festgelegt.

XML

<database type=”array”>
	<host>localhost</host>
	<username>root</username>
	<password></password>
	<database>t3_db_sync_data</database>
</database>

Listing 1

Ein optionaler „libraries“-Block erlaubt die Einbindung von PHP-Klassen, die spezielle Funktionen während des Synchronisationsprozesses zur Verfügung stellen können.

XML

<libraries type=”array”>
 <numIndex index=”0” type=”array”>
  <includeFile>fileadmin/data/php_libraries.inc</includeFile>
  <class>ux_importFunctions</class>
 </numIndex>
</libraries>

Listing 2

Der „pages“-Block ist der Hauptbestandteil der Datei und definiert, welche Felder der externen Datenbank welchen Feldern in der TYPO3-Datenbank zugeordnet werden sollen. Das erste Beispiel (Listing 3) erzeugt neue Seiten aus den Daten der externen Datenbanktabelle „main_categories“. Nur die Daten aus den Feldern „uid“ und „name“ werden benötigt und den Feldern „id“ und „title“ der TYPO3-Datenbank zugeordnet. Das geschieht über eine einfache, aber flexible SQL-Technik (Felder mit dem Schlüsselwort "AS" umbenennen). Das <doktype>-Tag gibt schließlich an, welchen Seitentyp die neu erstellten Seiten haben sollen.

Seite:  1 2 3 4 5