我目前正在编写一个 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>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top