我有一个Plone 4网站,我目前使用以下方法在用户可编辑的HTML内容中嵌入对象(例如图片,视频,表格等):
transform
浏览器,该浏览器接收HTML文本并转换所有通过UID引用元素的a
和img
元素(即具有href="…/resolveuid/abc123…"
的元素或src="…/resolveuid/abc123…"
)。text
字段并让该浏览器transform
; TYPE2TEMPLATE
,其中包含portal_type
个键和template_id
值; a
或img
的o = brain._unrestrictedGetObject()
t_id
取自TYPE2TEMPLATE
dict method = o.unrestrictedTraverse(t_id)
a
或img
元素。既然我正在开发一个额外的自定义包(其中包含新的对象类型,现在使用Dexterity),我想知道是否还有更多的" plonish"办法。例如,有一些embed
动作吗?
答案 0 :(得分:2)
我不知道一个包装是否也是如此,你所做的一切听起来对我有用; - )
我只会使用https://pypi.python.org/pypi/plone.outputfilters而不是transform
BrowserView。
如果可以明确标记不应自动嵌入的链接(例如通过span.noEmbed a.internal-link
选择器),这可能会成为一个有用的插件。
我想对于portal_type =='文件',您还需要检查mimetype以确定您是否嵌入了视频文件或其他内容......
我知道在plone网站之外嵌入内容的其他产品(例如,collective.embedly)
另一种方法是使用tinymce插件在编辑页面的html体时生成正确的嵌入html(我个人不会这样做,因为有不同的小版本支持4.3和5.0而我们“我不确定将来是否会将其替换为默认编辑器”