如何在TYPO3 RTE编辑器中禁用转换?

时间:2012-12-18 17:21:11

标签: editor typo3 rte

我为TYPO3 CMS创建了自定义扩展程序。 它基本上做了一些数据库查询来从数据库中获取文本。 正如我所看到的,TYPO3编辑器在将数据存储到数据库之前对数据进行转换,例如链接<a href="....." >Link</a>存储为<link href>My Link Text</link>等等,对于许多这样的标记都是如此。 当我从DB查询数据时,我得到它,因为它存储在DB(<link href>My Link Text</link>)中 所以链接不会显示出来。它们显示为普通文本..

据我所知,有两种方法:

  1. 禁用RTE转换(怎么做?)

  2. 使用lib.parseFunc_RTE(我不知道如何正确配置它)

  3. 任何想法? 感谢。

4 个答案:

答案 0 :(得分:3)

我猜你没有使用Extbase和Fluid?作为参考,如果您使用Extbase和Fluid作为扩展,您可以使用Fluid从RTE渲染文本:

<f:format.html>{bodytext}</f:format.html>

这使用lib.parseFunc_RTE将RTE文本呈现为HTML。您还可以告诉它使用不同的TypoScript对象进行渲染:

<f:format.html parseFuncTSPath="lib.my_parseFunc">{bodytext}</f:format.html>

有用的文档:

答案 1 :(得分:1)

我遇到了同样的问题,但是使用EXTBASE函数“pi_RTEcssText”不再可用了。好吧也许是,但我不知道如何包含它。

无论如何,这是我使用EXTBASE的解决方案:

$this->cObj = $this->configurationManager->getContentObject();
$bodytext = $this->cObj->parseFunc($bodyTextFromDb, $GLOBALS['TSFE']->tmpl->setup['lib.']['parseFunc_RTE.']);

这样我就可以获得RTE格式的文本。

答案 2 :(得分:1)

我已设法通过配置包含的typoscript

来实现
# Creates persistent ParseFunc setup for non-HTML content. This is recommended to use (as a reference!)
lib.parseFunc {
makelinks = 1
makelinks.http.keep = {$styles.content.links.keep}
makelinks.http.extTarget < lib.parseTarget
makelinks.http.extTarget =
makelinks.http.extTarget.override = {$styles.content.links.extTarget}
makelinks.mailto.keep = path
tags {
    link = TEXT
    link {
        current = 1
        typolink.parameter.data = parameters : allParams
        typolink.extTarget < lib.parseTarget
        typolink.extTarget =
        typolink.extTarget.override = {$styles.content.links.extTarget}
        typolink.target < lib.parseTarget
        typolink.target =
        typolink.target.override = {$styles.content.links.target}
        parseFunc.constants =1
    }
}
allowTags = {$styles.content.links.allowTags}

并拒绝标记链接

denyTags = link

sword = <span class="csc-sword">|</span>
constants = 1

nonTypoTagStdWrap.HTMLparser = 1
nonTypoTagStdWrap.HTMLparser {
    keepNonMatchedTags = 1
    htmlSpecialChars = 2
}
}

答案 3 :(得分:0)

好吧,如果有其他人遇到这个问题,

我在扩展程序文件中使用pi_RTEcssText()函数找到了一种解决方法

$outputText=$this->pi_RTEcssText( $value['bodytext'] );

其中$value['bodytext']是我从扩展中的数据库查询中获得的字符串。

此功能似乎处理数据并返回完整的HTML(包含链接,段落和其他标签)。

<强> 注意: 如果您还没有,则需要包含此文件:

require_once(PATH_tslib.'class.tslib_pibase.php');

位于扩展程序文件的顶部。

基本上就是这样。