Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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 :

topic fr bb2c2Image Removed

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

...

Principles

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.

...

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).

...

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

...

Puis-je imposer un élément de collection ?

...

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.

...

Un projet possède une déclinaison de mon objet, comment le rendre "imposé" de ma version ?

...

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.

Warning

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.

Note

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.