2017-02-09 3 views
1

Ich habe ein kleines Problem, ein benutzerdefiniertes Inhaltselement über Typoskript auf allen Seiten zu erhalten. Ich habe ein benutzerdefiniertes Element ohne Erweiterungen (wie Maske oder dce) erstellt, so dass ich nur TYPO3 Kernfunktionen verwendet. Dieses Element ist ein einfaches Ding, das einfach verwendet, um verschiedene Boxen zu erstellen, die im Frontend angezeigt werden.Benutzerdefiniertes Inhaltselement mit IRRE über Typoskript -> leeres Array

tt_content.box = COA 
tt_content.box { 
    10 = FLUIDTEMPLATE 
    10 { 
     file = EXT:xxx_elements/Resources/Private/Templates/Box.html 
     partialRootPath = EXT:xxx_setup/Resources/Private/Content/Partials 
     layoutRootPath = EXT:xxx_setup/Resources/Private/Content/Layouts 
     dataProcessing { 
      10 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor 
      10 { 
       table = tx_xxxelements_box 
       orderBy = sorting 
       where { 
        data = field:uid 
        intval = 1 
        wrap = tt_content=| 
       } 
       as = boxitems 
      } 
     } 
    } 
} 

mit normaler Flüssigkeit gemacht wie

<f:for each="{boxitems}" as="boxitem"> 
    <boxitem.header>... 
</f:for> 

so funktioniert alles gut, solange ich es als reguläres Inhaltselement verwenden, das auf einer Seite platziert wird. ich setzte jetzt ein Element in ein storagefolder und versuchen, dieses Element wieder zu verwenden auf allen Seiten über TypoScript wobei 10 die ID des Inhaltselement ist

lib.SubFooter = COA 
lib.SubFooter { 
    10 = RECORDS 
    10 { 
     tables = tt_content 
     source = 10 
    } 
} 

die lib richtig gemacht wird, aber die „boxitems“ Array ist leer auf allen Seiten :-(

jetzt der lustigen Teil: , wenn ich das Element mit der ID 10 auf einer Seite platzieren wird das boxitems Array für Element- und lib gefüllt ...

Hier ist ein Bild mit der Variablenspeicher für verschiedene Situationen: element, lib, element+lib

+0

Wie sieht Ihre SQL-Abfrage aus? Sie können die SQL-Abfragen im Frontend mit dem Admin-Panel debuggen. – pgampe

+0

das ist, was die SQL wie :-( Abfrage aussieht => ‚SELECT * FROM tx_xxxcontentelements_box WHERE tx_xxxcontentelements_box.pid IN (1) UND tt_content = 10 AND (tx_xxxcontentelements_box.sys_language_uid = 0) UND tx_xxxcontentelements_box.deleted = 0 < UND tx_xxxcontentelements_box.t3ver_state = 0 UND tx_xxxcontentelements_box.pid <> - 1 UND tx_xxxcontentelements_box.hidden = 0 UND tx_xxxcontentelements_box.starttime <= 1486999740 UND (tx_xxxcontentelements_box.endtime = 0 oder tx_xxxcontentelements_box.endtime> 1486999740) ORDER BY Sortierung ' – Jan

+0

das ist von der PID: 1 wenn wir In der Lib-Version wird nichts angezeigt, zumindest nichts, was mich in die richtige Richtung weisen könnte :-( – Jan

Antwort

0

Leider konnte ich keine zufriedenstellende Lösung für das Problem finden. Am Ende habe ich das Inhaltselement als normales Element anstelle von IRRE erstellt, dann funktioniert die Integration mit Typoscript wie erwartet.

0

vielleicht sind Sie nicht die pid ;-)

dataProcessing { 
     10 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor 
     10 { 
      .... 
      pidInList.field = pid 

und Sie können in diesem Fall die where-Klausel meiner Meinung nach Vereinfachung:

  where.dataWrap = tt_content={field:uid} 

weil Sie nicht passend gegen Vars von außen ...