基本上,如何为马赛克瓷砖设置自定义“编辑”视图?
在plone 5中使用自定义图块的mosaic editor时,您需要提供一个视图模板来渲染图块,例如:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" xmlns:tal="http://xml.zope.org/namespaces/tal" xmlns:metal="http://xml.zope.org/namespaces/metal">
<body>
Content here...
<img src="${view/image}"/>
</body>
</html>
当您编辑布局时,这将呈现为可拖动的图块,如下所示:
然而,当这个图块的内容很复杂时,编辑器的性能变得很糟糕,在某些情况下(例如视频和反应组件),完全打破了编辑器。
如何才能拥有仅在编辑页面/拖动图块时呈现的“占位符”视图(例如固定图像)?
(注意:我看到检查页面元素,在编辑页面时会对页面应用'WebDAV'锁定,但这似乎没有任何用处,因为它不是用户会话所特有的,即注销用户也会看起来是相同的页面状态。)
答案 0 :(得分:1)
我能想到的最简单的方法就是使用css / js。
当您开始拖动#content
div周围的图块时,会获得班级.mosaic-panel-dragging
,因此您知道目前正在拖动图块。
此外,拖动的图块会获得类.mosaic-original-tile
(只有上帝知道为什么会这样命名)
使用此信息,您可以将磁贴的某些组件设置为display: none;
,或者在类更改并检测到特定磁贴时执行一些javascript操作。
答案 1 :(得分:0)
只是要添加,如果要在马赛克布局编辑器中渲染图块与在视图中呈现图块时不同,您可以利用额外的查询字符串参数:?_layouteditor = true。此外,只有视图请求才能提供ISubRequest,例如p.a.standardtiles