Principes
L’imposition de contenu est une extension de la déclinaison de contenu dans des projets. La spécificité est de créer un lien fort entre source et déclinaisons donnant lieu à des synchronisations automatique à chaque modification de la source.
Note | Cette fonctionnalité est destinée à certains cas très spécifiques de déclinaison de contenus. Cette section va décrire un ensemble de concepts fonctionnels donnant lieu à des conditions d’utilisation très particulières. Il est donc conseillé de bien les maîtriser et de faire très attention lors de son utilisation. |
Pré-requis techniques à l’imposition
L’imposition de contenu nécessite les mêmes pré-requis que la déclinaison de contenu plus :
l’objet à décliner doit comporter le champs
virtualobject
(child vers la même nature)
Note | Tout objet disposant du champs virtualobject est éligible à la fonctionnalité d’imposition. Si la valeur du champs est spécifiée, cela indique que l’objet est imposé et que sa source est l’objet pointé. |
Fonctionnement
La création du lien fort entre les déclinaison se schématise de cette façon :
Entre même langues, chaque version de l’entité est considérée comme une déclinaison.
Les versions anglaises des projets 1 et 2 dépendent de la version hors projet. Leur cycle de vie dépend de celle-ci. Dans les faits, à chaque modification de la version "hors projet", les versions des projets 1 et 2 sont modifiées.
On peut remarquer que la version anglaise du projet 3 n’est pas dépendante, il est tout à fait possible d’imposer une déclinaison à certains projets mais de laisser libre les déclinaisons dans d’autres.
Configuration
Champs personnalisables
La mise à jour des contenus projets se fait après modification du contenu source via le déclencheur produitPrinciples
Content imposition is an extension of the content declination in projects. The specificity is to create a strong link between source and declinations, resulting in automatic synchronizations at each source modification.
Note | This functionality is intended for certain very specific cases of content declination. This section will describe a set of functional concepts leading to very specific conditions of use. It is therefore advisable to control them well and be very careful when using them. |
Technical requirements for imposition
Content imposition requires the same prerequisites as the content proposal and:
the object to be declined must include the
virtualobject
field (child to the same nature)
Note | Any object with the virtualobject field is eligible for the imposition functionality. If the field value is specified, it indicates that the object is imposed and its source is the pointed object. |
Operation
The creation of the strong link between declination is schematized in this way:
In the same languages, each version of the entity shall be regarded as a declination.
The English versions of projects 1 and 2 depend on the off-project version. Their life cycle depends on it. In fact, with every modification of the "off-project" version, projects 1 and 2 versions are changed.
It should be noted that the English version of Project 3 is not dependent, it is quite possible to impose a declination on certain projects but to leave the declinations free in others.
Configuration
Customizable fields
Updating of project contents is done after modification of the content source via a Wedia core, com.wedia.wxm.database.trigger.SlaveManager
.
Bien que l’ensemble des informations soient reportées aux instances imposées, certains champs restent inchangés comme la langue, le groupe ou l’identifiant projet Even if all the information is to be carried over to the required instances, some fields must remain unchanged such as language, group or project identifier (media).
Ainsi, en plus des champs produit, nous vous permettons de déclarer vous même des champs "contextuels" à votre projet qui ne doivent pas être impactés lors des mises à jour. Pour rendre ces champs "non imposé", vous devez leur appliquer l’étiquette Thus, in addition to the product fields, we allow you to declare yourself "contextual" fields to your project that should not be impacted when updates. To make these fields "not imposed", you must apply them the tag wxm_not_imposed_property
.
Par exemple, vous imposez un article sur plusieurs arborescences de projets. L’information de lien sur l’arborescence est spécifique à chaque projet. Vous devrez donc appliquer l’étiquette à cette information.
Le report des propriétés se fait champ par champ, vous pouvez donc appliquer l’étiquette à un champ de collection par exemple. Dans ce cas, les éléments de collections ne seront pas reportés dans les déclinaisons imposées.
Caution | Dans le cas des collections, l’application de l’étiquette sur un champ de la structure en collection n’est pas prise en compte : la mise à jour des déclinaisons imposées nécessite la suppression et la re-création de l’ensemble des objets la collection. |
Important | L’application de l’étiquette wxm_not_imposed_property n’a pas d’impact sur l’étape de configuration du wizard de déclinaison. Tout champ disposant de l’étiquette wxm_manual_forced_value devra disposer aussi de wxm_not_imposed_property sans quoi les modifications seraient supprimées lors de la prochaine mise à jour. |
Sécurité et modification des objets
L’application de l’étiquette wxm_not_imposed_property
n’a pas d’impact sur les formulaires de contributions ou la sécurité.
Vous devez donc prévoir et développer des facettes spécifiques à appliquer à un objet imposé.
Vous devez aussi revoir vos règles de sécurité en conséquence.
Sécuriser la possibilité d’imposer
Nous n’avons pas de domaine de sécurité spécifique à tester pour savoir si un utilisateur a le droit d’imposer ou non un contenu à un projet.
Par contre, l’affichage du choix imposer un contenu
dépend, en plus de la présence du champ virtualobject
, d’une variable de type booléen en request : canImposeContent
.
Initialisée par défaut à true
dans l’action wizardpushcontent
, vous êtes libre de la modifier dans une perso rôle/objet et de conditionner sa valeur suivant vos critères personnels.
FAQ
Non, un élément de collection répond à des spécificités techniques incompatibles avec l’imposition, il ne vous sera pas permis de l’imposer à un autre objet.
Le wizard ne permet d’ailleurs pas de sélectionner un projet où une déclinaison existe déjà
For example, you impose an article on several project trees. The link information on the tree structure is project-specific. You will need to apply the tag to this information.
The properties report is done field by field, so you can apply a tag to a collection field for example. In this case, the elements collections will not be included in the required declinations.
Caution | In the case of collections, the application of the tag on an field of the structure in collection is not taken into account: the update of the imposed declinations requires the deletion and re-creation of the set objects the collection. |
Important | The application of the wxm_not_imposed_property tag does not have the following properties impact on the declination wizard configuration step. Any field with the tag wxm_manual_forced_value must have the following properties also of wxm_not_imposed_property otherwise the changes would be deleted in the next update. |
Security and modification of objects
The application of the wxm_not_imposed_property
tag has no impact on contribution forms or security.
You must therefore plan and develop specific facets to apply to an imposed object.
You should also review your safety rules accordingly.
Secure the possibility of imposing
We don’t have a specific security domain to test to know if a user has the right to impose content on a project or not.
On the other hand, the display of the choice impose content
depends, in addition to the presence of the virtualobject
field, of a variable of boolean type in request: canImposeContent
.
Initialized by default to true
in the wizardpushcontent
action, you are free to modify it in a personal role/object and to condition its value according to your personal criteria.
FAQ
- Can I impose a collector’s item?
No, a collection item meets technical specifications incompatible with taxation, you will not be allowed to impose it on another object.
- A project has a declination of my object, how can I make it "imposed" in my version?
You cannot change a standard declination into "imposed" declination, you must first delete it and then impose your version.
Moreover, the wizard does not allow to select a project where a declination already exists.