Zum Inhalt springen

Aus einer Tabellenspalte auslesen oder aus Records

Erstellt am 24. August 2009 · 1 Antwort · letzte Antwort am 25. August 2009

Tags: Kategorien, Frage

littlejoe ·

Hallo,
ich habe in einem Sysfolder Records angelegt, das sind meine Kategorien für eine Extension.
Ich möchte diese Kategorien auslesen, entweder aus dem Sysfolder oder aus der Tabelle, das ist egal.

Ich komm nur überhaupt nicht drauf wie ich das anpacken kann, bzw unten genannten Code anzupassen.

Ich kenne das Records auslesen mit:

temp.MARKER = CONTENT
temp.MARKER  {
             table = tt_content
             select {
                     where = colPos=0
                     orderBy = sorting
                     pidInList = 5
                     }
             }

Es müsste doch irgendwie so aussehen:

temp.MARKER = CONTENT
temp.MARKER  {
             table = tx_tabellenname
             select {
                     where = ???
                     orderBy = sorting
                     pidInList = Sysfoldername
                     }
             }

Das Ganze möchte ich eigentlich auch als Menü ausgeben, also möchte die Kategorien anklickbar machen.

Julian.​Hofmann ·

Hallo littlejoe.

Zur Abfrage via TS dient - wie Dus chon angefangen hast - select. Als Wert von pidInList wird allerdings eine Liste von page_ids erwartet - kein Name. D.h. hier brauchst Du die uid des Sysfolders.
Was Du als WHERE-Klausel benötigst, das hängt von Deiner Extension ab. Im einfachsten Fall kannst Du sie einfach weglassen, da TYPO3 versteckte oder durch Anfangs- und End-Zeiten zeitgesteuerte Datensätze selbstständig ausschließt.

Bis hierher hast Du nun aber erst die Daten aus der Tabelle geholt - aber noch nicht festgelegt, was damit geschehen soll. In Deinem Beispiel aus der Tabelle tt_content weißt TYPO3, wie Content darzustellen ist. Für eigene Datenarten musst Du das selber erst noch definieren. Dies geschieht über ein renderObj

temp.MARKER = CONTENT
temp.MARKER  {
  table = tx_tabellenname
  select {
    orderBy = sorting
    pidInList = 123
  }
  renderObj = COA
  renderObj {
    10 = TEXT
    10.wrap = UID des Record ist:|
    10.field = uid
    20 = TEXT
    20.field = title
  }
}

Viele Grüße
Julian