Vous consultez actuellement l'aide de la version:

Les modèles modifiables ont été élaborés pour :

  • Permettre aux auteurs spécialisés de créer et de modifier des modèles.
    • Ces auteurs spécialisés sont connus sous le nom de créateurs (ou auteurs) de modèles.
    • Les créateurs de modèles doivent être membres du groupe template-authors.
  • Fournir des modèles qui conservent un lien dynamique avec les pages qu’ils ont servi à créer. De cette manière, toute modification apportée au modèle est répercutée dans les pages proprement dites.
  • Rendre le composant de page plus générique, de sorte que le composant de page principal puisse être utilisé sans personnalisation.

Avec les modèles modifiables, les éléments qui constituent une page sont isolés au sein des composants. Vous pouvez configurer les combinaisons de composants nécessaires dans une interface utilisateur, rendant ainsi inutile le développement d’un nouveau composant de page pour chaque variante de page.

Remarque :

Des modèles statiques sont également disponibles.

Ce document :

  • vous donne un aperçu du processus de création des modèles modifiables ;
  • décrit les tâches d’administration/de développement requises pour créer des modèles modifiables ;
  • décrit les bases techniques des modèles modifiables.

Dans ce document, nous partons du principe que vous êtes déjà rompu à la création et la modification de modèles. Consultez le document Création de modèles de page qui détaille les fonctionnalités des modèles modifiables telles qu’elles sont présentées au créateur d’un modèle.
 

Remarque :

Le tutoriel suivant peut également se révéler intéressant pour configurer un modèle de page modifiable dans un nouveau projet :
Prise en main d’AEM Sites - Partie 2 - Création d’un modèle et d’une page de base

Création d’un modèle

La création de modèles modifiables s’effectue essentiellement à l’aide de la console de modèles et de l’éditeur de modèles. Cette tâche est de la responsabilité du créateur de modèles. Cette section vous donne un aperçu de ce processus. Elle décrit ensuite ce qui se passe au niveau technique.

Pour plus d’informations sur l’utilisation de modèles modifiables dans un projet AEM, voir Création d’un projet AEM à l’aide de Lazybones.

Lors de la création d’un modèle modifiable :

  1. Créez un dossier pour les modèles. Il ne s’agit pas d’une pratique obligatoire, mais vivement recommandée.

  2. Sélectionnez un type de modèle. Il est copié afin de créer la définition du modèle.

    Remarque :

    Une sélection de types de modèle prêts à l’emploi est fournie. Au besoin, vous pouvez également créer vos propres types de modèles spécifiques à un site.

  3. Configurez la structure, les stratégies de contenu, le contenu initial et la disposition du nouveau modèle.

    Structure

    • La structure vous permet de définir les composants et le contenu de votre modèle.
    • Les composants définis dans la structure du modèle ne peuvent être ni déplacés ni supprimés dans les pages créées.
      • Si vous créez un modèle dans un dossier personnalisé en dehors de l’exemple de contenu We.Retail, vous pouvez sélectionner des composants Foundation ou utiliser des composants principaux.
    • Si vous souhaitez que les créateurs de pages puissent ajouter et supprimer des composants, ajoutez un système de paragraphes au modèle.
    • Les composants peuvent être déverrouillés (et reverrouillés) pour que vous puissiez définir le contenu initial.

    Pour plus d’informations sur la façon dont un créateur de modèles définit la structure, voir Création de modèles de page.

    Pour connaître les détails techniques de la structure, consultez la section Structure de ce document. 

    Stratégies

    • Les stratégies de contenu définissent les propriétés de conception d’un composant.
      • Par exemple, les composants disponibles ou les dimensions minimales/maximales.
    • Elles s’appliquent au modèle (et aux pages créées avec le modèle).

    Pour plus d’informations sur la façon dont un créateur de modèles définit des stratégies, voir Création de modèles de page.

    Pour connaître les détails techniques des stratégies, consultez la section Stratégies de contenu de ce document.

    Contenu initial

    • Le contenu initial définit le contenu qui s’affiche lors de la création d’une page basée sur le modèle.
    • Le contenu initial peut ensuite être modifié par les créateurs de la page.

    Pour plus d’informations sur la façon dont un créateur de modèles définit la structure, voir Création de modèles de page.

    Pour connaître les détails techniques du contenu initial, consultez la section Contenu initial de ce document.

    Mise en page

    • Vous pouvez définir la mise en page du modèle pour différents dispositifs.
    • La mise en page réactive pour les modèles fonctionne de la même manière que pour la création de pages.

    Pour plus d’informations sur la façon dont le créateur d’un modèle définit la mise en page de ce dernier, voir Création de modèles de page.

    Pour connaître les détails techniques de la mise en page du modèle, consultez la section Mise en page de ce document.

  4. Activez le modèle, puis autorisez-le pour des arborescences de contenu spécifiques.

    • Un modèle peut être activé ou désactivé pour être mis à la disposition (ou non) des créateurs de pages.
    • Un modèle peut être rendu disponible ou indisponible pour certaines branches de la page.

    Pour plus d’informations sur la façon dont un créateur de modèles active un modèle, voir Création de modèles de page.

    Pour obtenir des informations techniques sur l’activation d’un modèle, consultez la section Activation et autorisation d’un modèle à utiliser dans ce document

  5. Utilisez-le pour créer des pages de contenu.

    • Lorsque vous utilisez un modèle pour créer une page, il n’existe aucune différence visible ni indication permettant de distinguer les modèles statiques des modèles modifiables.
    • Pour le créateur de pages, le processus est transparent.

    Pour plus d’informations sur la façon dont un créateur de pages utilise le modèle pour créer une page, voir Création et organisation des pages.

    Pour obtenir des informations techniques sur la création de pages à l’aide de modèles modifiables, consultez la section Pages de contenu créées de ce document.

