如何通过API为TYPO3后端模块添加CKEditor RTE编辑器?
在TYPO3 8.7后端模块中优雅集成CKEditor RTE(无需自定义JS)
你完全不用依赖“不规范的JavaScript”来让RTE正常工作,TYPO3官方已经提供了标准的解决方案——使用<f:form.rte>视图助手替代普通的<f:form.textarea>,它会自动处理RTE的初始化和资源加载,完全符合TYPO3的开发规范。
步骤1:确认TCA配置(你已经做对了这部分)
你的评论模型TCA配置没问题,重点是确保enableRichtext设为true,并指定合适的richtextConfiguration(比如minimal或者自定义配置):
'text' => [ 'exclude' => true, 'label' => 'LLL:EXT:rmcomment/Resources/Private/Language/locallang_db.xlf:tx_rmcomment_domain_model_comment.text', 'config' => [ 'type' => 'text', 'enableRichtext' => true, 'richtextConfiguration' => 'minimal', 'fieldControl' => [ 'fullScreenRichtext' => [ 'disabled' => false, ], ], 'cols' => 40, 'rows' => 15, 'eval' => 'trim,required', ], ],
步骤2:修改Fluid模板,替换为RTE视图助手
把你模板里的<f:form.textarea>替换成<f:form.rte>即可,其他属性可以保留:
<f:form action="create" name="newComment" object="{newComment}" arguments="{author:beuser.username, email:beuser.email}"> <strong>Eingeloggt als: {beuser.realname} (Username: {beuser.username}) (Email: {beuser.email})</strong><br> <label for="commentEmailCheckbox">Öffentliche E-Mail:</label> <f:form.checkbox id="commentEmailCheckbox" property="mailPublic" value="1" /> <br><br> <label for="commentText" class="text{rm:hasError(property:'text',then:' text-danger')}"> <f:translate key="tx_rmcomment_domain_model_comment.text" /> <span class="small">( <f:translate key="tx_rmcomment_domain_model_comment.required" /> )</span> </label><br> <!-- 替换为官方RTE视图助手 --> <f:form.rte id="commentText" property="text" cols="120" rows="6" /><br> <f:form.submit value="{f:translate(key:'tx_rmcomment_domain_model_comment.saveComment')}" class="btn btn-default" /> </f:form>
为什么这是更好的方法?
- 完全遵循TYPO3官方开发流程,无需手动编写CKEditor初始化脚本,避免兼容性问题
<f:form.rte>会自动识别后端上下文,加载RTE所需的CSS和JS资源,确保编辑器样式和功能与TYPO3后端一致- 支持TCA中配置的RTE参数(比如
richtextConfiguration),能直接复用你定义的编辑器配置
额外注意事项
- 确保你的后端模块控制器继承了正确的基类(比如
\TYPO3\CMS\Backend\Controller\BackendController或\TYPO3\CMS\Extbase\Mvc\Controller\BackendController),这样TYPO3才会正确加载后端相关的资源 - 如果需要自定义RTE配置,可以在
ext_localconf.php中注册自己的配置,然后在TCA的richtextConfiguration中指定
内容的提问来源于stack exchange,提问作者MonTea
相关产品推荐
相关产品推荐

