1

Diem 是很棒的 CMF,但它缺乏跨镜像站点同步页面(和小部件)的能力。

我是使用基于 Diem 的 CMS 的中型网站的首席开发人员。

如果我们(大约 50 人,不是所有开发人员,大多数人不是)可以在我们网站的非公开镜像上准备重大内容更改/更新,然后立即将它们推送到生产环境,那就太好了。

我一直在考虑一种在许多安装中同步 dmPages 的方法(当然,使用相同的 db 模式)。我看到了2个问题:

  • 如何填充链接(页面:,媒体:)以确保它们在新安装中同步后可以工作
  • 如何传输和填充小部件资产。

我使用(目前不存在)导入导出脚本想出了这样的工作流程:

  1. 导出表单开发安装D选择的 dmPages、dmWidgets(如果适用:小部件资产和所属的自定义模型实体及其资产)到 tarball 存档(并可能压缩它)
  2. 将存档导入生产安装P,解压缩并解压缩并处理它
    1. 分析是否有任何资产连接到小部件/模型实体,将其复制到适当的网络子文件夹,然后创建 dmMedia 并存储其 ID
    2. 分析是否有任何模型实体,创建它,获取和存储 ID
    3. 分析是否有任何小部件:
      • 模型/显示页面中,只有一个小部件要创建:显示模型小部件。创建、存储、获取 ID。
      • 在非模型页面中可以有很多小部件。创建它们(如果适用,连接 2.1 中创建的 dmMedia),存储 ID
    4. 创建 dmPages,连接之前创建的 dmWidgets
    5. 分析(仅那些导入的!)小部件和模型实体是否存在page:media:字符串(远离开发安装)并将它们更改为匹配生产安装中的 ID

我的问题是:到目前为止导入/导出 dmPages 有什么解决方案吗?如果没有 - 您对我的解决方案提出的工作流程有什么建议吗?

4

0 回答 0