Types de contribution
Les modules peuvent ajouter différents types de données aux points d'extension dans la page.
En spécifiant le type de données, un module peut optimiser le chargement de ces données dans la page. Par exemple, toutes les contributions JavaScript à la zone co:config depuis plusieurs modules peuvent être chargées via une seule demande au serveur. Cette demande génère une réponse simple contenant les données de chaque contribution.
Type de contribution : head
- CSS
La syntaxe des contributions de ce type doit être une syntaxe CSS valide et les contributions se trouvent toujours dans l'élément
<head>. Elle est uniquement valide dans le point d'extensionco:head.Utilisez la syntaxe CSS générée qui utilise des adresses URL relatives pour référencer d'autres ressources, comme des images ou d'autres documents CSS. Les adresses URL relatives permettent de résoudre les ressources quelle que soit la racine de contexte dans laquelle elles se trouvent.
- Code JavaScript
Les contributions qui ajoutent le code JavaScript statique l'ajoutent à ce type pour qu'il puisse être mis en cache correctement et éventuellement optimisé par la structure.
Les contributions de ce type ne peuvent pas varier selon le client, en vue d'une optimisation ultérieure du code. Par exemple, n'utilisez pas une source de données qui génère différentes données pour divers navigateurs afin d'éliminer les chemins de code connectés en fonction du type ou de la version du navigateur. A la place, la source de données doit générer les mêmes données, qui fonctionnent sur l'ensemble des navigateurs pris en charge. Les utilisateurs peuvent ensuite télécharger et sauvegarder la sortie combinée sous forme de ressource statique dans un domaine distinct.
Important : Le développeur doit vérifier que le contenu de la contribution n'inclut pas de code malicieux.- Configuration JavaScript statique
La syntaxe des contributions à ce type doit être un code JavaScript valide, les contributions doivent pouvoir être mises en cache publiquement et ne doivent pas dépendre de l'utilisateur courant, de l'état de navigation ni du contexte d'exécution.
Il est courant pour le code JavaScript statique d'utiliser des variables JavaScript qui sont définies dans la portée globale en vue de l'accès aux informations de contexte qui doivent être fournies hors du code de script statique.
Une partie de cette configuration peut être statique d'une page à l'autre et ne changer que lorsque le serveur est redémarré, comme dans le cas de valeurs qui sont extraites des propriétés personnalisées du fournisseur d'environnement de ressources. Ces données peuvent être chargées sous forme de script externe afin de pouvoir être mises en cache pour les utilisateurs et les pages.
Etant donné qu'il est possible d'apporter des modifications en changeant la configuration, cette configuration possède généralement des délais d'expiration de cache relativement courts, de sorte qu'elle puisse être mise en cache publiquement mais qu'elle puisse expirer afin de prendre en compte les éventuelles modifications de configuration.
Le lien vers l'adresse URL qui crée le contenu cumulé fait partie d'une balise de script.
Important : Le développeur doit vérifier que le contenu de la contribution n'inclut pas de code malicieux. Par exemple, les valeurs de configuration lues par une source de données doivent contenir des caractères d'échappement avant de sérialiser les données.- Configuration JavaScript dynamique
Certaines données de configuration utilisées par le code JavaScript sont dynamiques et peuvent changer d'une page ou d'un utilisateur à l'autre. Cette configuration inclut des données telles que l'environnement local courant ou les adresses URL générées dynamiquement par le serveur.
La syntaxe des contributions à ce type doit être un code JavaScript valide et les contributions sont écrites dans le marquage à l'intérieur d'un élément script intégré de sorte qu'elles ne sont jamais mises en cache.
Important : Le développeur doit vérifier que le contenu de la contribution n'inclut pas de code malicieux. Par exemple, les valeurs de configuration lues par une source de données doivent contenir des caractères d'échappement avant de sérialiser les données.- Balisage
Le code des contributions à ce type doit être un code HTML valide dans le contexte du point d'extension concerné. Par exemple, les contributions au point d'extension
co:headne peuvent inclure qu'un marquage valide pour la section <head> de la page. Alternativement, les contributions au point d'extensionco:configne peuvent inclure qu'un marquage valide dans la balise <body>.Ce type est préféré pour les contributions dont le marquage n'est pas essentiellement visuel mais plutôt sémantique, tel le chargement des ressources.
Les modules avec un balisage visuel doivent être documentés et fournis via une zone de contenu dynamique POC URI. Vous pouvez placer cette contribution à un emplacement spécifique dans le modèle de thème relativement à la conception du thème. Si ces contributions au balisage essentielles pour l'emplacement et uniques sont conçues pour être configurées ou modifiées par un utilisateur, la source de données de mappage de zone de contenu dynamique peut être utilisée pour mapper le paramètre POC URI à un autre paramètre URI. Aussi, il est possible d'associer une zone de contenu dynamique à un ID de module de sorte que le rendu des données puisse être influencé par le profil utilisé pour la page.
Il est préférable de ne pas utiliser des attributs dépendants des requêtes pour le rendu des portails, car il arrive que ces attributs ne soient pas disponibles. Par exemple, en mode différé, le contexte de rendu n'est pas disponible.
Type de contribution : config
- Code JavaScript
- Configuration JavaScript statique
- Configuration JavaScript dynamique
- Balisage
Voir la section head pour plus d'informations sur chacune de ces sous-contributions.
Type de contribution : dyn-cs
Les contributions de ce type vous permettent de définir des zones de contenu dynamique via des modules plutôt qu'en les définissant via des fournisseurs d'environnement de ressources. Cela vous permet également d'écraser les zones de contenu dynamique de différentes pages à l'aide de différents modules sur les profils. La seule sous-contribution autorisée est le marquage. Pour plus d'informations, voir Zones de contenu dynamique.
Type de contribution : menu
La seule sous-contribution autorisée est JSON. Pour plus d'informations, voir Structure de menu.
Type de contribution : xslt
La seule sous-contribution autorisée est xslt. Vous pouvez utiliser xslt pour regrouper des ressources xslt dans la hiérarchie du module.