Fermer

février 8, 2019

Traitement des métadonnées de site avec des modules SXA: Partie 2


Contexte

Dans la première partie de cette série nous avons largement décrit la mise en place d'un projet basé sur Helix pour prendre en charge la génération et la mise en cache de métadonnées de site. Dans la partie 2, nous allons l'amener à la ligne d'arrivée en ajoutant des modèles, des actions d'échafaudage, des scripts PowerShell et bien plus encore.

Pour commencer

Avant d’entrer dans les faits concernant Sitecore, nous devons encore configurer un peu le projet afin de nous assurer que nos modifications sont bien suivies. Si vous n'en avez pas déjà un, configurez une configuration de sérialisation Unicorn à l'aide de l'un de ces modèles de base ou de celui fourni dans le github indiquez ci-dessous:


  
    
      
        
                      
            
            
          
        
      
    
  

voulez vous assurer que tous les modèles et rendus sont également sérialisés, mais pour la solution à l'origine de cette configuration, une configuration distincte était la gestion des modèles d'entités et des rendus. Maintenant, nous pouvons vraiment commencer!

Vraiment commencer

Premièrement, nous pouvons ajouter un seul contrôleur de rendu dans / sitecore / layout / Renderings / Feature / YourProject / SiteMetadata . Nous l'appellerons manifeste d'application Web et lui donnerons les valeurs de champ suivantes:

N'oubliez pas que notre contrôleur utilise GetIndexViewName pour résoudre le chemin d'accès à la vue. Nous devons donc fournir au chemin d'accès à la vue de rendu la valeur correcte pour qu'il puisse le trouver. notre point de vue. Assurez-vous que ce rendu est en cours de sérialisation.

Ensuite, nous allons ajouter un modèle d'interface . Un modèle d'interface n'est pas différent d'un modèle Sitecore normal, à la différence que son nom est souligné par un tiret bas indiquant qu'il ne doit pas être utilisé pour la création d'éléments. Il doit être situé à l'adresse / sitecore / templates / Feature / YourProject / SiteMetadata et hériter du modèle standard. Nous allons le nommer _Web App Manifest. Définissez le modèle avec les champs suivants:

Certains champs utilisent des jetons SXA combinés à des requêtes Sitecore, modèle à la fois puissant et flexible. pour échafaudage d'article. En ce qui concerne le champ Types d'affichage, il sera configuré dans un moment une fois que nous aurons commencé à créer des éléments de paramètres. Une fois que cela est créé, retournez dans le fichier Modèles de votre projet et renseignez les champs GUID avec les ID de champ du modèle que vous venez de créer.

Le premier élément de paramètres à créer est un script PowerShell. Recherchez la bibliothèque de scripts PowerShell située dans / sitecore / system / Modules / PowerShell / Bibliothèque de scripts et insérez un dossier de module de script PowerShell dans le menu contextuel, nommé d'après votre projet.

Cliquez avec le bouton droit de la souris sur ce dossier et choisissez Insertion> Module pour afficher une boîte de dialogue. Assurez-vous que la case Activer le module est cochée et nommez-la Métadonnées du site. Laissez les points d'intégration non vérifiés.

Cliquez avec le bouton droit de la souris sur Module et choisissez Insertion> Bibliothèque de scripts PowerShell et nommez-la Fonctions. Sous cela, insérez un script PowerShell appelé AddWebAppManifestMetadata. Votre arbre devrait maintenant ressembler à ceci:

Élevez votre session et collez le contenu de AddWebAppManifestMetadata.ps1 dans le champ Corps du script. Ce script ajoute le rendu Manifest Web App à la conception partielle de métadonnées de votre site sur l’espace réservé head lors de l’installation du module Site. Vous pouvez toujours spécifier une conception partielle ou un espace réservé différent dans le corps du script. Assurez-vous que le dossier de la bibliothèque de scripts PowerShell et ses enfants sont sérialisés.

Enfin, nous pouvons ajouter nos actions d'échafaudage. Accédez à / sitecore / system / Settings / Feature et ajoutez un dossier portant le nom de votre projet. Cliquez avec le bouton droit sur le nœud Feature pour choisir Insertion> Module. Cette action ouvrira une boîte de dialogue dans laquelle vous pourrez fournir des informations et une nouvelle action d'échafaudage de fonctions sera créée.

Personnellement, j'ai eu beaucoup de problèmes Avec cette fonctionnalité, si vous rencontrez des problèmes avec la création de module, vous pouvez le faire manuellement. Ajoutez un autre dossier appelé métadonnées de site dans votre projet, puis ajoutez deux modèles dans ce dossier.

  • / sitecore / templates / Foundation / Experience Accelerator / Échafaudage / Roots / SiteSetupRoot nommé Site Metadata Configuration du site
  • / sitecore / templates / Foundation / Experience Accelerator / Scaffolding / Roots / TenantSetupRoot nommé Configuration du client hébergé sur les métadonnées du site

