Configuration requise

Connaissances préalables

  • Compréhension d'AEM Mobile
  • Maîtrise du processus standard de création et de publication de contenu via le portail à la demande
  • Expérience avec les interfaces On-Demand Services API

Produits requis

  • AEM Mobile
  • Accès à l'interface On-Demand Services API
  • Contenu partagé

Présentation de la fonctionnalité Contenu partagé

Les interfaces On-Demand Services API (précédemment appelées « API Content Producer Service API ») permettent aux développeurs tiers d’intégrer leurs applications aux services à la demande. un service qui permet d’effectuer les tâches suivantes :

  • Gestion des articles
  • Gestion des collections
  • Gestion des produits
  • Gestion des notifications Push

Lorsque vous publiez plusieurs articles HTML, vous pouvez utiliser l’API de contenu partagé pour regrouper le contenu commun à ces articles. Le présent article détaille l’utilisation de la fonctionnalité Contenu partagé.

AEM Mobile vous permet de publier différents articles individuellement. Chacun d’eux est identifié par son nom (article_name). En configurant du contenu partagé, vous autorisez plusieurs articles HTML à se référer aux mêmes fichiers CSS et JavaScript.

Si vous ne définissez pas de contenu partagé, chaque article HTML doit disposer de ses propres fichiers CSS et JS.

Dans cet exemple, les fichiers « css/style.css » et « js/main.js » de chaque article existent en double, ce qui augmente le volume de données à traiter. Avec la fonction Contenu partagé, ces fichiers peuvent être placés dans une même entité sharedContent, à laquelle chacun des articles fera référence.

Lorsque vous utilisez la fonctionnalité Contenu partagé, les fichiers partagés sont placés dans une même entité à laquelle plusieurs articles peuvent faire référence.

Compréhension du contenu partagé dynamique

Avec AEM Mobile version 2017.2 (6 février 2017), la fonctionnalité de contenu partagé dynamique vous permet de mettre à jour un contenu partagé sans avoir à mettre à jour les articles faisant référence à ce contenu partagé. Avant cette version, l'utilisation de l'entité sharedContent exigeait que vous mettiez à jour le contenu partagé et les articles possédant un lien vers ce contenu. Les utilisateurs d'application devaient alors toucher l'invite « Mettre à jour » pour obtenir les mises à jour. Avec cette version, vous pouvez utiliser la nouvelle entité dynamicSharedContent pour charger le contenu partagé. Lorsque vous mettez à jour un contenu partagé dynamique et le publiez, les modifications sont alors automatiquement propagées à tous les articles référençant le contenu. Vous n'avez plus à mettre à jour les articles référençant le contenu, et les utilisateurs n'ont plus besoin de toucher l'invite Mettre à jour.

Les flux de travaux sharedContent et dynamicSharedContent sont pris en charge. Cette section est consacrée à l'utilisation du contenu partagé dynamique. Si vous souhaitez utiliser plutôt le flux de travaux de contenu partagé précédent, remplacez dynamicSharedContent par sharedContent lorsqu'approprié.

 

Utilisation du contenu partagé

  1. Pour chaque article, créez une entité d’article.

  2. Chargez le contenu de l’article (placé dans un fichier zip avec le fichier manifest.xml) dans le service d’importation. Pour plus d'informations, reportez-vous à la page Création d'articles HTML pour AEM Mobile.

  3. Créez une entité de contenu partagé. Le corps de la requête doit contenir les attributs de métadonnées standard pour l’entité. Notez que, dans les exemples suivants, le champ « sc_one » correspond au nom de l’entité dynamicSharedContent.

    PUT /publication/<projectID>/dynamicSharedContent/sc_one
  4. Récupérez l’entité contentUrl de l’entité ainsi créée (partie de la réponse).

    {
        …
        "_links": {
            …
            "contentUrl": "/publication/<projectId>/dynamicSharedContent/sc_one/contents;contentVersion=<cVersion1>/"
        }
    }
  5. Chargez les ressources partagées vers cette entité contentUrl.

    Exemples :

    PUT /publication/<projectId>/dynamicSharedContent/sc_one/contents;contentVersion=<cVersion1>/css/style.css
    PUT /publication/<projectId>/dynamicSharedContent/sc_one/contents;contentVersion=<cVersion1>/js/main.js
  6. Scellez (validez) le contenu de l’entité dynamicSharedContent.

    PUT /publication/<projectId>/dynamicSharedContent/sc_one;version=<entVersion>/contents
  7. Récupérez l’entité contentUrl mise à jour depuis l’entité scellée (partie de la réponse).

    {
        …
        "_links": {
            …
            "contentUrl": "/publication/<projectId>/dynamicSharedContent/sc_one/contents;contentVersion=<cVersion2>/"
        }
    }
  8. Dans l’article, chargez un fichier de lien symbolique renvoyant vers l’entité contentUrl partagée.  Remarque : dans les exemples suivants, le champ « article_one » correspond au nom de l’entité d’article et « shared », au nom du dossier où sera placé le contenu partagé. Pour commencer, obtenez la dernière version de l’entité dynamicSharedContent en effectuant un appel GET. Ensuite, mettez à jour le lien renvoyant vers la ressource partagée.

    PUT /publication/<projectId>/article/article_one/contents;contentVersion=<cVersion3>/dynamicShared
    Content-Type:  application/vnd.adobe.symboliclink+json
    {"href": "/publication/<projectId>/dynamicSharedContent/sc_one/contents;contentVersion=<cVersion2>/"}
  9. Définissez des références supplémentaires renvoyant à une autre entité de partage de contenu au sein du même article.

    PUT /publication/<projectId>/article/article_one/contents;contentVersion=<cVersion3>/fonts
    Content-Type:  application/vnd.adobe.symboliclink+json
    {"href": "/publication/<projectId>/dynamicSharedContent/sc_two/contents;contentVersion=<cVersion2>/"}

    Remarque : l’en-tête Content-Type (Type de contenu) indique que cette ressource est un lien symbolique, le nom de la ressource (« article_one » dans l’exemple) identifie la source du lien symbolique, et le contenu de l’élément chargé identifie la cible du lien.

  10. Scellez (validez) le contenu de l’entité faisant référence au contenu partagé.

     

    PUT /publication/<projectId>/article/article_one;version=<entVersion>/contents

    Les ressources de contenu placés dans article_one peuvent maintenant se référer au contenu de l’entité dynamicSharedContent : pour cela, il suffit de spécifier les préfixes « shared » (pour sc_one) et « fonts » (pour sc_two). L’emplacement des contenus partagés dynamicSharedContent est défini par rapport à celui de l’article HTML : ils se trouvent au niveau supérieur de l’arborescence.

    Le contenu HTML de l’article article_one fait référence aux fichiers JavaScript et CSS de la manière suivante :

    <script src="../shared/js/logic.js"></script>
    <link rel="stylesheet" type="text/css" href="../shared/css/style.css">

    Pour permettre l’accès aux polices, utilisez le code suivant :

    @font-face {
      font-family: "myFirstFont";
      src: "url(../fonts/Exotic_Regular.woff");
    }
  11. Publiez l'entité dynamicSharedContent pour les applications non Preflight ou déclenchez le contrôle en amont pour les applications Preflight afin de propager les modifications pour l'entité dynamicSharedContent à tous les articles de référencement.

    PUT /job
    {
        "workflowType": "publish",
        "entity": {
            "/publication/dynamicSharedContent/sc_one;version=<entVersion>"
        }
    }

