首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用uid嵌入对象的Plone最佳实践

问用uid嵌入对象的Plone最佳实践
EN

Stack Overflow用户
提问于 2017-10-23 14:28:44
回答 1查看 98关注 0票数 1

我有一个Plone 4站点,我目前使用以下方法嵌入对象(例如图像、视频、表格…)在用户可编辑的HTML内容中:

  • 我有一个自定义的transform浏览器,它接受HTML,并转换所有a和img元素,这些元素都是由UID引用的(即具有href="…/resolveuid/abc123…"或src="…/resolveuid/abc123…")。
  • 我的视图模板读取text字段,让浏览器transform它;
  • 浏览器有一个Python TYPE2TEMPLATE,它有portal_type键和template_id值;
  • 对于通过UID引用对象的每个a或img,
    • 对象由o = brain._unrestrictedGetObject()获取
    • 模板id t_id是从TYPE2TEMPLATE代码块中提取的。
    • "embed“方法由method = o.unrestrictedTraverse(t_id)获取。
    • 该方法被调用(在某些情况下带有一些关键字参数),结果(包含在一个顶级HTML元素中)替换了"raw“a或img元素。

​

现在我正在开发一个额外的定制包(它包含新的对象类型,现在正在使用灵巧),我想知道是否还有更多的“平淡”方式。例如,是否存在一些embed操作?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-24 12:15:39

我不知道有一个包裹能做同样的事情,你做的事情听起来很理智;-)

我只想用https://pypi.python.org/pypi/plone.outputfilters代替transform BrowserView。

如果可以显式标记不应该自动嵌入的链接(例如通过span.noEmbed a.internal-link选择器),这可能成为一个有用的加注。

我想对于portal_type==' file‘,您也需要检查mimetype,以确定您是嵌入视频文件还是其他什么的.

其他产品,我知道嵌入内容外,您的plone网站(例如。collective.embedly)

另一种方法是在编辑页面的html主体时使用tinymce插件生成适当的嵌入html(我个人不会这样做,因为4.3和5.0支持不同的小版本,而且我们不确定是否将来会替换成默认编辑器)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46891866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档