Creating most objects will be impossible for an anonymous user. Make sure to authenticate as a user with sufficient permissions.
Content REST API
To learn how to create Content items using the REST API, see REST API reference.
Creating Content item draft¶
Value objects such as Content items are read-only, so to create or modify them you need to use structs.
returns a new
1 2 3 4 5 6 7 8 9
This command creates a draft using
ContentService::createContent (line 21).
This method must receive a
ContentCreateStruct and an array of Location structs.
ContentCreateStruct (which extends
ContentStruct) is created through
ContentService::newContentCreateStruct (line 17),
which receives the Content Type and the primary language for the Content item.
For information about translating a Content item into other languages, see Translating content.
ContentStruct::setField (line 18) enables you to define the Field values.
When the Field accepts a simple value, you can provide it directly, as in the example above.
For some Field Types, for example images, you need to provide an instance of a Value type.
Creating an image¶
Image Field Type requires an instance of its Value type, which you must provide to the
Therefore, when creating a Content item of the Image type (or any other Content Type with an
image Field Type),
ContentCreateStruct is slightly more complex than in the previous example:
1 2 3 4 5 6 7 8 9 10 11
Value of the Image Field Type contains the path to the image file, as well as other basic information based on the input file.
Creating content with RichText¶
The RichText Field accepts values in a custom flavor of Docbook format. For example, to add a simple RichText paragraph, provide the following as input:
To learn more about the format and how it represents different elements of rich text, see RichText Field Type reference.
Publishing a draft¶
ContentService::createContent creates a Content item with only one draft version.
To publish it, use
This method must get the
VersionInfo object of a draft version.
To update an existing Content item, you need to prepare a
and pass it to
This method works on a draft, so to publish your changes you need to use
ContentService::publishVersion as well:
1 2 3 4 5 6 7 8
Content translations are created per version. By default every version contains all existing translations.
To translate a Content item to a new language, you need to update it and provide a new
1 2 3 4 5 6 7 8
You can also update content in multiple languages at once using the
setField method's third argument.
Only one language can still be set as a version's initial language:
Deleting a translation¶
You can delete a single translation from a Content item's version using
The method must be provided with a
VersionInfo object and the code of the language to delete: