XmlText field type implementation for eZ Platform


XmlText field type for eZ Platform

Build Status Downloads Latest release License

This is the XmlText field type for eZ Platform. It was extracted from the eZ Publish / Platform 5.x as it has been suceeded by docbook based RichText field type.

Note: This Field Type supports editing via Platform UI v1 / Admin UI v2, however only as raw (simplified) xml. There has currently not been any attempts at getting Online Editor from legacy extension to work with within Platform UI, to do that among other things someone would need to port the custom html to xml handler from oe extension to this field type. So this Field Type is mainly meant for use for migrating to RichText, see below.


NOTE: This package comes already bundled with Legacy Bridge. However if you would rather like to 1. migrate your content directly to eZ Platform to take full advantage of it, or 2. otherwise don't want to use legacy but need this field type for some legacy content usage within pure eZ Platform setup, then run the following:

composer require --update-with-all-dependencies "ezsystems/ezplatform-xmltext-fieldtype"

And lastly enable the bundle by adding new EzSystems\EzPlatformXmlTextFieldTypeBundle\EzSystemsEzPlatformXmlTextFieldTypeBundle(), to app/AppKernel.php list of bundles.

Once you have migrated your content you can remove the bundle from both app/AppKernel.php and composer.json.

Migrating from XmlText to RichText

Warning: As of 1.6 this is now fully supported, but regardless of that always make a backup before using the migration tools.

This package provides tools to migration existing XmlText fields to RichText, the enriched text format eZ Platform uses. The tool comes as a Symfony command, ezxmltext:convert-to-richtext.

It will do two things:

  • convert ezxmltext field definitions to ezrichtext field definitions
  • convert ezxmltext fields (content) to ezrichtext

We recommend that you do a test run first using something like:

php bin/console ezxmltext:convert-to-richtext -v --concurrency=2 --dry-run

The -v flag will output logs to the console, making it easy to track the conversion work that is being done. This is an example of a successful conversion log entry for one field:

[2016-02-03 15:25:52] app.INFO: Converted ezxmltext field #745 to richtext {"original":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<section xmlns:image=\"\" xmlns:xhtml=\"\" xmlns:custom=\"\"/>\n","converted":"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<section xmlns=\"\" xmlns:xlink=\"\" xmlns:ezxhtml=\"\" xmlns:ezcustom=\"\" version=\"5.0-variant ezpublish-1.0\"/>\n"}

It contains, in a JSON structure, the original (ezxmltext) value, and the converted (ezrichtext) value that has been written to the database.

Once you are ready to convert, drop -v and --dry-run.