General

  eZ Systems Website
  Editor documentation


  Developer documentation

  Back to the top

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
NameInternal nameExpected input
RichText
ezrichtext
mixed

Description

This Field Type validates and stores structured rich text, and exposes it in several formats.

NameInternal nameExpected input
RichText
ezrichtext
mixed

PHP API Field Type 

Input expectations

TypeDescriptionExample
string
XML document in one of the Field Type's input formats as a string.See the example below.
DOMDocument

XML document in one of the Field Type's input formats as a

DOMDocument object.

See the example below.
eZ\Publish\Core\FieldType\RichText\Value
An instance of the Field Type's Value object.See the example below.
Input formats

Field Type works with XML and also expects an XML value as input, whether as a string, DOMDocument object or Field Type's Value object. When the value is given as a string or a DOMDocument object, it will be checked for conformance with one of the supported input formats, then dispatched to the appropriate converter, to be converted to the Field Type's internal format. No conversion will be performed if providing the value in Field Type's internal format or as Field Type's Value object. In the latter case it will be expected that Value object holds the value in Field Type's internal format.

Currently supported input formats are described in the table below:

NameDescription
eZ Publish Docbook variantFieldType's internal format
XHTML5 editing formatTypically used with in-browser HTML editor
Legacy eZXML formatCompatibility with legacy eZXML format, used by  XmlText Field Type
Example of the Field Type's internal format
Code Block
languagexml
linenumberstrue
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
         xmlns:xlink="http://www.w3.org/1999/xlink"
         xmlns:ezxhtml="http://ez.no/xmlns/ezpublish/docbook/xhtml"
         xmlns:ezcustom="http://ez.no/xmlns/ezpublish/docbook/custom"
         version="5.0-variant ezpublish-1.0">
    <title ezxhtml:level="2">This is a title.</title>
    <para ezxhtml:class="paraClass">This is a paragraph.</para>
</section>
Example of the Field Type's XHTML5 edit format
Warning

This format is used by eZ Platform Online Editor and will change with its needs as we continue to evolve this part of the UI.


Code Block
languagexml
linenumberstrue
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://ez.no/namespaces/ezpublish5/xhtml5/edit">
    <h2>This is a title.</h2>
    <p class="paraClass">This is a paragraph.</p>
</section>
Info

For more information about internal format and input formats, see Field Type's conversion test fixtures on GitHub.

Tip

For example, ezxml does not use explicit level attributes for <header> elements, instead <header> element levels are indicated through the level of nesting inside <section> elements.

Example of using XML document in internal format as a string
Code Block
languagephp
linenumberstrue
...
 
$contentService = $repository->getContentService();
$contentTypeService = $repository->getContentTypeService();
 
$contentType = $contentTypeService->loadContentTypeByIdentifier( "article" );
$contentCreateStruct = $contentService->newContentCreateStruct( $contentType, "eng-GB" );
 
$inputString = <<<DOCBOOK
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
         xmlns:xlink="http://www.w3.org/1999/xlink"
         xmlns:ezxhtml="http://ez.no/xmlns/ezpublish/docbook/xhtml"
         xmlns:ezcustom="http://ez.no/xmlns/ezpublish/docbook/custom"
         version="5.0-variant ezpublish-1.0">
    <title ezxhtml:level="2">This is a title.</title>
    <para ezxhtml:class="paraClass">This is a paragraph.</para>
</section>
DOCBOOK;
 
$contentCreateStruct->setField( "description", $inputString );
 
...

Value object

eZ\Publish\Core\FieldType\RichText\Value offers following properties:

PropertyTypeDescription
xml
DOMDocument
Internal format value as an instance of DOMDocument.

REST API specifics

Creating or updating Content

When creating RichText content with the REST API, it is possible to provide data as a string, using the "xml" fieldValue key:

Code Block
languagexml
linenumberstrue
<fieldValue>
    <value key="xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;section xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ezxhtml="http://ez.no/xmlns/ezpublish/docbook/xhtml" xmlns:ezcustom="http://ez.no/xmlns/ezpublish/docbook/custom" version="5.0-variant ezpublish-1.0"&gt;
&lt;title ezxhtml:level="2"&gt;This is a title.&lt;/title&gt;
&lt;/section&gt;
</value>
</fieldValue>

When the value given over REST API is transformed into a Field Type's Value object, it will be treated as a string. This means you can use any supported input format for input over REST API.

Info

For further informations about the internal implementation of RichText Field Type, see in the doc/ directory