我正在编写一个TYPO3扩展,它配置了一个tt_contentUID 列表.这些指向"text"类型的内容元素,我想通过我的扩展来呈现它们.
由于TYPO3s特殊的方式转换您在进入数据库时在富文本编辑中输入的文本,并在渲染到前端时再次转换它,我不能只输出该bodytext字段的数据库内容.
我想渲染这些文本,因为它们通常会被TYPO3渲染.我怎么做?
这对我行得通; 它呈现具有给定ID的任何内容元素:
function getCE($id)
{
$conf['tables'] = 'tt_content';
$conf['source'] = $id;
$conf['dontCheckPid'] = 1;
return $GLOBALS['TSFE']->cObj->cObjGetSingle('RECORDS', $conf);
}
Run Code Online (Sandbox Code Playgroud)
请参阅http://lists.typo3.org/pipermail/typo3-dev/2007-May/023467.html
这也适用于非缓存插件.你会得到一个类似的字符串<!--INT_SCRIPT.0f1c1787dc3f62e40f944b93a2ad6a81-->,但TYPO3将在下一个INT渲染过程中用真实内容替换它.
如果您在流体模板中,VHS content.render视图助手很有用:
<v:content.render contentUids="{0: textelementid}"/>
Run Code Online (Sandbox Code Playgroud)
如果您的fluidcontent元素本身有一个网格,您可以使用flux'自己content.get或content.render查看助手来渲染元素:
<f:section name="Configuration>
... <flux:grid.column name="teaser"/> ...
</f:section>
<f:section name="Main>
<flux:content.render area="teaser"/>
<f:section>
Run Code Online (Sandbox Code Playgroud)
几个月前我遇到了同样的问题.现在我必须说我不是开发人员,所以我不知道这是不是正确的解决方案.
但是我使用了这样的东西:
$output .= $this->pi_RTEcssText( $contentFromDb );
在我的扩展中,它的工作原理.