2017-05-05 4 views
1

Wir haben ein neues Feld in tt_contents und innerhalb von TCA in alle Inhaltselemente eingefügt. Abhängig vom Wert in diesem Feld möchten wir steuern, ob das Element gerendert werden soll oder nicht.TYPO3 Bearbeiten von Inhaltselementen vor dem Rendern

Das Verhalten ähnelt der Inhaltselementzugriffssteuerung für FE-Benutzer.

Ich suche nach einem Haken oder einer Idee, wie man das löst. Leider konnte ich in felogin nichts hilfreiches finden, auch habe ich die folgenden Hooks ausprobiert.

contentPostProc 
render-preProcess 

System Information:

  • TYPO3: 6.2.19
  • Flux: 7.2.3
  • Fluidpages: 3.3.1

Wäre absolut genial, wenn jemand könnte zeig mir eine Richtung, danke.

aktualisieren:
hatte sich von einem neuen Feld in der tt_contents Tabelle, auf eine mm Beziehungstabelle zu ändern. Dies macht es komplexer, da die Tabellen zusammengefügt werden müssen.

aktualisieren:
Da es mehrere Lösungen gibt, habe ich versucht, eine Menge, aber am Ende mit dem getRecordOverlay Haken. In der Schnittstelle PageRepositoryGetRecordOverlayHookInterface, die verwendet werden soll, finden Sie eine Methode für einen Pre- und Post-Hook.

Antwort

1

Mit dem alten TYPO3 - ich glaube, Sie verwenden css_styled_content. Sie können einfach ein neues Feld (z. B. ein Kontrollkästchen) zu tt_content mit Ihrer eigenen Erweiterung und einigen TCA-Zeilen hinzufügen (ich denke, Sie wissen, wie Sie dies einfügen). Danach konnte man styles.content.get erweitern - so etwas wie `` `

styles.content.get = CONTENT 
styles.content.get { 
    table = tt_content 
    select.orderBy = sorting 
    select.where = colPos=0 and yourfield=1 
    select.languageField = sys_language_uid 
} 
lib.yourcontent < styles.content.get 
+0

derzeit kann ich mir nicht vorstellen, wie ich diese Lösung implementieren könnte. Ich habe gesehen, wo links und rechts wegen der colPos geändert wird. Wenn ich das wo mit meinem Check überschreiben würde und auch einen Join für die mm-Tabelle machen würde, würde es das System vermasseln, denke ich. –

+0

nachdem ich dies in typo3 slack besprochen habe, weiß ich, wie man damit umgeht, aber da ich vhs zum Rendern verwende, wird das nicht funktionieren. Was würde eigentlich funktionieren, wenn ich meinen eigenen View-Helfer einsetze, anstatt '' v: content.render column = "0" /> ' –

2

Sie konnten einen Blick auf die enableFields Haken haben.

https://github.com/TYPO3/TYPO3.CMS/blob/084e22c249aef27755ddc88038daedcae81f1068/typo3/sysext/frontend/Classes/Page/PageRepository.php#L1332

Sie können die Abfrage anpassen, die verwendet wird Content-Element zu erhalten.

+0

zu verwenden. Das klang sehr vielversprechend, aber ich konnte nur einen 'hook_checkEnableFields'-Hook finden, der für Seiten ist nur und scheint überhaupt nicht ausgelöst in meinem typo3 -.- –

+0

tatsächlich mit 'addEnableColumns' Hook scheint mir ziemlich vielversprechend, leider scheint dies keine Joins zu verschiedenen Tabellen zu erlauben. –

+0

Was denken Sie über die Verwendung von 'postUserFunc' oder' stdWrap' Hook für diese Aufgabe? –

Verwandte Themen