Vous pouvez également ajouter un dossier appelé Enums à ce moment et le laisser vide. A présent, votre dossier devrait ressembler à ceci:

Assurez-vous de donner un nom unique aux éléments de configuration Site et Tenant, car c'est ce qui apparaîtra dans la boîte de dialogue Ajouter un module. J'aime les désigner comme Métadonnées du site (votre projet) . Une simple astuce sur l'élément de configuration de site consiste à spécifier une dépendance, ce qui empêchera l'installation à moins qu'un client hébergé ait cet élément installé. Pour cela, choisissez l'élément de configuration du client hébergé ou l'action Éditer le modèle de client hébergé qui sera créée prochainement.

Ajoutez d'abord un élément Enums () / Foundation / Experience Accelerator / Common /. Enums ) appelé Types d'affichage. Insérez quatre éléments Enum ( / sitecore / templates / Foundation / Experience Accelerator / Common / Enum ) avec les noms et valeurs suivants:

  1. Navigateur: navigateur
  2. Plein écran: plein écran
  3. UI minimale: minimal-ui
  4. Standalone: ​​standalone

Celles-ci seront référencées par le champ Type d'affichage du modèle d'interface Web App Manifest.

Ensuite, pour l'action d'échafaudage de configuration du site, cliquez avec le bouton droit de la souris et choisissez Insérer> Exécuter le script de site et nommez-le AddWebAppManifestMetadata. Sélectionnez le script PowerShell que vous avez créé dans la liste d'arborescence située à gauche. Ceci exécutera votre script lors de l’installation du module.

Troisième pour l’action d’échafaudage Configuration de client hébergé, cliquez avec le bouton droit de la souris et choisissez Insertion> Modifier le modèle de client hébergé, puis nommez-le Manifeste Web App. Choisissez l'élément Paramètres dans la liste des modèles, sélectionnez Ajouter un modèle de base dans le type d'action, puis recherchez le modèle d'interface dans la liste des arbres. Ceci ajoutera le modèle d'interface à l'élément Settings lors de l'installation du module.

Votre arbre devrait maintenant être complet et ressembler à ceci:

Il ne reste plus qu'à tester notre module!

Finition

Allez chez votre client hébergé et ajoutez un module à l'aide du menu contextuel> Scripts> Ajouter un module locataire. Votre module devrait apparaître dans la liste:

Ajoutez-le, puis procédez de même pour votre site à l'aide du menu contextuel> Scripts> Ajouter un module de site. Votre module devrait s'afficher dans la liste:

Vérifiez que l'installation a fonctionné en recherchant la nouvelle section de l'élément Paramètres et le nouveau contrôle sur la conception partielle de métadonnées. Détails de présentation partagés.

Complétez les valeurs appropriées dans l'élément de configuration, puis publiez le site. Lorsque vous naviguez sur une page, vous devriez être en mesure de voir les balises en tête du code HTML.

Conclusion

Avec ces étapes en place, vous devriez maintenant être capable de contrôler les métadonnées au niveau du site de manière rapide et dynamique tout en les rendant disponibles en tant que module SXA flexible pouvant être utilisé par les autres locataires et sites. Passons en revue une dernière fois ce qui devrait arriver une fois que tous les éléments sont en place:

  1. Les modules SXA personnalisés sont ajoutés à un client et à un site.
  2. Les valeurs du manifeste d'application Web sont fournies via un modèle de section dans l'élément Paramètres du site. .
  3. Le site est publié et le cache du manifeste est effacé à la fin.
  4. Le pipeline HttpRequestBegin est appelé et génère le contenu à partir d'un pipeline personnalisé.
  5. Le manifeste est restitué et éventuellement mis en cache.
  6. La conception partielle des métadonnées appelle le rendu du contrôleur Web App Manifest.
  7. Un référentiel construit sur les méta-balises SXA stockées pour en ajouter de nouvelles et un chemin d'accès au manifeste mis en cache.
  8. Une vue affiche les balises au format HTML dans l'en-tête du document. .

Comme vous pouvez le constater, il s’agissait là d’une entreprise relativement lourde pour un si petit morceau de code généré, mais ce que vous avez appris sur la création de modules SXA et la modification de pipelines aura de plus grandes implications à l’avenir si vous trouvez de plus en plus de cas d’utilisation. celles-ci types de projets. Gardez un œil sur les futures séries où je détaillerai des modules qui traitent des choses bien plus cool comme les langages spécifiques aux locataires et les API de plate-forme de streaming vidéo.

Merci de votre lecture!






Source link