Générer le rendu d’un contenu en TS et dans un plugin en TYPO3

Posté le 11-12-2009

Lorsqu’un contenu est créer sur une page son rendu est affiché en frontend automatiquement, c’est le principe même de la gestion de contenu. On peut parfois avoir besoin de récupérer le contenu d’un objet de type « tt_content » en typoscript ou dans un plugin PHP. Par exemple, lors du mapping sous templavoila, il est possible d’insérer un plugin dans un objet typoscript (ce qui permet d’avoir le plugin sur toutes les pages). Pour cela, il faut utiliser la propriété « RECORDS » du typoscript :

mon_objet_ts.10 = RECORDS
mon_objet_ts.10.source = 2908
mon_objet_ts.10.tables = tt_content

Ce code à pour effet de générer le contenu portant l’uid 2908 dans l’objet « mon_objet_ts ». Pour faire la même chose dans un plugin, il faut procéder de la manière suivante :

$cObjTemp = t3lib_div::makeInstance("tslib_cObj");
$objContent = array('tables' => 'tt_content','source' => 'tt_content_2908');
$content = $cObjTemp->RECORDS($objContent); 

La variable « $content » contient donc le contenu générer par la méthode « RECORDS ».

Il est enfin possible de générer n’importe quel objet à partir d’une configuration typoscript par défaut :

$conf = $GLOBALS['TSFE']->tmpl->setup['plugin.']['tx_monplugin_pi1.']; // récuperation de la configuration par défaut
$conf['pages'] = 18; // configuration spéciale du flexform/typoscript
$cObj = t3lib_div::makeInstance('tslib_cObj');
$cObj->start(array(),''); 
$objType = $GLOBALS['TSFE']->tmpl->setup['plugin.']['tx_monplugin_pi1'];
$content = $cObj->cObjGetSingle($objType,$conf);
comments powered by Disqus