Diem是很棒的CMF,但是它缺乏跨镜像站点同步页面(和小部件)的能力。
我是使用基于Diem的CMS的中型网站的首席开发人员。
如果我们(大约50人,不是所有开发人员,大多数没有开发人员)可以在我们网站的非公开镜像上准备主要内容更改/更新,然后将其推送到一次。
我一直在考虑一种在多个安装中同步dmPages的方法(当然有相同的数据库模式)。我看到了两个问题:
- 如何填充链接(页面:,媒体:)以确保它们在新安装中同步后可以正常工作
- 如何传输和填充小部件资产。
我使用(目前为止不存在)导入导出脚本找出了这样的工作流程:
- 导出表单开发安装 D 选择dmPages,dmWidgets(如果适用:窗口小部件资产和所属的自定义模型实体及其资产)到tarball存档(并可能压缩它)
- 将存档导入生产安装 P ,解压缩并取消存档并处理它
- 分析是否有任何资产连接到小部件/模型实体,将其复制到适当的web子文件夹,然后创建dmMedia并存储其“ID
- 分析是否有任何模型实体,创建它,获取和存储ID
- 分析是否有任何小部件:
- 在模型 / show pages中只有一个要创建的小部件:show widget of model。创建,存储,获取ID。
- 在非模型页面中可以有许多小部件。创建它们(如果适用,连接在2.1中创建的dmMedia),存储ID
- 创建dmPages,连接以前创建的dmWidgets
- 分析(仅限那些导入的!)窗口小部件和模型实体,以显示页面:或 media:字符串(到开发安装目前为止)和在生产安装中更改它们以匹配ID
醇>
我的问题是:到目前为止,有什么解决方案是什么导入/导出dmPages?如果没有 - 您对我的解决方案的工作流程有什么建议吗?