plone 中的马赛克瓷砖是否可以有不同的 'edit' 视图?

Is it possible to have a different 'edit' view for mosaic tiles in plone?

基本上,您如何才能拥有马赛克瓷砖的自定义 'edit' 视图?

长版

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

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

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

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

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

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

当您开始在 #content 周围拖动一个图块时,div 会得到 class .mosaic-panel-dragging,所以您知道当前有一个图块在周围拖动。

此外,被拖动的图块得到 class .mosaic-original-tile(只有天知道为什么会这样命名)

根据此信息,您可以将磁贴的某些组件设置为 display: none;,或者在 classes 发生变化并且您检测到特定磁贴时执行一些 javascript 操作。

补充一下,如果您想在马赛克布局编辑器中以不同于在视图中呈现的方式呈现图块,您可以利用额外的查询字符串参数:?_layouteditor=true。此外,只有视图请求应提供 ISubRequest,例如p.a.standardtiles.