题
我目前正在编写一个 TYPO3 扩展,它配置了一系列 tt_content
UID 的。这些指向“文本”类型的内容元素,我想通过我的扩展来呈现它们。
由于TYPO3的特殊方式是在进入数据库时对你在富文本编辑中输入的文本进行转换,并在渲染到前端时再次进行转换,所以我不能只输出数据库内容 bodytext
场地。
我想渲染这些文本,就像它们通常由 TYPO3 渲染一样。我怎么做?
解决方案
几个月前我也遇到了同样的问题。现在我必须说我不是typo3开发人员,所以我不知道这是否是正确的解决方案。
但我用了这样的东西:
$output .= $this->pi_RTEcssText( $contentFromDb );
在我的扩展中并且它有效。
其他提示
PHP
这对我行得通;它呈现具有给定 ID 的任何内容元素:
function getCE($id)
{
$conf['tables'] = 'tt_content';
$conf['source'] = $id;
$conf['dontCheckPid'] = 1;
return $GLOBALS['TSFE']->cObj->cObjGetSingle('RECORDS', $conf);
}
看 http://lists.typo3.org/pipermail/typo3-dev/2007-May/023467.html
这也适用于非缓存插件。你会得到一个像这样的字符串 <!--INT_SCRIPT.0f1c1787dc3f62e40f944b93a2ad6a81-->
, ,但 TYPO3 会在下一个 INT 渲染过程中将其替换为真实内容。
体液
如果您使用流体模板, 录像带 content.render
查看助手 很有用:
<v:content.render contentUids="{0: textelementid}"/>
如果您的 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>
不隶属于 StackOverflow