Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
PHP JavaScript
Branch: master
Pull request Compare This branch is 55 commits behind gggeek:master.

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
bin/php
classes
cronjobs
design
doc
eventtypes/event
interfaces
modules/contentstaging
pake
patches
settings
share
sql
translations/untranslated
.gitignore
INSTALL
LICENSE
README
extension.xml
ezinfo.php

README

eZ Content Staging Extension
============================

The goal of the extension is to allow content synchronization between different eZ Publish installations.

The general architecture is the following:

Feeds
-----
. on the source server, "synchronization feeds" are defined
. every feed is used to relay content to one target server
. for every feed, a set of "root nodes" has to be defined
. every content that is a child of one of the feed root nodes will be synchronized to the target server
. the same content can be part of many feeds that synchronize to different target servers

Content editing
---------------
. the extension aims to synchronize content with a 100% accuracy, including e.g. objects states, sections, multiple locations etc...
. whenever a content is edited on the source server, the changes are recorded locally in the database (not sent immediately)
. editors and administrators can decide which contents to synchronize, via either the website toolbar (frontend), a dashboard panel or a dedicated page in the administration interface

Communication between the servers
---------------------------------
. the communication between the source and target servers happens via REST calls
. the extension needs to be installed on both source and target servers

Installation
------------

Read the INSTALL file for both requirements and instructions

FAQ
---
. q: can a feed be defined on a subtree of already existing content?
  a: not yet. It is recommended to have no content for either source or target feed sources when creating the feed
. q: can content sync happen immediately without intervention of the editor?
  a: not yet
. q: can content sync happen via a cronjob?
  a: yes
. q: are all datatypes supported?
  a: the extension support all datatypes from eZ Publish, plus datatypes that support fully toString(), fromString() calls and do not rely on object_id/node_id or other database data
. q: are custom tags for rich text supported?
  a: all tags that do not rely on object_id/node_id or other database data should be fine
. q: is the REST protocol used for communication between the two servers documented?
  a: yes. It is in fact a "preview" version of the protocol that will be the official next version of the ezrest api.
     Documentation is provided:
     - in the doc/ folder within the extension, in the specs.ods file
     - automatically-generated via the REST url contentstaging/v1/api/versions
. q: how does the extension cope with synchronization of "dictionary" data, such as sections, object states, content class definitin?
  a: so far, this is left to manual synchronization
. q: can I use the REST API in this extension independently of a staging context, and have AJAX clients use it to edit content on a single eZ Publish server?
  a: yes. This has not been extensively tested, but it should work. The main hurdle is setting up teh REST layer to use the current eZ session cookie for auth purposes;
  to this end you should set in rest.ini AuthenticationStyle=ezpRestSessionAuthStyle.
  NB: doing so means that the "anonymous user" can access all methods available via the REST api - take care if there are some such methods that do not enforce proper policy checking
Something went wrong with that request. Please try again.