Wenn in einem TYPO3 Datensatz, der mit der Extension Mask erstellt wurde, Inhalte aus den Seiteneigenschaften benötigt werden, so geht das mit dem TYPO3 „DatabaseQueryProcessor“.
Der Anwendungsfall sieht so aus:
im Maskelement werden Inhalte (Bild und Titel) angezeigt, die bereits in den Seiteneigenschaften für ein Menü der Unterseiten vorhanden sind. Genau genommen, soll es der Redakteurin frei stehen, die Inhalte aus den Seiteneigenschaften zu verwenden oder andere selbst einzugeben. Um im Maskelement überhaupt auf die Seiteneigenschaften zugreifen zu können, benötigt man folgendes Typoscript:
tt_content { mask_mymaskelement { dataProcessing.10 = database-query dataProcessing.10 { table = pages pidInList = 0 recursive = 99 uidInList = this as = pageproperties dataProcessing { 10 = files 10 { references.fieldName = media } } } } }
Man beachte, dass in Zeile 2 der Name des Maskelements angegeben werden muss.
In Zeile 3 muss, sofern nicht TYPO3 12 verwendet wird, folgendes stehen:
# Before TYPO3 v12.1 you have to specify the fully-qualified class name of the processor dataProcessing.10 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor # Since TYPO3 v12.1 one can also use the available alias
Wird kein Zugriff auf Seiteneigenschaften / Ressourcen benötigt, kann Zeile 10 – 15 weggelassen werden.
Und im Template des Maskelements kann man das dann folgendermaßen auslesen:
{pageproperties.0.data.fieldname}
Das Template „Mymaskelement.html“ könnte also etwa so aussehen:
<f:if condition="{data.tx_mask_image}"> <f:then> <f:for each="{data.tx_mask_image}" as="file"> <f:media file="{file}" width="200" /> </f:for> </f:then> <f:else> <f:media file="{pageproperties.0.files.0}" width="200" /> </f:else> </f:if> <f:if condition="{data.tx_mask_title}"> <f:then> {data.tx_mask_title} </f:then> <f:else> {pageproperties.0.data.title} </f:else> </f:if>
Links:
https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/ContentObjects/Fluidtemplate/DataProcessing/DatabaseQueryProcessor.html
https://github.com/Gernott/mask/blob/main/Documentation/Guides/DataProcessors.rst
https://stackoverflow.com/questions/44190848/access-page-properties-within-fluid-styled-content-element