是否可以在plone中为马赛克瓷砖设置不同的“编辑”视图?

时间:2016-03-24 04:02:11

标签: plone

基本上,如何为马赛克瓷砖设置自定义“编辑”视图?

长版

在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>

当您编辑布局时,这将呈现为可拖动的图块,如下所示:

example

然而,当这个图块的内容很复杂时,编辑器的性能变得很糟糕,在某些情况下(例如视频和反应组件),完全打破了编辑器。

如何才能拥有仅在编辑页面/拖动图块时呈现的“占位符”视图(例如固定图像)?

(注意:我看到检查页面元素,在编辑页面时会对页面应用'WebDAV'锁定,但这似乎没有任何用处,因为它不是用户会话所特有的,即注销用户也会看起来是相同的页面状态。)

2 个答案:

答案 0 :(得分:1)

我能想到的最简单的方法就是使用css / js。

当您开始拖动#content div周围的图块时,会获得班级.mosaic-panel-dragging,因此您知道目前正在拖动图块。

此外,拖动的图块会获得类.mosaic-original-tile(只有上帝知道为什么会这样命名)

使用此信息,您可以将磁贴的某些组件设置为display: none;,或者在类更改并检测到特定磁贴时执行一些javascript操作。

答案 1 :(得分:0)

只是要添加,如果要在马赛克布局编辑器中渲染图块与在视图中呈现图块时不同,您可以利用额外的查询字符串参数:?_layouteditor = true。此外,只有视图请求才能提供ISubRequest,例如p.a.standardtiles