在ckeditor中允许oembed标签
Posted
技术标签:
【中文标题】在ckeditor中允许oembed标签【英文标题】:Allow oembed tag in ckeditor 【发布时间】:2018-07-15 07:05:01 【问题描述】:我想把oembed标签放到TYPO3的ckeditor RTE中。这样,我想将诸如 instagram、facebook 或 twitter 之类的社交帖子放入一些新闻文章中(在一些文本的中间)。
为此,我激活了ckeditor的嵌入插件,并将processing
下的oembed
标签放在allowedTags
中。我还在styles.content.allowTags
的常量中定义了oembed标签。
这是我的 yaml:
imports:
- resource: "EXT:rte_ckeditor/Configuration/RTE/Processing.yaml"
- resource: "EXT:rte_ckeditor/Configuration/RTE/Editor/Base.yaml"
- resource: "EXT:rte_ckeditor/Configuration/RTE/Editor/Plugins.yaml"
editor:
config:
contentsCss: "EXT:mysitepackage/Resources/Public/Css/rte.css"
stylesSet:
- name: "Lead", element: "p", attributes: 'class': 'lead'
toolbarGroups:
- name: styles, groups: [ format, styles ]
- name: basicstyles, groups: [ basicstyles ]
- name: paragraph, groups: [ list, indent, blocks, align ]
- "/"
- name: links, groups: [ links ]
- name: clipboard, groups: [ clipboard, cleanup, undo ]
- name: editing, groups: [ spellchecker ]
- name: insert, groups: [ insert ]
- name: tools, groups: [ table, specialchar ]
- name: document, groups: [ mode ]
format_tags: "p;h1;h2;h3;h4;h5;pre"
justifyClasses:
- text-left
- text-center
- text-right
- text-justify
extraPlugins:
- justify
- embedsemantic
- autoembed
removePlugins:
- image
removeButtons:
- Anchor
- Underline
- Strike
autoEmbedWidget: "embedsemantic"
embed_provider: "https://my.iframely.instance/oembed?url=url&callback=callback"
extraAllowedContent: '*(*)[data-*]; oembed'
processing:
allowTags:
- oembed
常量中的这一行:
styles.content.allowTags := addToList(oembed)
我现在可以将 oembed 放入 RTE 及其显示的社交帖子预告片中。保存内容后,oembed
标签被替换为p
标签
我错过了什么?
【问题讨论】:
能否提供一个ckeditor中的html源码修改前后的例子? 之前:<oembed>[URL OF POST]</oembed>
之后:<p>[URL OF POST]</p>
如果它不吃 YML 中的处理设置,是否还吃掉 RTE 的常规 TSconfig?喜欢RTE.default.proc.allowTags = oembed
【参考方案1】:
根据我的经验,如果某些内容被替换为其他内容(尤其是 p 标签),则很有可能与 Advanced content filter 有关。
我无法确定您的配置中的错误,但您是否尝试过完全禁用 ACF? (见allowedContent)
allowedContent = true;
(and remove the extraAllowedContent)
如果可行,请不要这样(请参阅security best practices),而是努力寻找正确的设置。
可能在 extraAllowedContent 中显式添加通配符属性:
extraAllowedContent: '*(*)[data-*]; oembed(*)*[*];'
【讨论】:
不幸的是,这没有帮助。也许 TYPO3 CMS 正在过滤掉它。以上是关于在ckeditor中允许oembed标签的主要内容,如果未能解决你的问题,请参考以下文章