Migration d'un contenu partagé existant vers un contenu partagé dynamique

Les nouvelles fonctions de contenu partagé n'affectent pas les flux de travaux de contenu partagé existants. Si vous voulez tirer parti de la fonctionnalité de contenu partagé dynamique, vous devez modifier le contenu partagé existant afin d'activer le nouveau flux de travaux dynamique.

  1. Créez une nouvelle entité dynamicSharedContent.

  2. Ajoutez toutes les ressources de l'entité sharedContent précédente à la nouvelle entité dynamicSharedContent et scellez le contenu de l'entité.

  3. Mettez à jour les fichiers de lien symbolique (symlink) dans chaque article afin qu'ils pointent sur la nouvelle entité pour indiquer la nouvelle entité dynamicSharedContent dans la version scellée.

  4. Prévisualisez (contrôle en amont) le contenu du projet. Le contenu dynamique doit être disponible dans les articles.

  5. Les nouvelles fonctions de contenu partagé n'affectent pas les flux de travaux de contenu partagé existants. Si vous voulez tirer parti de la fonctionnalité de contenu partagé dynamique, vous devez modifier le contenu partagé existant afin d'activer le nouveau flux de travaux dynamique.

    Lorsque vous êtes prêt, publiez le contenu partagé dynamique. Publiez ensuite les articles référençant le contenu partagé.

    Pour mettre à jour un contenu partagé, ajoutez ou modifiez des ressources dans le contenu partagé dynamique et scellez l'entité. Prévisualisez les articles faisant référence au contenu partagé, puis publiez le contenu partagé dynamique. Les modifications seront répercutées dans les articles référençant le contenu.

Remarque :

il n'est actuellement pas possible d'annuler la publication d'un contenu partagé dynamique. Tant que cette option n'est pas prise en charge, une solution consiste à supprimer tous les contenus de fichier du contenu partagé dynamique et de le republier. Vous pouvez également supprimer le lien symbolique (symlink) vers ce contenu partagé dynamique depuis les articles le référençant ou les bannières dynamiques.

Remarques relatives au contenu partagé

Lorsque vous utilisez du contenu partagé dans vos articles, le lecteur doit télécharger l’intégralité de l’entité de contenu partagé avant de pouvoir afficher un article. Nous vous conseillons donc de créer plusieurs entités de contenu partagé au lieu d’une seule grande entité regroupant tout le contenu partagé.

L’emplacement dans lequel se trouve le contenu dépend des paramètres définis lors de la création du lien symbolique, détaillée aux étapes 8 et 9. À l’étape 8, sc_one est placé dans le dossier « shared ». À l’étape 9, sc_two est placé dans le dossier « fonts ». Vous pouvez comparer différents modes de fonctionnement du contenu partagé en utilisant des liens symboliques sous Unix.

Le contenu partagé peut uniquement être géré via l’interface On-Demand Services API. Actuellement, il n’existe aucune interface utilisateur permettant de gérer le contenu partagé dans le portail des services à la demande.

L'interface On-Demand Services API comporte des exemples pour sharedContent dans le dossier /sharedContent.

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