Remarque :

La bibliothèque cliente de l’éditeur suppose que l’espace de noms cq.shared existe dans les pages de contenu. Si cet élément est absent, l’erreur JavaScript Uncaught TypeError: Cannot read property ’shared’ of undefined est renvoyée.

cq.shared est inclus dans tous les exemples de pages de contenu. Par conséquent, tout contenu basé sur ces pages inclut automatiquement cq.shared. Toutefois, si vous décidez de créer vos propres pages de contenu à partir de zéro, sans vous servir de l’exemple de contenu, vous devez veiller à inclure l’espace de noms cq.shared.

Pour plus d’informations, voir Utilisation des bibliothèques côté client.

Attention :

Ne saisissez jamais d’informations qui doivent être internationalisées dans un modèle.

Dossiers de modèles

Pour organiser vos modèles, vous pouvez utiliser les dossiers suivants :

  • Global
  • Spécifique au site
    Les dossiers spécifiques au site que vous créez pour organiser vos modèles sont créés avec des privilèges administrateur de gestion de comptes.

Remarque :

Bien que vous puissiez imbriquer vos dossiers, lorsque l’utilisateur les visualise dans la console Modèles, ils sont présentés sous la forme d’une structure plate.

Dans une instance AEM standard, le dossier Global existe déjà dans la console de modèles. Il contient les modèles par défaut et fait office de dossier de rechange si le dossier actif ne contient pas de stratégies et/ou de types de modèles. Vous pouvez soit ajouter vos modèles par défaut à ce dossier, soit créer un dossier (recommandé).

Remarque :

Il est conseillé de créer un dossier pour stocker vos modèles personnalisés et de ne pas utiliser le dossier Global.

Attention :

Les dossiers doivent être créés par un utilisateur disposant des droits admin.

Les types de modèles et les politiques sont hérités dans tous les dossiers selon l’ordre de priorité suivant :

  1. Dossier actif
  2. Parent(s) du dossier actif
  3. /conf/global
  4. /apps
  5. /libs

Une liste de toutes les entrées autorisées est créée. Si des configurations se chevauchent (chemin/libellé), seule l’instance la plus proche du dossier actif s’affiche pour l’utilisateur.

Pour créer un dossier, vous pouvez procéder de l’une des façons suivantes :

  • Soit par programmation, soit en utilisant CRXDE Lite
  • En utilisant l’explorateur de configurations

