Change the content type manager to work with the XML files

Description

Background:

The content types should always be present. This issue should solve the problems when code is based on content types which are not available.

The requirements are using the following documentation on the Symfony website.
http://symfony.com/doc/3.4/components/config/resources.html
Here is explained how to `Load Resources` in your project. In the example is spoken about the Yaml loader. We prefer the Xml loader.

The directories added in can be registred with the CompilerPass. To check what kind of documents are set into the XML files, it’s an option to add the type of the document in the CompilerPass, see example.

The content types can’t be deleted in Integrated when they are added from the XML. The name of the `content type` can be changed by clicking on the edit button. The locked property shouldn’t be set in the Database. This will be build into the

Requirements

The content type manager should read the XML files which are registred and add them to the database when not existing yet.

This manager is used several other files:
- \Integrated\Bundle\ContentBundle\Tests\Menu\ContentTypeMenuBuilderTest
- \Integrated\Bundle\ContentBundle\Provider\MediaProvider
- \Integrated\Bundle\ContentBundle\Menu\ContentTypeMenuBuilder
- \Integrated\Bundle\ContentBundle\Form\Type\Job\CompanyJobType
- \Integrated\Bundle\ContentBundle\Form\Type\AuthorType

Examples

CompilerPass example:
$definition->addMethodCall(’registerResource’, [ContentType:class, '@IntegratedContentBundle/Resources/config/integrated/content_types.xml']);

Undefined scenario, only for information

There is a possibility when there is already a content type added for example:
- id news
- class ContentType/Video
- label Video News
In the XML is added:
- id news
- class ContentType/News
- label News

What to do in this situation isn’t described in this document. Because the unique identifier is “id” the Content Type manager doesn’t do anything with this.

Technical tasks

In de SPIKE is beschreven hoe het moet worden geïmplementeerd. Op basis van dit issue kan de documentatie geschreven worden.

Deployment actions

None

Status

Assignee

Unassigned

Switches

None

Client

Integrated Marijn

Epic Link

Sprint

None

Fix versions

Configure