TIPO3:Como renderizo elementos de texto tt_content em minhas próprias extensões?
Pergunta
Atualmente estou escrevendo uma extensão TYPO3 que está configurada com uma lista de tt_content
UIDs.Eles apontam para elementos de conteúdo do tipo "texto" e quero renderizá-los pela minha extensão.
Por causa da maneira especial do TYPO3 de transformar o texto que você insere na edição rich text quando ele entra no banco de dados e transformá-lo novamente quando é renderizado no frontend, não posso apenas gerar o conteúdo do banco de dados do bodytext
campo.
Quero renderizar esses textos como normalmente seriam renderizados pelo TYPO3.Como faço isso?
Solução
Eu tive o mesmo problema há alguns meses.Agora devo dizer que não sou desenvolvedor typo3, então não sei se esta é a solução certa.
Mas usei algo assim:
$output .= $this->pi_RTEcssText( $contentFromDb );
na minha extensão e funciona.
Outras dicas
PHP
Isso funciona para mim;ele renderiza qualquer elemento de conteúdo com o ID fornecido:
function getCE($id)
{
$conf['tables'] = 'tt_content';
$conf['source'] = $id;
$conf['dontCheckPid'] = 1;
return $GLOBALS['TSFE']->cObj->cObjGetSingle('RECORDS', $conf);
}
Ver http://lists.typo3.org/pipermail/typo3-dev/2007-May/023467.html
Isso também funciona para plug-ins sem cache.Você obterá uma string como <!--INT_SCRIPT.0f1c1787dc3f62e40f944b93a2ad6a81-->
, mas o TYPO3 substituirá isso na próxima passagem de renderização INT pelo conteúdo real.
Fluido
Se você estiver em um modelo fluido, o VHS content.render
ver ajudante é útil:
<v:content.render contentUids="{0: textelementid}"/>
Se o seu elemento fluidcontent tiver uma grade, você poderá renderizar os elementos com o próprio fluxo content.get
ou content.render
ver ajudante:
<f:section name="Configuration>
... <flux:grid.column name="teaser"/> ...
</f:section>
<f:section name="Main>
<flux:content.render area="teaser"/>
<f:section>