se7enxweb / ezcontentstaging
eZ Content Staging提供通过在两个eZ Publish安装上配置REST实现的内容同步功能。非常适合聪明的开发者!。
Requires
This package is auto-updated.
Last update: 2024-08-29 08:47:15 UTC
README
扩展的目标是实现不同eZ Publish安装之间内容的同步。
一般架构如下
数据流
在源服务器上,定义了“同步数据流”。每个数据流用于将内容传递到目标服务器。对于每个数据流,必须定义一组“根节点”。每个根节点的子内容都将同步到目标服务器。相同的内容可以属于多个数据流,这些数据流将同步到不同的目标服务器。
内容编辑
扩展旨在实现内容的100%准确同步,包括例如对象状态、部分、多个位置等。当源服务器上的内容被编辑时,更改会记录在本地数据库中(不会立即发送)。编辑器和管理员可以通过网站工具栏(前端)、仪表板面板或管理界面的专用页面来决定同步哪些内容。
服务器间的通信
源服务器和目标服务器之间的通信通过REST调用进行(在自定义动词的使用上与标准http协议略有不同)。扩展需要在源服务器和目标服务器上安装。
安装
阅读INSTALL文件以获取需求和说明
常见问题解答
问题:能否在现有内容的子树上定义一个数据源?回答:目前还不能。建议在创建数据源时,源或目标数据源都不应有内容。问题:内容同步能否在编辑器的干预下立即发生?回答:目前还不能。问题:内容同步能否通过cronjob发生?回答:是的。问题:是否支持所有数据类型?回答:该插件支持来自eZ Publish的所有数据类型,以及支持完全的toString()和fromString()调用的数据类型,且不依赖于object_id/node_id或其他数据库数据。问题:是否支持富文本中的自定义标签?回答:所有不依赖于object_id/node_id或其他数据库数据的标签都应该是没有问题的。问题:两个服务器之间的通信是否使用了REST协议,并且有文档记录?回答:是的。这实际上是一个“预览”版本的协议,将是ezrest api的下一个官方版本。文档提供:- 在插件中的doc/文件夹内的specs.ods文件中- 通过REST url contentstaging/v1/api/versions自动生成。问题:该插件如何处理“字典”数据的同步,例如部分、对象状态、内容类定义?回答:到目前为止,这需要手动同步。问题:我能否在这个插件中独立于预发布环境使用REST API,并让AJAX客户端使用它来编辑单个eZ Publish服务器上的内容?回答:是的。这还没有经过广泛的测试,但应该可以工作。主要挑战是设置REST层以使用当前的eZ会话cookie进行认证;为此,您应该在rest.ini中设置AuthenticationStyle=ezpRestSessionAuthStyle。注意:这样做意味着“匿名用户”可以访问通过REST API提供的所有方法 - 如果有某些不强制执行适当策略检查的方法,请小心。问题:在projects.ez.no(github.com/gggeek/ezcontentstaging)上的此插件版本与来自eZ Systems(github.com/ezsystems/ezcontentstaging)的官方版本之间有什么区别?回答:“社区版本”插件是第一个开发的。它仍在维护中,并且努力成为一个“beta”版本,其中功能在导入官方版本之前得到实现。使用的REST协议是相同的,因此您应该能够在两个扩展之间进行互操作。