Personnaliser la création de pages customizing-page-authoring

CAUTION
AEM 6.4 a atteint la fin de la prise en charge étendue et cette documentation n’est plus mise à jour. Pour plus d’informations, voir notre période de support technique. Rechercher les versions prises en charge here.
CAUTION
Ce document décrit comment personnaliser la création de pages dans l’IU tactile moderne et ne s’applique pas à l’IU classique.

AEM fournit divers mécanismes pour vous permettre de personnaliser la fonctionnalité de création de pages (et la fonction consoles) de votre instance de création.

  • Clientlibs

    Les bibliothèques clientes (clientlibs) vous permettent d’étendre l’implémentation par défaut afin d’obtenir la nouvelle fonctionnalité, tout en réutilisant les fonctions, objets et méthodes standard. Lors de la personnalisation, vous pouvez créer votre propre bibliothèque cliente sous /apps. La nouvelle bibliothèque cliente doit :

    • dépendre de la bibliothèque cliente de création cq.authoring.editor.sites.page ;
    • faire partie de la catégorie cq.authoring.editor.sites.page.hook appropriée.
  • Recouvrements

    Les recouvrements sont basés sur les définitions de nœuds et vous permettent de recouvrir la fonctionnalité standard (dans /libs) avec votre propre fonctionnalité personnalisée (dans /apps). Lors de la création d’une superposition, une copie 1:1 de l’original n’est pas nécessaire, car la fonction fusion de ressources sling autorise l’héritage.

NOTE
Pour plus d’informations, voir Jeu de documentation JS.

Elles peuvent être utilisées de différentes manières pour étendre la fonctionnalité de création de pages dans votre instance AEM. Une sélection est présentée ci-dessous (à un niveau élevé).

NOTE
Pour plus d’informations, voir :
Ce thème est également abordé dans la session AEM GemsPersonnalisation de l’interface utilisateur pour AEM 6.0.
CAUTION
Vous ne devez rien modifier dans le chemin /libs.
En effet, le contenu de /libs est remplacé dès que vous mettez à niveau votre instance (et risque de l’être si vous appliquez un correctif ou un Feature Pack).
La méthode recommandée pour la configuration et d’autres modifications est la suivante :
  1. Recréez l’élément requis (tel qu’il existe dans /libs) sous /apps.
  2. Apportez les modifications désirées dans /apps.

Ajouter un nouveau calque (mode) add-new-layer-mode

Lorsque vous modifiez une page, il existe plusieurs modes disponible. Ces modes sont implémentés à l’aide de calques. Ils permettent d’accéder à différents types de fonctionnalités pour le même contenu de page. Les couches standard sont les suivantes : modifier, prévisualiser, annoter, développer et cibler.

Exemple de calque : État de Live Copy layer-example-live-copy-status

Une instance d’AEM standard fournit la couche MSM. Il accède aux données relatives à gestion multi-site et le surligne dans le calque.

Pour obtenir une démonstration, vous pouvez modifier toute page Copie de langue We.Retail (ou n’importe quelle autre page Live Copy) et sélectionner le mode Statut de Live Copy.

Vous trouverez la définition du calque MSM (pour référence) à l’emplacement suivant :

/libs/wcm/msm/content/touch-ui/authoring/editor/js/msm.Layer.js

Exemple de code code-sample

Il s’agit d’un exemple de package montrant comment créer un nouveau calque (mode), qui est un nouveau calque pour la vue MSM.

CODE SUR GITHUB

Vous pouvez trouver le code de cette page sur GitHub.

Ajout d’une nouvelle catégorie de sélection à l’explorateur de ressources add-new-selection-category-to-asset-browser

L’explorateur de ressources affiche des ressources de différents types/catégories (par exemple, image, documents, etc.). Les ressources peuvent également être filtrées par ces catégories.

Exemple de code code-sample-1

aem-authoring-extension-assetfinder-flickr est un exemple de package qui montre comment ajouter un nouveau groupe à l’outil de recherche de ressources. Cet exemple se connecte au flux public de Flickr et l’affiche dans le panneau latéral.

CODE SUR GITHUB

Vous pouvez trouver le code de cette page sur GitHub.

Filtrage des ressources filtering-resources

Lors de la création de pages, l’utilisateur doit souvent sélectionner parmi des ressources (par exemple, pages, composants, ressources, etc.). Cela peut prendre la forme d’une liste, par exemple à partir de laquelle l’auteur doit choisir un élément.

Pour maintenir la liste à une taille raisonnable et adaptée au cas d’utilisation, un filtre peut être mis en oeuvre sous la forme d’un prédicat personnalisé. Par exemple, si le composant pathbrowser Granite est utilisé pour permettre à l’utilisateur de sélectionner le chemin d’accès à une ressource spécifique, les chemins d’accès présentés peuvent être filtrés comme suit :

Pour plus d’informations sur la création d’un prédicat personnalisé, consultez cet article.

NOTE
Mettre en œuvre un prédicat personnalisé en implémentant l’interface com.day.cq.commons.predicate.AbstractNodePredicate est également possible dans l’IU classique.
Voir article de la base de connaissances exemple d’implémentation d’un prédicat personnalisé dans l’IU classique.

Ajout d’une nouvelle action à une barre d’outils de composant add-new-action-to-a-component-toolbar

Chaque composant (en général) dispose d’une barre d’outils qui permet d’accéder à un éventail d’actions pouvant être entreprises sur ce composant.

Exemple de code code-sample-2

