Tutorials
Einige nützliche Hilfen und Code-Schnipsel, die ich immer wieder benötige und deshalb hier für alle sammle.
Zurück zur Übersicht
TYPO3: ViewHelper zum rendern von tt_content anhand der Uid
#Tutorials#TYPO3#PHP
Um in Fluid tt_content Elemente anhand ihrer UID fertig gerendert auszugeben, benötigt man einen kleinen ViewHelper. Dieser ruft das RecordsContentObject auf und rendert dieses anhand einer Konfiguration heraus. In diesem Beispiel funktioniert das Ganze mit tt_content und der Uid eines tt_content Datensatzes.
Der ViewHelper Code:
<?php
namespace Vendor\Artest\ViewHelpers;
/**
* ViewHelper zur Rückgabe eines geparsten tt_content Elementes
*/
class ContentViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper {
// output html since TYPO3 8LTS
protected $escapeOutput = false;
/**
* Parse content element
*
* @param int UID des Content Element
* @return string Geparstes Content Element
*/
public function render($uid) {
$conf = array( // config
'tables' => 'tt_content',
'source' => $uid,
'dontCheckPid' => 1
);
return $this->objectManager->get('TYPO3\CMS\Frontend\ContentObject\RecordsContentObject')->render($conf);
}
}
Kommentare
"Maximum function nesting level of '400' reached, aborting!"
<f:for each="{contents}" as="content">
<f:if condition="{content.casestudy}=={caseStudy.uid} || {content.casestudy}=={l10parent}">
<f:format.raw><m:Content uid="{content.uid}" /></f:format.raw>
</f:if>
</f:for>
Irgendwas wie das hier ...
'templateName' => 'Contents/Boxenteaser',
Grüße André
Also etwa so wie in Typoscript:
xmLib.xmBoxenteaser = COA
xmLib.xmBoxenteaser.10 = CONTENT
xmLib.xmBoxenteaser.10.renderObj.textmedia.templateName = xmBoxenteaser
Viele Grüße, Hans
Hinterlasse einen Kommentar