[TYPO3-german] CONTENT

conPassione gmbh info at conpassione.ch
Tue Jun 12 15:06:52 CEST 2012


So, die Lösung habe ich jetzt.

Ich habe im AdminPanel gesehen, dass TYPO3 die Datenbank richtig
ausliest und auch die SQL-Query richtig absetzt. Nur das Rendering hat
nicht funktioniert mit einem Hinweis, dass ein Objekt nicht existieren
würde.
Aus einem uralten TYPO3 Buch hatte ich noch den Hinweis, dass für das
Auslesen einer DB immer ein TLO existieren müsse und dass CONTENT das
automatisch anbindet, falls es den gleichen Namen wie die DB hat.

In meinem Fall musste also ein Objekt tx_cpeinsatzmanager_db erstellt
werden.
Leider gab es keinen Hinweis darauf, was dieses Objekt können soll.

Da es etliche Beispiele für das Auslesen von Tabellen mit tt_content
gibt, schaute ich in die EXT css_styled_content und fand dort den
entscheidenen Hinweis:

Es ist also so:
Will man eine eigene Tabelle mit eigenen Daten auslesen, dann muss man
folgendes tun:
1. die Tabelle mit Hilfe des Kickstarters erzeugen. Damit werden alle
nötigen Felder erzeugt und auch die TCA.
2. man Braucht ein TLO mit dem gleichen Namen wie die Tabelle, welches
für das Rendering der Tabellen-Inhalte zuständig ist.
3. man braucht eine Objekt, das die Tabelle ausliest.

Zu 1:
Ich habe mir mit dem Kickstarter eine Extension tx_cpeinsatzmanager mit
der Haupttabelle tx_cpeinsatzmanager_db gemacht mit den Feldern
einsatzdatum, einsatz_ort, einsatz_klasse, einsatz_beginn_h gemacht.
Die Ext habe ich installiert.

Zu 2:
Ich habe mir ein TLO erstellt:
tx_cpeinsatzmanager_db>
tx_cpeinsatzmanager_db = COA
tx_cpeinsatzmanager_db {
  10 = TEXT
  10.field = einsatzdatum
  10.stdWrap.date = d.m.Y
  10.wrap = <td>|</td>

  20 = TEXT
  20.field = einsatz_ort
  20.wrap = <td>|</td>

  30 = TEXT
  30.field = einsatz_klasse
  30.wrap = <td>|</td>

  40 = TEXT
  40.field = einsatz_beginn_h
  40.wrap = <td>|</td>
  wrap = <tr>|</tr>
}

zu 3:
Ich habe mir ein lib-Objekt erstellt, das die Daten effektiv ausliest:
lib.cp_aktuelle_einsatzliste_kurz = COA
lib.cp_aktuelle_einsatzliste_kurz {
  10 = TEXT
  10.value (
    <table>
      <thead>
      <tr>
        <th>Datum</th>
        <th>Ort</th>
        <th>Klasse</th>
        <th>Zeit</th>
      </tr>
      </thead>
    )
  
  20 = CONTENT
  20 {
    table = tx_cpeinsatzmanager_db
    select {
      max=5
      pidInList=7
      orderBy = einsatzdatum desc
    }
    wrap = <tbody>|</tbody>
  }  
  
  30 = TEXT
  30.value = </table>    
}

Das ganze kann ich jetzt mit Hilfe der Ext: typoscript2ce als
lib.cp_aktuelle_einsatzliste_kurz irgendwo im Backend  als Inhalt in die
Seite einfügen.

Herzlichen Dank, allen die mir geholfen haben.
Gruss Renzo


_____________________________
Renzo Bauen
+41 79 330 10 11
conPassione gmbh 



Am Dienstag, den 12.06.2012, 11:45 +0200 schrieb Björn Pedersen: 

> On 12.06.2012 10:38, conPassione gmbh wrote:
> > Lieber Johannes, lieber Ralf-Rene
> > 
> > besten Dank für Eure Idee mit dem pidInList.
> > 
> > ich habe das jetzt versucht. Die Datensätze habe ich in einen Sysfolder
> > mit der ID 7, dh. ich habe meinen Code mit pidInList=7 ergänzt.
> > 
> > Cache gelöscht, Seite neu geladen.... Spannung.... sch .... onwieder
> > nichts!
> > Es will mir auch mit dem pidInList=7 oder =0 keinen Inhalt ausgeben.
> > 
> > Wenn ich mir die Datensätze direkt in MySQL anschaue, dann haben die
> > alle pid =7, deleted=0 und hidden=0.
> > Kann es sein, dass CONTENT nur Datensätze aus "original TYPO3 Tabellen"
> > ausgibt?
> > 
> > In der Doku steht nur, dass der Tabellenname mit "tx_", "fe_", "tt_",
> > etc. beginnen muss. Und das tut meine Tabelle ja.
> > Ich habe, damit keine Felder wie z.B. tstamp oder so fehlen, meine
> > Tabelle extra mit dem Kickstarter erzeugt.
> > 
> > Kann es ein, dass es noch irgendwelche Zugriffsberechtigungen gibt,
> > welche berücksichtigt werden müssen?
> > Langsam bin ich mit meinem Latein am Ende... 
> > 
> Hi,
> 
> Da du die Tabelle mit dem kickstarter angelget hast, sollte das passende
> TCA auch vorhanden sein. Aber ist es auch eingebunden? Um eigene
> Tabellen hinzuzufügen ist es immer sinnvoll, eine extesnion dafür zu
> verwenden (einfach per kickstarter).
> Ausserdem ist CONTENT glaube ich das flasche Objekt, records erscheint
> mir hier passender.
> Evt. ist aber auch die browser-extension
> (tutorial:http://typo3.org/extension-manuals/browser_tut_basics_en/current/)
>   schon genug, um das gewünschte zu erreichen?
> 
> björn
> 
> 
> 
> _______________________________________________
> TYPO3-german mailing list
> TYPO3-german at lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german




More information about the TYPO3-german mailing list