Utilisation de CRXDE Lite

  1. Un nouveau dossier (sous /conf) peut être créé pour votre instance, soit par programmation soit avec CRXDE Lite.

    La structure ci-dessous doit être utilisée :

    /conf
        <your-folder-name> [sling:Folder]
            settings [sling:Folder]
                wcm [cq:Page]
                    templates [cq:Page]
                    policies [cq:Page]
  2. Vous pouvez ensuite définir les propriétés ci-dessous sur le nœud racine du dossier :

        <nom-votre-dossier> [sling:Folder]

    Nom : jcr:title

    • Type : Chaîne
    • Valeur : titre (du dossier) que vous souhaitez afficher dans la console Modèles.
  3. Outre les autorisations et les droits de création standard (par exemple, content-authors), vous devez maintenant affecter les groupes et définir les droits d’accès nécessaires (listes de contrôle d’accès) pour que les auteurs puissent créer des modèles dans le nouveau dossier.  

    Le groupe template-authors est le groupe par défaut qui doit être affecté. Pour plus d’informations, consultez la section suivante ACL et groupes.

    Pour plus d’informations sur la gestion et l’affectation de droits d’accès, voir Gestion des droits d’accès

Utilisation de l’explorateur de configurations

  1. Accédez à Navigation globale -> Outils > Explorateur de configurations.

    Les dossiers existants sont répertoriés à gauche, y compris Global.

     

  2. Cliquez sur Créer.

  3. Les champs suivants doivent être configurés dans la boîte de dialogue Créer une configuration :

    • Titre : indiquez un titre pour le dossier de configuration.
    • Modèles modifiables : cochez la case pour autoriser les modèles modifiables dans ce dossier.
  4. Cliquez sur Créer

Remarque :

Dans l’explorateur de configurations, vous pouvez modifier le dossier global et activer l’option Modèles modifiables si vous souhaitez créer des modèles dans ce dossier. Il ne s’agit toutefois pas de la méthode recommandée.

ACL et groupes

Une fois vos dossiers de modèles créés (soit via CRXDE, soit à l’aide de l’explorateur de configurations), des listes de contrôle d’accès (ACL) doivent être définies pour les groupes appropriés afin que les dossiers de modèles garantissent une protection adéquate.

Les dossiers de modèles destinés à l’implémentation de référence We.Retail peuvent être utilisés à titre d’exemple.

Groupe template-authors

Le groupe template-authors est utilisé pour gérer l’accès aux modèles. Il est fourni en standard avec AEM, mais il est vide. Les utilisateurs doivent donc être ajoutés au groupe pour le projet/site.

Attention :

Le groupe template-authors est destiné uniquement aux utilisateurs qui doivent être en mesure de créer des modèles.

La modification des modèles est une fonctionnalité très puissante qui, si elle n’est pas exécutée correctement, peut entraîner l’échec des modèles existants. Par conséquent, ce rôle doit être ciblé et ne contenir que des utilisateurs qualifiés.

Le tableau suivant récapitule les autorisations nécessaires pour la modification de modèles.

Chemin d’accès Rôle / Groupe Autorisations
Description
/conf/<votre-dossier>/settings/wcm/templates Auteurs de modèles
lecture, écriture, réplication Auteurs de modèles qui créent, lisent, mettent à jour, suppriment et répliquent des modèles dans un espace /conf spécifique au site
Utilisateur web anonyme read L’utilisateur web anonyme doit lire des modèles lors du rendu d’une page
Auteurs de contenu réplication Les auteurs de contenu doivent activer les modèles d’une page lors de l’activation d’une page
/conf/<votre-dossier>/settings/wcm/policies Auteur de modèles lecture, écriture, réplication Auteurs de modèles qui créent, lisent, mettent à jour, suppriment et répliquent des modèles dans un espace /conf spécifique au site
Utilisateur web anonyme read L’utilisateur web anonyme doit lire des stratégies lors du rendu d’une page
Auteurs de contenu réplication Les auteurs de contenu doivent activer les stratégies d’un modèle de page lors de l’activation d’une page
/conf/<site>/settings/template-types Auteur de modèles read L’auteur de modèles crée un modèle sur la base de l’un des types de modèles prédéfinis.
Utilisateur web anonyme aucun L’utilisateur web anonyme ne doit pas accéder aux types de modèle

Ce groupe template-authors par défaut couvre les configurations de projet dans lesquels tous les membres de template-authors sont autorisés à accéder à l’ensemble des modèles et à en créer. S’agissant des configurations plus complexes, dans lesquelles plusieurs groupes d’auteurs de modèles sont nécessaires pour séparer l’accès aux modèles, il convient de créer davantage de groupes de ce type. Cependant, les autorisations relatives aux groupes d’auteurs de modèles restent les mêmes.

Modèles hérités sous /conf/global

