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

Editor 如何在TYPO3 RTE编辑器中禁用转换?,editor,typo3,rte,Editor,Typo3,Rte,我为TYPO3 CMS创建了一个自定义扩展。 它基本上执行一些数据库查询以从数据库中获取文本。 正如我所看到的,TYPO3编辑器在将数据存储到数据库中之前会对数据进行转换,例如,对于许多这样的标记,链接被存储为我的链接文本,等等。 当我从数据库查询数据时,我得到的是存储在数据库中的数据(My Link Text) 因此,链接不会按应有的方式显示。它们显示为普通文本 据我所知,有两条路要走: 禁用RTE转换(如何实现?) 使用lib.parseFunc_RTE(我不知道如何正确配置它) 有什么想法

我为TYPO3 CMS创建了一个自定义扩展。 它基本上执行一些数据库查询以从数据库中获取文本。 正如我所看到的,TYPO3编辑器在将数据存储到数据库中之前会对数据进行转换,例如,对于许多这样的标记,链接
被存储为
我的链接文本
,等等。 当我从数据库查询数据时,我得到的是存储在数据库中的数据(
My Link Text
) 因此,链接不会按应有的方式显示。它们显示为普通文本

据我所知,有两条路要走:

  • 禁用RTE转换(如何实现?)

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

  • 有什么想法吗?
    谢谢。

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

    我在扩展文件中使用
    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}
    
    有用的文件:


    我猜您没有使用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}
    
    有用的文件:


      • 我遇到了同样的问题,但使用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,因为我