6

我目前正在编写一个配置有tt_contentUID 列表的 TYPO3 扩展。这些指向“文本”类型的内容元素,我想通过我的扩展来呈现它们。

由于 TYPO3 在富文本编辑中输入的文本进入数据库时​​转换的特殊方式,并在呈现到前端时再次进行转换,因此我不能只输出bodytext字段的数据库内容。

我想渲染这些文本,因为它们通常会由 TYPO3 渲染。我怎么做?

4

2 回答 2

10

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 渲染过程中用真实的内容替换它。

体液

如果您使用的是流体模板,则VHScontent.render视图助手很有用:

<v:content.render contentUids="{0: textelementid}"/>

如果您的流体内容元素本身有一个网格,您可以使用通量自己的content.getcontent.render视图帮助器渲染元素:

<f:section name="Configuration>
    ... <flux:grid.column name="teaser"/> ...
</f:section>
<f:section name="Main>
    <flux:content.render area="teaser"/>
<f:section>
于 2010-04-07T13:31:30.413 回答
6

几个月前我遇到了同样的问题。现在我必须说我不是typo3开发人员,所以我不知道这是否是正确的解决方案。

但我使用了这样的东西:

$output .= $this->pi_RTEcssText( $contentFromDb );

在我的扩展中,它可以工作。

于 2008-09-16T11:09:52.453 回答