ckeditor - TYPO3 CKE 编辑器允许数据属性
问题描述
我已经添加了
- { name: "Data Test", element: "p", attributes: { 'data-test': "test" } }
到我的 yaml 配置。我可以在编辑器代码中选择数据属性(并查看它是否正确)。但是在保存内容元素之后,TYPO3 也在从代码中删除 data-test="test" 。
我该如何解决这个问题?感谢帮助!马丁
纽扣: 关联: rel属性: 启用:真 目标选择器: 禁用:假 特性: 班级: allowedClasses: '按钮,button_hell' 标题: 只读:假 进口: - {资源:“EXT:rte_ckeditor/Configuration/RTE/Processing.yaml”} - {资源:“EXT:rte_ckeditor/Configuration/RTE/Editor/Base.yaml”} - {资源:“EXT:rte_ckeditor/Configuration/RTE/Editor/Plugins.yaml”} 编辑: 配置: # 编辑器的 CSS 定义 contentsCss:“EXT:mw_theme/Resources/Public/Css/rte.css” # 可以是“默认”,但是这里可以定义一个自定义样式集,最适合TYPO3 格式标签:“p;h1;h2;h3;h4;h5;h6;pre;地址” 样式集: # 自定义块级样式 - {名称:“按钮”,元素:“a”,属性:{“类”:“按钮”}} - {名称:“测试”,元素:“p”,属性:{“数据测试”:“测试”}} 工具栏: - ['格式','样式'] - ['粗体','斜体','下划线','块引用','下标','上标'] - ['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock','HorizontalRule'] - ['编号列表','子弹列表'] - ['Link', 'Unlink', 'Anchor', 'Table', 'SpecialChar', 'CodeSnippet', 'Youtube' ] - ['剪切','复制','粘贴','PasteText','PasteFromWord'] - ['撤消','重做','RemoveFormat','ShowBlocks'] - ['来源','最大化','关于'] 删除插件: - 图片 额外插件: - 证明合法 证明类: - 文本左 - 文本中心 - 文本右 - 文本对齐 允许标签 加工: 允许标签: - dl -dt -dd
页面 ts:
RTE { default { preset = mw_theme } }`
解决方案
要允许将数据属性从 RTE 字段保存到 db,您需要确保:
1)RTE(CKEditor)不会剥离属性。这可以使用 extraAllowedContent 进行配置。下面是一个示例,如何在允许数据属性和类的默认规则之外允许 id 属性。
editor:
config:
extraAllowedContent:
- "*(*)[data-*]"
- "*[id]"
如果您只需要添加数据属性,则不需要上面的配置,可以使用默认配置(来自 rte_ckeditor/Configuration/RTE/Editor/Base.yaml),因为那里默认允许数据属性。
测试这个配置部分,去你的RTE,点击“查看源码”按钮切换回来再切换,看看属性是不是没了。如果它仍然存在,则意味着您的 RTE 配置允许它。
2)然后你需要配置PHP方面的东西 - 在数据保存到数据库之前发生的数据转换。请参阅手册章节:https ://docs.typo3.org/m/typo3/reference-coreapi/master/en-us/ApiOverview/Rte/Transformations/Process.html#transformations-process
下面是一个示例(取自 RTE yaml 预设),允许在转换中使用 data-abc 属性(除了默认允许的属性)。
processing:
allowAttributes: [class, id, title, dir, lang, xml:lang, itemscope, itemtype, itemprop, data-abc]
因此,在您的情况下,您在转换部分缺少正确的配置。
推荐阅读
- database - 根据大于或小于使用python请求的某个值从elasticsearch中检索数据
- pandas - 如何摆脱 Python 中日期时间的毫秒数
- google-cloud-platform - 如何通过其他 VPC NAT 访问 Internet?
- react-native - 反应原生 Firebase 消息通知声音在后台没有变化
- javascript - 我如何使用 imgbb 进行反应图像托管?
- r - 使用 R google 搜索进行网页抓取
- java - 错误:不兼容的类型:从 double 到 int 的可能有损转换。我正在做的Java课程的代码问题
- vb.net - HttpRuntime.Cache 在我的项目中有“2 个版本”
- node.js - 在模拟器中连接到 VPN 会导致问题 React Native
- javascript - 承诺 {
} - 最后一个异步函数