Putting the M back in CMS

Submitted by Anonymous (not verified) on Mon, 21/12/2015 - 14:16

<p>For the last 6 months I’ve been helping <a href="https://twitter.com/dickolsson&quot; target="_blank">Dick</a> and <a href="https://twitter.com/andreijechiu&quot; target="_blank">Andrei</a> with a number of Drupal modules to enhance the management of content.</p><p><b><a href="http://www.drupal.org/project/multiversion&quot; target="_blank">Multiversion</a></b></p><p>This module enhances the Drupal core Entity API by making all content entities revisionable. Revisions are enabled by default and not optional. This means that edits to users, comments, taxonomy terms etc are created as new revisions.</p><p>Another ground breaking advance is that deleting any of these entities now just archives it. Delete is a flag in the entity object, and just like any other update, it creates a new revision.</p><p>The concept of workspaces has also been added, this allows for a new instance of the site, from a content perspective, can be created. An example use case for workspaces would be to have a dev, stage and production workspace, and move content between them as it gets promoted through the workflow.</p><p><b><a href="https://www.drupal.org/project/trash&quot; target="_blank">Trash</a></b></p><p>Now that deleting content entities just means a new revision marked as deleted we need a way to recover or purge them. The trash module is a UI on top of Multiversion allowing users to do just this.</p><figure class="tmblr-full" data-orig-height="707" data-orig-width="995"><img src="http://68.media.tumblr.com/5906e2ec1b6306f2d57105eb934311e4/tumblr_inli…; data-orig-height="707" data-orig-width="995"/></figure><p><a href="https://www.drupal.org/project/relaxed&quot; target="_blank"><b>Relaxed Web Services</b></a></p><p>Drupal 8 has always been about <a href="http://www.garfieldtech.com/blog/off-the-island-2013&quot; target="_blank">getting off the island</a>, Relaxed Web Services furthers this by getting content off the island. It uses Drupal core’s REST API to expose CouchDB compatible endpoints. This means that replicating content is just a case of using CouchDBs replicator. Then creating a <a href="http://buytaert.net/the-future-of-decoupled-drupal&quot; target="_blank">decoupled Drupal site</a> is as simple as using <a href="http://pouchdb.com/&quot; target="_blank">PouchDB</a>.</p><p>This works really well with Multiversion’s Workspaces, where each workspace is exposed as a separate CouchDB database.</p><p><a href="https://packagist.org/packages/relaxedws/replicator&quot; target="_blank"><b>CouchDB Replicator</b></a></p><p>So that we don’t need to depend on CouchDB for replication, the replicator has been rewritten in PHP. This will allow us replicator content from within Drupal or even via Drush.</p><p><b><a href="https://www.drupal.org/project/deploy&quot; target="_blank">Deploy</a></b></p><p>There is a long history for Deploy in Drupal, but now in Drupal 8 it’s little more than a UI for the PHP based CouchDB replicator. It allows replication of content between workspaces, between Drupal sites, and between CouchDB databases.</p><p><a href="https://www.drupal.org/project/mango&quot; target="_blank"><b>Mango</b></a></p><p>Something we’re currently working on is Mango, inspired by MongoDB and based on <a href="https://github.com/cloudant/mango&quot; target="_blank">Cloudant’s implementation for CouchDB</a>. Mango will allow querying for content entities over the Relaxed Web Services API. This is going to be very interesting to those creating decoupled sites because PouchDB supports the same querying API.</p>

Add new comment