Les modèles ne doivent normalement plus être stockés dans /conf/global. Cependant, pour certaines installations plus anciennes, il se peut qu’il en reste toujours à cet emplacement. Dans ce cas UNIQUEMENT, les chemins d’accès /conf/global ci-dessous doivent configurés explicitement.

Chemin d’accès Rôle / Groupe Autorisations
Description
/conf/global/settings/wcm/templates Auteurs de modèles lecture, écriture, réplication Auteurs de modèles qui créent, lisent, mettent à jour, suppriment et répliquent des modèles dans /conf/global
Utilisateur web anonyme read L’utilisateur web anonyme doit lire des modèles pendant le rendu d’une page
Auteurs de contenu réplication Les auteurs de contenu doivent activer les modèles d’une page lors de l’activation d’une page
/conf/global/settings/wcm/policies Auteur de modèles lecture, écriture, réplication Auteurs de modèles qui créent, lisent, mettent à jour, suppriment et répliquent des modèles dans /conf/global
Utilisateur web anonyme read L’utilisateur web anonyme doit lire des stratégies lors du rendu d’une page
Auteurs de contenu réplication Les auteurs de contenu doivent activer les stratégies d’un modèle de page lors de l’activation d’une page
/conf/global/settings/wcm/template-types Auteur de modèles read L’auteur de modèles crée un modèle sur la base de l’un des types de modèles prédéfinis
Utilisateur web anonyme aucun L’utilisateur web anonyme ne doit pas accéder aux types de modèle

Type de modèle

Lors de la création d’un modèle, vous devez spécifier un type :

  • Ces types de modèle fournissent effectivement des modèles pour un modèle. Lors de la création d’un modèle, la structure et le contenu initial du type sélectionné sont utilisés.
    • Le type est copié afin de créer le modèle.
    • Une fois la copie effectuée, la seule connexion entre le modèle et son type est une référence statique à des fins d’information.
  • Les types de modèle vous permettent de définir les éléments suivants :
    • Le type de ressource du composant de page.
    • La stratégie du nœud racine, laquelle définit les composants autorisés dans l’éditeur de modèles.
    • Il est recommandé de définir les points d’arrêt pour la grille réactive et la configuration de l’émulateur mobile au niveau du type d’émulateur. Cette opération est facultative, car la configuration peut également être définie sur le modèle individuel (voir Types de modèle et groupes de terminaux mobiles).
  • AEM fournit une petite sélection de types de modèle prêts à l’emploi tels que Page HTML5 et Page de formulaire adaptatif.
    • D’autres exemples sont fournis dans le cadre de l’exemple de contenu We.Retail.
  • En règle générale, les types de modèle sont définis par des développeurs.

Les types de modèle prêts à l’emploi sont stockés sous :

  • /libs/settings/wcm/template-types

Attention :

Vous ne devez rien modifier dans le chemin /libs. Cela est dû au fait que le contenu de /libs sera écrasé la prochaine fois que vous mettrez à niveau votre instance (et éventuellement lors de l’application d’un correctif logiciel ou d’un Feature Pack).

Les types de modèle spécifiques à un site doivent être stockés dans l’emplacement comparable :

  • /apps/settings/wcm/template-types

Les définitions de vos types de modèle personnalisés doivent être stockées dans des dossiers définis par l’utilisateur (ce qui est recommandé) ou bien dans global. Par exemple :

  • /conf/<mon-dossier-01>/<mon-dossier-02>/settings/wcm/template-types
  • /conf/<mon-dossier>/settings/wcm/template-types
  • /conf/global/settings/wcm/template-types

Attention :

Les types de modèle doivent respecter la structure de dossiers correcte (à savoir /settings/wcm/…). Dans le cas contraire, ils seront introuvables.

Types de modèle et groupes de terminaux mobiles

Les groupes de périphériques utilisés pour un modèle modifiable (défini en tant que chemin d’accès relatif de la propriété cq:deviceGroups) définissent les terminaux mobiles disponibles comme émulateurs dans le mode de mise en page de la création de pages. Vous pouvez définir cette valeur à deux emplacements :

  • Sur le type de modèle modifiable
  • Sur le modèle modifiable

Lors de la création d’un modèle modifiable, la valeur est copiée du type de modèle vers le modèle individuel. Si la valeur n’est pas définie sur le type, elle peut être définie sur le modèle. Une fois le modèle créé, il n’hérite d’aucun élément du type.

