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

XML

<pages type=”array”>
 <numIndex index=”1” type=”array”>
  <sql type=”array”>
   <select>uid AS id, name AS title</select>
   <from>main_categories</from>
   <groupby></groupby>
   <orderby>name</orderby>
  </sql>
  <doktype>1</doktype>

Listing 3

Die zweite Ebene wird auf die gleiche Art und Weise generiert (Listing 4). Der einzige Unterschied besteht darin, dass nun nicht alle Einträge der ausgewählten Tabelle verwendet werden sollen, sondern nur die, die zur übergeordneten Seite gehören. Diese Zuordnung geschieht über den Platzhalter „##pages[1][id]##“, der die ID des übergeordneten Datensatzes enthält.

XML

<pages type=”array”>
 <numIndex index=”1” type=”array”>
  <sql type=”array”>
   <select>uid AS id, name AS title</select>
   <from>tools</from>
   <where>category_id=’##pages[1][id]##’</where>
   <groupby></groupby>
   <orderby>uid</orderby>
  </sql>
  <doktype>1</doktype>

Listing 4

Im obigen Beispiel werden nur Werkzeuge aus der Tabelle „tools“ ausgewählt, deren Wert im Feld „category_id“ mit der „id“ der übergeordneten Seite (aus „main_categories“ erstellt) übereinstimmt. Zusätzlich sollen auf den Seiten der zweiten Ebene einige Content-Elemente erzeugt werden. Das geschieht mit einem „contents“-Block (Listing 5). Dieser ist ähnlich wie der „pages“-Block aufgebaut. Der wichtigste Unterschied besteht im <Ctype>- Tag, das angibt, welche Art Content-Element erstellt werden soll. In diesem Beispiel werden Content-Elemente vom Typ „text“ erstellt. Es lassen sich auch Content-Elemente anderer Typen wie Bilder oder Tabellen anlegen.

Seite:  1 2 3 4 5