2016-03-19 18 views
0

In TYPO3 7.6 würde ich gerne Datensätze von einer anderen (= beliebigen) Seite in einer Fluidtemplate nachschlagen.Nachschlagen eines Datensatzes mit Fluid DatabaseQueryProcessor - ohne PID

Basierend auf https://docs.typo3.org/typo3cms/TyposcriptReference/ContentObjects/Fluidtemplate/Index.html, habe ich versucht, DatabaseQueryProcessor:

renderObj = FLUIDTEMPLATE 
    renderObj { 
    file = {$fluidPartialsPath}/Debug.html 
    dataProcessing { 
     20 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor 
     20{ 
     # regular if syntax 
     if.isTrue.field = records 

     table = tt_content 
     # quick&dirty to see the SQL table 
     # where = stubrdebug 

     # will pass these in programmatically later 
     colPos = 1 
     uidInList = 5 
     # this doesn't work 
     pidInList = * 

     as = myrecords 

     dataProcessing { 
      10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor 
      10 { 
      references.fieldName = image 
      } 
     } 
     } 

    } 
    } 

Das Problem ist, dass wählen Sie fragt immer für eine pid oder eine der aktuellen Seite hinzufügen. Es verhält sich also wie ein CONTENT Objekt.

Wie kann ich die PID in der Abfrage weglassen?

Alle Antworten, die ich google zeigen konnte einfach mit RECORDS - aber ich sehe nicht, wie ich das in dataProcessing tun könnte. Gibt es einen Weg?

PS in einem größeren Maßstab: Ich würde gerne Fluid_styled_contents "Einfügen von Datensätzen" Content Element verwenden, um andere benutzerdefinierte Typen in die aktuelle Seite einzufügen (= nicht von fsc). Ich versuche, einen eigenen Weg dafür zu finden. Bitte sagen Sie mir, ob das keinen Sinn ergibt und/oder ob es einen einfacheren Weg gibt, als alles von Grund auf neu zu erstellen.

Antwort

1

Soweit ich sagen kann, dataProcessing funktioniert nur auf die aktuelle $data Variable, die vor, z. von einem CONTENT Objekt.

Das CONTENT Objekt verwendet die select Funktion, um Daten zu erhalten, daher müssen Sie die pidInList Eigenschaft verwenden, um den Bereich der Seiten zu konfigurieren, die berücksichtigt werden. Datensätze ohne eine Seite sollten in der root (pid=0) leben und können mit dem Schlüsselwort root ausgewählt werden.

Wenn Sie eine Insert Records Funktionalität erstellen möchten, sollten Sie bereits eine Liste von uid aus Ihren Datensätzen haben. Dann können Sie einfach das Objekt RECORDS verwenden, um den spezifischen Datensatz zu rendern, egal auf welcher Seite er sich befindet.

+0

Ich verstehe: Ich habe das falsche Werkzeug verwendet. Ich denke, ich sehe, wie ich es jetzt bauen muss und werde posten, was ich habe, wenn ich es habe – Urs

+0

und was hast du? ;-) Ich bin interessiert.. – Falk