aem-authoring-extension-toolbar-screenshot est un exemple de package qui montre comment créer une action de barre d’outils personnalisée pour effectuer le rendu de composants.

CODE SUR GITHUB

Vous pouvez trouver le code de cette page sur GitHub.

Ajout d’un nouvel éditeur statique add-new-in-place-editor

Éditeur statique standard standard-in-place-editor

Dans une installation AEM standard :

  1. /libs/cq/gui/components/authoring/editors/clientlibs/core/js/editors/editorExample.js

    Contient les définitions des différents éditeurs disponibles.

  2. Il existe une connexion entre l’éditeur et chaque type de ressource (comme dans le composant) qui peut l’utiliser :

    • cq:inplaceEditing

      par exemple :

      • /libs/foundation/components/text/cq:editConfig

      • /libs/foundation/components/image/cq:editConfig

        • property : editorType

          Définit le type d’éditeur statique utilisé lorsqu’une édition statique est déclenchée pour ce composant ; par exemple, text, textimage, image, title.

  3. Les informations de configuration supplémentaires de l’éditeur peuvent être définies à l’aide d’un nœud config contenant des configurations, ainsi qu’un nœud plugin additionnel pour contenir les informations nécessaires à la configuration du module externe.

    Voici un exemple de définition des proportions pour le module externe de recadrage d’image du composant d’image. Notez que, dans la mesure où la taille d’écran peut être très limitée, les proportions de recadrage ont été déplacées vers l’éditeur plein écran et ne sont visibles qu’à cet endroit.

    code language-xml
    <cq:inplaceEditing
            jcr:primaryType="cq:InplaceEditingConfig"
            active="{Boolean}true"
            editorType="image">
            <config jcr:primaryType="nt:unstructured">
                <plugins jcr:primaryType="nt:unstructured">
                    <crop jcr:primaryType="nt:unstructured">
                        <aspectRatios jcr:primaryType="nt:unstructured">
                            <_x0031_6-10
                                jcr:primaryType="nt:unstructured"
                                name="16 : 10"
                                ratio="0.625"/>
                        </aspectRatios>
                    </crop>
                </plugins>
            </config>
    </cq:inplaceEditing>
    
    note caution
    CAUTION
    Nous attirons également votre attention sur le fait que, dans AEM, les rapports de recadrage, tels qu’ils sont définis par la propriété ratio, sont définis sous la forme hauteur/largeur. Cela diffère de la définition conventionnelle de la largeur/hauteur. Cette différence a été créée pour des raisons de compatibilité héritée. Les utilisateurs chargés de la création ne percevront aucune différence, à condition que vous définissiez clairement la propriété name, car c’est cette dernière qui s’affiche dans l’interface utilisateur.

Création d’un éditeur statique creating-a-new-in-place-editor

Pour mettre en œuvre un nouvel éditeur statique (au sein de votre bibliothèque cliente) :

NOTE
Pour obtenir un exemple, reportez-vous à :
/libs/cq/gui/components/authoring/editors/clientlibs/core/js/editors/editorExample.js
  1. Implémentez les éléments suivants :

    • setUp
    • tearDown
  2. Enregistrez l’éditeur (comprend le constructeur) :

    • editor.register
  3. Indiquez la connexion entre l’éditeur et chaque type de ressource (comme dans le composant) qui peut l’utiliser.

Exemple de code pour la création d’un éditeur statique code-sample-for-creating-a-new-in-place-editor

aem-authoring-extension-inplace-editor est un exemple de package qui montre comment créer un éditeur statique dans AEM.

CODE SUR GITHUB

Vous pouvez trouver le code de cette page sur GitHub.

Configurer plusieurs éditeurs statiques configuring-multiple-in-place-editors

Il est possible de configurer un composant de sorte qu’il dispose de plusieurs éditeurs statiques. Lorsque plusieurs éditeurs statiques sont configurés, vous pouvez sélectionner le contenu approprié et ouvrir l’éditeur approprié. Pour plus d’informations, consultez Configuration de plusieurs éditeurs statiques.

Ajout d’une action Nouvelle page add-a-new-page-action

Pour ajouter une nouvelle action de page à la barre d’outils de la page, par exemple une Retour à Sites (console).

Exemple de code code-sample-3

aem-authoring-extension-header-backtosites est un exemple de package qui montre comment créer une action de barre d’en-tête personnalisée pour revenir à la console Sites.

CODE SUR GITHUB

Vous pouvez trouver le code de cette page sur GitHub.

Personnalisation du workflow Demander l’activation customizing-the-request-for-activation-workflow

le workflow d'usine, Demande d’activation, est déclenché automatiquement lorsqu’un auteur de contenu ne dispose pas des droits de réplication appropriés.

Pour bénéficier d’un comportement personnalisé lors d’une telle activation, vous pouvez incruster le workflow Demander l’activation  :

  1. Dans /apps, recouvrez l’assistant Sites  :

    /libs/wcm/core/content/common/managepublicationwizard

    note note
    NOTE
    Cela a pour effet de remplacer l’instance commune de :
    /libs/cq/gui/content/common/managepublicationwizard
  2. Mettez à jour le modèle de workflow et les configurations/scripts associés suivant les besoins.

  3. Retirez, à tous les utilisateurs appropriés, le droit dont ils bénéficient sur l’action replicate pour l’ensemble des pages pertinentes ; pour faire en sorte que ce workflow se déclenche comme une action par défaut lorsque l’un des utilisateurs tente de publier (ou de répliquer) une page.

recommendation-more-help
2315f3f5-cb4a-4530-9999-30c8319c520e