Editor 如何在TYPO3 RTE编辑器中禁用转换?
我为TYPO3 CMS创建了一个自定义扩展。 它基本上执行一些数据库查询以从数据库中获取文本。 正如我所看到的,TYPO3编辑器在将数据存储到数据库中之前会对数据进行转换,例如,对于许多这样的标记,链接Editor 如何在TYPO3 RTE编辑器中禁用转换?,editor,typo3,rte,Editor,Typo3,Rte,我为TYPO3 CMS创建了一个自定义扩展。 它基本上执行一些数据库查询以从数据库中获取文本。 正如我所看到的,TYPO3编辑器在将数据存储到数据库中之前会对数据进行转换,例如,对于许多这样的标记,链接被存储为我的链接文本,等等。 当我从数据库查询数据时,我得到的是存储在数据库中的数据(My Link Text) 因此,链接不会按应有的方式显示。它们显示为普通文本 据我所知,有两条路要走: 禁用RTE转换(如何实现?) 使用lib.parseFunc_RTE(我不知道如何正确配置它) 有什么想法
被存储为我的链接文本
,等等。
当我从数据库查询数据时,我得到的是存储在数据库中的数据(My Link Text
)
因此,链接不会按应有的方式显示。它们显示为普通文本
据我所知,有两条路要走:
谢谢。好吧,如果其他人遇到这个问题 我在扩展文件中使用
pi\u RTEcssText()
函数找到了一种解决方法:
$outputText=$this->pi_RTEcssText( $value['bodytext'] );
其中,$value['bodytext']
是从扩展名中的数据库查询中获取的字符串
此函数似乎处理数据并返回完整的HTML(包含链接、段落和其他标记)
注意:
如果还没有,则需要包含此文件:
require_once(PATH_tslib.'class.tslib_pibase.php');
在扩展名文件的顶部
基本上就是这样。好吧,如果其他人遇到这个问题 我在扩展文件中使用
pi\u RTEcssText()
函数找到了一种解决方法:
$outputText=$this->pi_RTEcssText( $value['bodytext'] );
其中,$value['bodytext']
是从扩展名中的数据库查询中获取的字符串
此函数似乎处理数据并返回完整的HTML(包含链接、段落和其他标记)
注意:
如果还没有,则需要包含此文件:
require_once(PATH_tslib.'class.tslib_pibase.php');
在扩展名文件的顶部
基本上就是这样。我猜您没有使用Extbase和Fluid?作为参考,如果扩展使用Extbase和Fluid,则可以使用Fluid渲染RTE中的文本:
<f:format.html>{bodytext}</f:format.html>
{bodytext}
这将使用lib.parseFunc_RTE将RTE文本呈现为HTML。您还可以告诉它使用不同的打字脚本对象进行渲染:
<f:format.html parseFuncTSPath="lib.my_parseFunc">{bodytext}</f:format.html>
{bodytext}
有用的文件:
<f:format.html>{bodytext}</f:format.html>
{bodytext}
这将使用lib.parseFunc_RTE将RTE文本呈现为HTML。您还可以告诉它使用不同的打字脚本对象进行渲染:
<f:format.html parseFuncTSPath="lib.my_parseFunc">{bodytext}</f:format.html>
{bodytext}
有用的文件:
- 我遇到了同样的问题,但使用EXTBASE时,函数“pi_RTEcssText”不再可用。也许是的,但我不知道怎么把它包括进去
总之,下面是我使用EXTBASE的解决方案:
$this->cObj = $this->configurationManager->getContentObject();
$bodytext = $this->cObj->parseFunc($bodyTextFromDb, $GLOBALS['TSFE']->tmpl->setup['lib.']['parseFunc_RTE.']);
这样我就得到了RTE格式的文本。我遇到了同样的问题,但使用EXTBASE时,函数“pi_RTEcssText”不再可用。也许是的,但我不知道怎么把它包括进去 总之,下面是我使用EXTBASE的解决方案:
$this->cObj = $this->configurationManager->getContentObject();
$bodytext = $this->cObj->parseFunc($bodyTextFromDb, $GLOBALS['TSFE']->tmpl->setup['lib.']['parseFunc_RTE.']);
通过这种方式,我可以获得RTE格式的文本。我通过配置包含的打字脚本来实现这一点:
# 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
}
}
#为非HTML内容创建持久的ParseFunc设置。建议使用(作为参考!)
lib.parseFunc{
makelinks=1
makelinks.http.keep={$styles.content.links.keep}
makelinks.http.extTarget
和拒绝标记链接:
# 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
}
}
denyTags=链路
剑=|
常数=1
nonTypoTagStdWrap.HTMLparser=1
非typotagstdwap.HTMLparser{
keepNonMatchedTags=1
htmlSpecialChars=2
}
}
我通过配置包含的打字脚本来实现:
# 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
}
}
#为非HTML内容创建持久的ParseFunc设置。建议使用(作为参考!)
lib.parseFunc{
makelinks=1
makelinks.http.keep={$styles.content.links.keep}
makelinks.http.extTarget
和拒绝标记链接:
# 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
}
}
denyTags=链路
剑=|
常数=1
nonTypoTagStdWrap.HTMLparser=1
非typotagstdwap.HTMLparser{
keepNonMatchedTags=1
htmlSpecialChars=2
}
}
无需此文件。TYPO3附带自动加载器。无需此文件。TYPO3附带自动加载器。感谢您对他人分享的良好态度。我不再使用Typo3了,因为我10个月前辞职了(我从来没有真正喜欢过Typo3,我的朋友是),但是分享你的解决方案可能会让其他人省去很多小时或几天的沮丧:)谢谢你为他人分享的良好态度。我不再使用打字错误3,因为我