Attention :

La valeur de cq:deviceGroups doit être définie en tant que chemin d’accès relatif, tel que mobile/groups/responsive, et non comme chemin d’accès absolu, comme /etc/mobile/groups/responsive.

Remarque :

Avec les modèles statiques, la valeur de cq:deviceGroups peut être définie à la racine du site.

Avec les modèles modifiables, cette valeur est désormais stockée au niveau du modèle et n’est pas prise en charge au niveau racine de la page.

Création de types de modèle

Si vous avez créé un modèle qui peut servir de base pour d’autres modèles, vous pouvez le copier en tant que type de modèle.

  1. Créez un modèle qui servira de base pour votre type de modèle. Pour ce faire, procédez comme vous le feriez pour n’importe quel modèle modifiable, en suivant ces instructions.

  2. À l’aide de CRXDE Lite, copiez le nouveau modèle depuis le nœud templates dans le nœud template-types sous le dossier de modèles.

  3. Supprimez le modèle du nœud templates sous le dossier de modèles.

  4. Dans la copie du modèle qui se trouve sous le nœud template-types, supprimez toutes les propriétés cq:template et cq:templateType jcr:content.

Vous pouvez également développer votre propre type de modèle en utilisant un exemple de modèle modifiable comme base (disponible sur GitHub).

CODE SUR GITHUB

Vous pouvez trouver le code de cette page sur GitHub.

Définitions de modèle

Les définitions des modèles modifiables sont stockées dans des dossiers définis par l’utilisateur (ce qui est recommandé) ou bien dans global. Par exemple :

  • /conf/<mon-dossier>/settings/wcm/templates
  • /conf/<mon-dossier-01>/<mon-dossier-02>/settings/wcm/templates
  • /conf/global/settings/wcm/templates

Le nœud racine du modèle est de type cq:Template avec l’ossature suivante :

<template-name>
  initial
    jcr:content
      root
        <component>
        ...
        <component>
  jcr:content
    @property status
  policies
    jcr:content
      root
        @property cq:policy
        <component>
          @property cq:policy
        ...
        <component>
          @property cq:policy
  structure
    jcr:content
      root
        <component>
        ...
        <component>
      cq:responsive
        breakpoints
  thumbnail.png

Les éléments principaux sont les suivants :

jcr:content

Ce nœud contient des propriétés pour le modèle :

  • Nom : jcr:title
  • Nom : status
    • Type : Chaîne
    • Valeur : draft, enabled ou disabled

Structure

Définit la structure de la page créée :

  • Est fusionné avec le contenu initial (/initial) lors de la création d’une page.
  • Les modifications apportées à la structure sont répercutées dans toute page créée avec le modèle.
  • Le nœud root (structure/jcr:content/root) définit la liste des composants qui seront disponibles dans la page créée.
    • Les composants définis dans la structure du modèle ne peuvent être ni déplacés ni supprimés dans les pages créées.
    • Une fois qu’un composant est déverrouillé, la propriété editable est définie sur true.
    • Dès qu’un composant non vide est déverrouillé, son contenu est déplacé vers la branche initial.
  • Le nœud cq:responsive contient des définitions pour la mise en page réactive.

Contenu initial

Définit le contenu initial dont une nouvelle page disposera au moment de sa création :

  • Contient un nœud jcr:content copié dans toute nouvelle page.
  • Est fusionné avec la structure (/structure) lors de la création d’une page.
  • Aucune page existante n’est mise à jour si le contenu initial est modifié après la création.
  • Le nœud root contient une liste de composants permettant de définir les éléments qui seront disponibles dans la page créée.
  • Si du contenu est ajouté à un composant en mode de structure et que ce composant est ensuite déverrouillé (ou inversement), ce contenu est utilisé comme contenu initial.

Mise en page

Stratégies de contenu

Les stratégies de contenu (ou de conception) définissent les propriétés de conception d’un composant. Par exemple, les composants disponibles ou les dimensions minimales/maximales. Elles s’appliquent au modèle (et aux pages créées avec le modèle). Les stratégies de contenu peuvent être créées et sélectionnées dans l’éditeur de modèles.

  • La propriété cq:policy, sur le nœud root
    /conf/<votre-dossier>/settings/wcm/templates/<votre-modèle>/policies/jcr:content/root
    fournit une référence relative à la stratégie de contenu du système de paragraphes de la page.
  • La propriété cq:policy, sur les nœuds component-explicit sous root, fournit des liens vers les stratégies relatives aux composants individuels.
  • Les définitions de stratégie proprement dites sont stockées sous :
    /conf/<votre-dossier>/settings/wcm/policies/wcm/foundation/components

