繁体   English   中英

TYPO3:如何在我自己的扩展中呈现tt_content文本元素?

[英]TYPO3: How do i render tt_content text elements in my own extensions?

我正在编写一个TYPO3扩展,它配置了一个tt_content UID列表。 这些指向“text”类型的内容元素,我想通过我的扩展来呈现它们。

由于TYPO3s特殊的方式转换您在进入数据库时​​在富文本编辑中输入的文本,并在渲染到前端时再次转换它,我不能只输出bodytext字段的数据库内容。

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

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

流体

如果您使用的是流体模板,则VHS content.render视图助手非常有用:

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

如果您的fluidcontent元素本身有一个网格,您可以使用flux'自己的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>

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

但是我使用了这样的东西:

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

在我的扩展中,它的工作原理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM