Définitions de modèles, champs et types de composants field-types
Découvrez les champs et les types de composants que l’éditeur universel peut modifier dans le panneau des propriétés avec des exemples. Découvrez comment instrumenter votre application en créant une définition de modèle et en établissant un lien vers le composant.
Vue d’ensemble overview
Lors de l’adaptation de vos propres applications pour les utiliser avec l’éditeur universel, vous devez instrumenter les composants et définir les champs et types de composants qu’ils peuvent gérer dans le panneau Propriétés de l’éditeur. Pour ce faire, créez un modèle et liez-le au composant.
Ce document offre un aperçu d’une définition de modèle, ainsi que des champs et des types de composants disponibles, avec des exemples de configurations.
Structure de définition du modèle model-structure
Pour configurer un composant via le panneau Propriétés dans l’éditeur universel, vous devez disposer d’une définition de modèle la lier au composant.
La définition du modèle est une structure JSON, commençant par un tableau de modèles.
[
{
"id": "model-id", // must be unique
"fields": [] // array of fields which shall be rendered in the properties panel
}
]
Voir la section Champs de ce document pour plus d’informations sur la définition de votre tableau fields.
Vous pouvez lier un modèle à un composant de deux manières : à l’aide de la définition de composant ou via l’instrumentation.
Liaison à l’aide de la définition de composant component-definition
Il s’agit de la méthode privilégiée pour lier le modèle au composant. Cela vous permet de conserver le lien de manière centralisée dans la définition du composant et de faire glisser les composants d’un conteneur à l’autre.
Il vous suffit d’inclure la propriété model dans l’objet de composant du tableau components dans le fichier component-definition.json.
Pour plus d’informations, consultez le document Définition du composant.
Liaison à l’aide de l’instrumentation instrumentation
Pour utiliser la définition de modèle avec un composant, vous pouvez employer l’attribut data-aue-model.
<div data-aue-resource="urn:datasource:/content/path" data-aue-type="component" data-aue-model="model-id">Click me</div>
- Les projets qui ont mis en œuvre le lien vers le modèle via l’instrumentation continueront à fonctionner en l’état, sans qu’il soit nécessaire d’apporter des modifications.
- Si vous définissez le modèle dans la définition de composant et dans l’instrumentation, c’est l’instrumentation qui sera utilisée.
Chargement d’une définition de modèle loading-model
Une fois un modèle créé, il peut être référencé en tant que fichier externe.
<script type="application/vnd.adobe.aue.model+json" src="<url-of-model-definition>"></script>
Vous pouvez également définir le modèle en ligne.
<script type="application/vnd.adobe.aue.model+json">
{ ... model definition ... }
</script>
Champs fields
Un objet de champ possède la définition de type suivante.
componentComponentTypelabelFieldLabeldescriptionFieldDescriptionvalueFieldValuevalue dans la définition du modèle. Cela permet de s’assurer que ce que vous voyez correspond à ce qui est conservé dans le serveur principal.valueTypeValueTypestring, string[], number, date, booleanrequiredbooleanreadOnlybooleanhiddenbooleanmultibooleanNotez que l’imbrication de conteneurs n’est pas autorisée pour les champs multiples dans le panneau des propriétés.
validationValidationTyperawunknownNom, champ et imbrication nesting
Le champ name peut pointer directement vers une propriété de la ressource actuelle ou, dans le cas de composants dans cq:Pages, utiliser également un chemin vers une propriété imbriquée. Par exemple :
"name": "teaser/image/fileReference"
Types de composants component-types
Vous trouverez ci-dessous les types de composants qui peuvent être utilisés pour le rendu des champs.
aem-tagaem-contentbooleancheckbox-groupcontaineraem-content-fragmentdate-timeaem-experience-fragmentmultiselectnumberradio-groupreferencerichtextselecttabtextBalise AEM aem-tag
Un type de composant de balise AEM active un sélecteur de balises AEM, qui peut être utilisé pour associer des balises au composant.
| code language-json |
|---|
|
Contenu AEM aem-content
Un type de composant de contenu AEM active un sélecteur de contenu AEM, qui peut être utilisé pour sélectionner n’importe quelle ressource AEM. Contrairement au composant de référence qui ne peut sélectionner que des ressources, le composant de contenu AEM peut référencer n’importe quel contenu AEM. Il propose un type de validation supplémentaire.
rootPathstring| code language-json |
|---|
|
Booléen boolean
Un type de composant booléen stocke une valeur vrai/faux simple, rendue sous forme de bouton bascule. Il propose un type de validation supplémentaire.
customErrorMsgstring| code language-json |
|---|
|
| code language-json |
|---|
|
Groupe de cases à cocher checkbox-group
Similaire à un booléen, un type de composant groupe de cases à cocher permet la sélection de plusieurs éléments vrai/faux, rendus sous forme de cases à cocher multiples.
| code language-json |
|---|
|
Conteneur container
Un type de composant conteneur permet le regroupement de composants, y compris la prise en charge de champs multiples. Il propose une configuration supplémentaire. Notez que l’imbrication de conteneurs n’est pas autorisée pour les champs multiples dans le panneau des propriétés
collapsibleboolean| code language-json |
|---|
|
| code language-json |
|---|
|
Fragment de contenu content-fragment
Le sélecteur de fragments de contenu peut être utilisé pour sélectionner un fragment de contenu et ses variantes (si nécessaire). Il propose une configuration supplémentaire.
variationNamestringIl propose également un type de validation supplémentaire.
rootPathstring| code language-json |
|---|
|
Date/Heure date-time
Un type de composant de date et d’heure permet de spécifier une date, une heure ou une combinaison de celles-ci. Il propose des configurations supplémentaires.
displayFormatstringvalueFormatstringIl propose également un type de validation supplémentaire.
customErrorMsgstringvalueFormat n’est pas satisfaite| code language-json |
|---|
|
| code language-json |
|---|
|
Fragment d’expérience experience-fragment
Le sélecteur de fragment d’expérience peut être utilisé pour sélectionner un fragment d’expérience et ses variantes (si nécessaire). Il propose une configuration supplémentaire.
variationNamestringIl propose également un type de validation supplémentaire.
rootPathstring| code language-json |
|---|
|
Sélection multiple multiselect
Un type de composant à sélection multiple présente plusieurs éléments à sélectionner dans une liste déroulante, notamment la possibilité de regrouper les éléments sélectionnables.
| code language-json |
|---|
|
| code language-json |
|---|
|
Nombre number
Un type de composant numérique permet la saisie d’un nombre. Il propose d’autres types de validation.
numberMinnumbernumberMaxnumbercustomErrorMsgstringnumberMin ou numberMax n’est pas satisfaite| code language-json |
|---|
|
| code language-json |
|---|
|
Groupe de cases d’option radio-group
Un type de composant de groupe de boutons radio permet une sélection mutuellement exclusive parmi plusieurs options, rendues sous forme de groupe, similaire à un groupe de cases à cocher.
| code language-json |
|---|
|
Référence reference
Un type de composant de référence active un sélecteur de ressources AEM, qui peut être utilisé pour sélectionner n’importe quelle ressource AEM à référencer. Contrairement au composant de contenu AEM, qui peut sélectionner n’importe quelle ressource AEM, le composant référence peut uniquement référencer des ressources. Il propose un type de validation supplémentaire.
Un type de composant de référence permet de créer une référence à un autre objet de données à partir de l’objet actuel.
| code language-json |
|---|
|
Texte enrichi rich-text
Le texte enrichi permet une entrée de texte enrichi multiligne.
| code language-json |
|---|
|
Sélectionner select
Un type de composant de sélection permet de choisir une seule option dans une liste d’options prédéfinies, présentées dans un menu déroulant.
| code language-json |
|---|
|
Tabulation tab
Un type de composant d’onglet permet de regrouper d’autres champs de saisie sur plusieurs onglets afin d’améliorer l’organisation de la disposition pour les auteurs.
Une définition de tab peut être considérée comme un séparateur dans le tableau des fields. Tout ce qui suit un tab sera placé sur cet onglet jusqu’à ce qu’un nouveau tab soit rencontré, après quoi les éléments suivants seront placés sur le nouvel onglet.
Si vous souhaitez que des éléments apparaissent au-dessus de tous les onglets, ils doivent être définis avant tout onglet.
| code language-json |
|---|
|
Texte text
Le texte permet une saisie sur une seule ligne. Il inclut d’autres types de validation.
minLengthnumbermaxLengthnumberregExpstringcustomErrorMsgstringminLength, maxLength et/ou regExp| code language-json |
|---|
|
| code language-json |
|---|
|