Remarque :

Les chemins d’accès des définitions de stratégie dépendent du chemin du composant. cq:policy contient une référence relative à la configuration proprement dite.

Remarque :

L’éditeur de page ne propose pas de mode de conception pour les pages créées à partir de modèles modifiables.

L’arborescence policies d’un modèle modifiable présente la même hiérarchie que la configuration du mode de conception d’un modèle statique sous :

    /etc/designs/<my-site>/jcr:content/<nom-composant>

La configuration du mode de conception d’un modèle statique a été définie par composant de page.

Stratégies de page

Les stratégies de page vous permettent de définir la stratégie de contenu de la page (système de paragraphes principal), soit dans le modèle soit dans les pages créées.

Activation et autorisation d’un modèle à utiliser

  1. Activation du modèle

    Avant de pouvoir être utilisé, un modèle doit être activé en effectuant l’une des opérations suivantes :

    • Activer le modèle à partir de la console Modèles.
    • Définir la propriété d’état (status) sur le nœud jcr:content.
      • Par exemple, sur :
        /conf/<votre-dossier>/settings/wcm/templates/<votre-modèle>/jcr:content
      • Définissez la propriété :
        • Nom : status
        • Type : Chaîne
        • Valeur : enabled
  2. Modèles autorisés

    Par exemple, avec la valeur suivante :

    /conf/<votre-dossier>/settings/wcm/templates/.*

Pages de contenu créées

Les pages créées à partir de modèles modifiables :

  • sont créées avec une sous-arborescence qui est fusionnée à partir de structure et initial dans le modèle ;
  • contiennent des références aux informations contenues dans le modèle et le type de modèle. Pour cela, on utilise un nœud jcr:content avec les propriétés suivantes :
    • cq:template
      Fournit la référence dynamique au modèle proprement dit ; fait en sorte que les modifications apportées au modèle soient répercutées sur les pages proprement dites.
    • cq:templateType
      Fournit une référence au type de modèle.
chlimage_1

Le schéma ci-dessus montre la corrélation entre les modèles, le contenu et les composants :

  • Contrôleur – /content/<mon-site>/<ma-page>
    Page créée faisant référence au modèle. Le contenu contrôle l’ensemble du processus. En fonction des définitions, il accède au modèle et aux composants appropriés.
  • Configuration – /conf/<mon-dossier>/settings/wcm/templates/<mon-modèle>
    Le modèle et les stratégies de contenu associées définissent la configuration de la page.
  • Modèle – Lots OSGi
    Les lots OSGi mettent en œuvre la fonctionnalité.
  • Vue – /apps/<mon-site>/components
    Dans les environnements de création et de publication, le contenu est rendu par des composants.

Lors du rendu d’une page :

  • Modèles :

    • La propriété cq:template du nœud jcr:content sera référencée afin d’accéder au modèle correspondant à cette page.
  • Composants :

    • Le composant de page fusionnera l’arborescence structure/jcr:content du modèle avec l’arborescence jcr:content de la page.
    • Le composant de page autorisera uniquement l’auteur à modifier les nœuds de la structure du modèle qui ont été marqués comme étant modifiables (ainsi que ses éventuels enfants).
    • Lors du rendu d’un composant sur une page, le chemin d’accès relatif de ce composant est prélevé dans le nœud jcr:content ; une recherche est ensuite effectuée dans le même emplacement sous le nœud policies/jcr:content du modèle.
      • La propriété cq:policy de ce nœud pointe vers la stratégie de contenu proprement dite (en d’autres termes, elle contient la configuration de conception de ce composant).
      • De cette manière, vous pouvez disposer de plusieurs modèles qui réutilisent les mêmes configurations de stratégie de contenu.

Ce produit est distribué sous licence Creative Commons Attribution - Pas d’utilisation commerciale - Partage à l’identique 3.0 non transposé  Les publications Twitter™ et Facebook ne sont pas couvertes par les dispositions Creative Commons.

Mentions légales   |   Politique de confidentialité en ligne