Definizioni di modelli, campi e tipi di componenti field-types

Scopri i campi e i tipi di componenti che possono essere modificati dall’Editor universale nella barra delle proprietà, con alcuni esempi. Scopri come creare una definizione di modello e un collegamento al componente per sfruttare al meglio la tua app.

Panoramica overview

Quando adattate le vostre app per l'uso con l'Editor universale, dovete dotare gli strumenti dei componenti e definire quali campi e tipi di componenti possono essere manipolati nella barra delle proprietà dell'editor. A tale scopo, crea un modello e crea un collegamento a tale modello dal componente.

Questo documento fornisce una panoramica della definizione di un modello, dei campi e dei tipi di componenti disponibili, insieme ad esempi di configurazioni.

TIP
Se non sai come gestire l'app per l'editor universale, consulta il documento Panoramica dell'editor universale per gli sviluppatori AEM.

Struttura definizione modello model-structure

Per configurare un componente tramite la barra delle proprietà nell’Editor universale, è necessario che esista una definizione di modello e che tale definizione sia collegata al componente.

La definizione del modello è una struttura JSON che inizia con un array di modelli.

[
  {
    "id": "model-id",        // must be unique
    "fields": []             // array of fields which shall be rendered in the properties rail
  }
]

Consulta la sezione Fields di questo documento per ulteriori informazioni su come definire l'array fields.

Per utilizzare la definizione del modello con un componente, è possibile utilizzare l'attributo data-aue-model.

<div data-aue-resource="urn:datasource:/content/path" data-aue-type="component"  data-aue-model="model-id">Click me</div>

Caricamento di una definizione di modello loading-model

Una volta creato un modello, è possibile farvi riferimento come file esterno.

<script type="application/vnd.adobe.aue.model+json" src="<url-of-model-definition>"></script>

In alternativa, potete anche definire il modello in linea.

<script type="application/vnd.adobe.aue.model+json">
  { ... model definition ... }
</script>

Campi fields

Un oggetto campo ha la seguente definizione di tipo.

Configurazione
Tipo di valore
Descrizione
Obbligatorio
component
ComponentType
Rendering del componente
name
string
Proprietà in cui i dati sono persistenti
label
FieldLabel
Etichetta del campo
description
FieldDescription
Descrizione del campo
No
placeholder
string
Segnaposto per il campo
No
value
FieldValue
Valore predefinito
No
valueType
ValueType
Convalida standard, può essere string, string[], number, date, boolean
No
required
boolean
Il campo è obbligatorio
No
readOnly
boolean
Campo di sola lettura
No
hidden
boolean
Campo nascosto per impostazione predefinita
No
condition
RulesLogic
Regola per mostrare o nascondere il campo in base a una condizione
No
multi
boolean
Campo multiplo
No
validation
ValidationType
Regola o regole di convalida per il campo
No
raw
unknown
Dati non elaborati che possono essere utilizzati dal componente
No

Tipi di componenti component-types

Di seguito sono elencati i tipi di componenti che è possibile utilizzare per il rendering dei campi.

Descrizione
Tipo componente
Tag AEM
aem-tag
Contenuto AEM
aem-content
Booleano
boolean
Gruppo di caselle di controllo
checkbox-group
Contenitore
container
Frammento di contenuto
aem-content-fragment
Data e ora
date-time
Selezione multipla
multiselect
Numero
number
Gruppo pulsanti di scelta
radio-group
Riferimento
reference
Formato RTF
richtext
Seleziona
select
Scheda
tab
Testo
text

Tag AEM aem-tag

Un tipo di componente tag AEM abilita un selettore di tag AEM, che può essere utilizzato per allegare i tag al componente.

Esempio
code language-json
{
  "id": "aem-tag-picker",
  "fields": [
    {
      "component": "aem-tag",
      "label": "AEM Tag Picker",
      "name": "cq:tags",
      "valueType": "string"
    }
  ]
}
Schermata
Schermata del tipo di componente tag AEM

Contenuto AEM aem-content

Un tipo di componente di contenuto AEM abilita un selettore di contenuti AEM, che può essere utilizzato per impostare riferimenti al contenuto.

Esempio
code language-json
{
  "id": "aem-content-picker",
  "fields": [
    {
      "component": "aem-content",
      "name": "reference",
      "value": "",
      "label": "AEM Content Picker",
      "valueType": "string"
    }
  ]
}
Schermata
Schermata del tipo di componente contenuto AEM

Booleano boolean

Un tipo di componente booleano memorizza un semplice valore true/false renderizzato come un interruttore. Offre un tipo di convalida aggiuntivo.

Tipo di convalida
Tipo di valore
Descrizione
Obbligatorio
customErrorMsg
string
Messaggio che verrà visualizzato se il valore immesso non è un valore booleano
No
Esempio 1
code language-json
{
  "id": "boolean",
  "fields": [
    {
      "component": "boolean",
      "label": "Boolean",
      "name": "boolean",
      "valueType": "boolean"
    }
  ]
}
Esempio 2
code language-json
{
  "id": "another-boolean",
  "fields": [
    {
      "component": "boolean",
      "label": "Boolean",
      "name": "boolean",
      "valueType": "boolean",
      "validation": {
        "customErrorMsg": "Think, McFly. Think!"
      }
    }
  ]
}
Schermata
Schermata del tipo di componente booleano

Gruppo di caselle di controllo checkbox-group

Simile a un booleano, un tipo di componente gruppo casella di controllo consente la selezione di più elementi true/false, riprodotti come più caselle di controllo.

Esempio
code language-json
{
  "id": "checkbox-group",
  "fields": [
    {
      "component": "checkbox-group",
      "label": "Checkbox Group",
      "name": "checkbox",
      "valueType": "string[]",
      "options": [
        { "name": "Option 1", "value": "option1" },
        { "name": "Option 2", "value": "option2" }
      ]
    }
  ]
}
Schermata
Schermata del tipo di componente gruppo casella di controllo

Contenitore container

Un tipo di componente contenitore consente il raggruppamento di componenti. Offre una configurazione aggiuntiva.

Configurazione
Tipo di valore
Descrizione
Obbligatorio
collapsible
boolean
Il contenitore è comprimibile
No
Esempio
code language-json
 {
  "id": "container",
  "fields": [
    {
      "component": "container",
      "label": "Container",
      "name": "container",
      "valueType": "string",
      "collapsible": true,
      "fields": [
        {
          "component": "text-input",
          "label": "Simple Text 1",
          "name": "text",
          "valueType": "string"
        },
        {
          "component": "text-input",
          "label": "Simple Text 2",
          "name": "text2",
          "valueType": "string"
        }
      ]
    }
  ]
}
Schermata
Schermata del tipo di componente contenitore

Frammenti di contenuto content-fragment

Il selettore Frammento di contenuto può essere utilizzato per selezionare un Frammento di contenuto e le relative varianti (se necessario). Offre una configurazione aggiuntiva.

Configurazione
Tipo di valore
Descrizione
Obbligatorio
variationName
string
Nome della variabile per memorizzare la variante selezionata. Se non è definito, non viene visualizzato alcun selettore varianti
No
Esempio 1
code language-json
[
  {
    "id": "aem-content-fragment",
    "fields": [
      {
        "component": "aem-content-fragment",
        "name": "picker",
        "label": "Content Fragment Picker",
        "valueType": "string",
        "variationName": "contentFragmentVariation"
      }
    ]
  }
]
Schermata
Schermata del selettore frammenti di contenuto

Data e ora date-time

Un tipo di componente data e ora consente di specificare una data, un’ora o una combinazione di esse. Offre configurazioni aggiuntive.

Configurazione
Tipo di valore
Descrizione
Obbligatorio
displayFormat
string
Formato con cui visualizzare la stringa della data
valueFormat
string
Formato in cui memorizzare la stringa della data

Offre inoltre un tipo di convalida aggiuntivo.

Tipo di convalida
Tipo di valore
Descrizione
Obbligatorio
customErrorMsg
string
Messaggio che verrà visualizzato se valueFormat non è soddisfatto
No
Esempio 1
code language-json
{
  "id": "date-time",
  "fields": [
    {
      "component": "date-time",
      "label": "Date & Time",
      "name": "date",
      "valueType": "date"
    }
  ]
}
Esempio 2
code language-json
{
  "id": "another-date-time",
  "fields": [
    {
      "component": "date-time",
       "valueType": "date-time",
      "name": "field1",
      "label": "Date Time",
      "description": "This is a date time field that stores both date and time.",
      "required": true,
      "placeholder": "YYYY-MM-DD HH:mm:ss",
      "displayFormat": null,
      "valueFormat": null,
      "validation": {
        "customErrorMsg": "Marty! You have to come back with me!"
      }
    },
    {
      "component": "date-time",
      "valueType": "date",
      "name": "field2",
      "label": "Another Date Time",
      "description": "This is another date time field that only stores the date.",
      "required": true,
      "placeholder": "YYYY-MM-DD",
      "displayFormat": null,
      "valueFormat": null,
      "validation": {
        "customErrorMsg": "Back to the future!"
      }
    },
    {
      "component": "date-time",
      "valueType": "time",
      "name": "field3",
      "label": "Yet Another Date Time",
      "description": "This is another date time field that only stores the time.",
      "required": true,
      "placeholder": "HH:mm:ss",
      "displayFormat": null,
      "valueFormat": null,
      "validation": {
        "customErrorMsg": "Great Scott!"
      }
    }
  ]
}
Schermata
Schermata del tipo di componente data e ora

Frammento di esperienza experience-fragment

Il selettore Frammento esperienza può essere utilizzato per selezionare un Frammento esperienza e le relative varianti (se necessario). Offre una configurazione aggiuntiva.

Configurazione
Tipo di valore
Descrizione
Obbligatorio
variationName
string
Nome della variabile per memorizzare la variante selezionata. Se non è definito, non viene visualizzato alcun selettore varianti
No
Esempio 1
code language-json
[
  {
    "id": "aem-experience-fragment",
    "fields": [
      {
        "component": "aem-experience-fragment",
        "name": "picker",
        "label": "Experience Fragment Picker",
        "valueType": "string",
        "variationName": "experienceFragmentVariation"
      }
    ]
  }
]
Schermata
Schermata del selettore frammenti esperienza

Selezione multipla multiselect

Un tipo di componente a selezione multipla presenta più elementi da selezionare in un elenco a discesa, inclusa la possibilità di raggruppare gli elementi selezionabili.

Esempio 1
code language-json
{
  "id": "multiselect",
  "fields": [
    {
      "component": "multiselect",
      "name": "multiselect",
      "label": "Multi Select",
      "valueType": "string",
      "options": [
        { "name": "Option 1", "value": "option1" },
        { "name": "Option 2", "value": "option2" }
      ]
    }
  ]
}
Esempio 2
code language-json
{
  "id": "multiselect-grouped",
  "fields": [
    {
      "component": "multiselect",
      "name": "property",
      "label": "Multiselect field",
      "valueType": "string",
      "required": true,
      "maxSize": 2,
      "options": [
        {
          "name": "Theme",
          "children": [
            { "name": "Light", "value": "light" },
            { "name": "Dark",  "value": "dark" }
          ]
        },
        {
          "name": "Type",
          "children": [
            { "name": "Alpha", "value": "alpha" },
            { "name": "Beta", "value": "beta" },
            { "name": "Gamma", "value": "gamma" }
          ]
        }
      ]
    }
  ]
}
Schermate
Schermata del tipo di componente a selezione multipla
Schermata del tipo di componente a selezione multipla con raggruppamento

Numero number

Un tipo di componente numero consente di immettere un numero. Offre tipi di convalida aggiuntivi.

Tipo di convalida
Tipo di valore
Descrizione
Obbligatorio
numberMin
number
Numero minimo consentito
No
numberMax
number
Numero massimo consentito
No
customErrorMsg
string
Messaggio che verrà visualizzato se numberMin o numberMax non è soddisfatto
No
Esempio 1
code language-json
{
  "id": "number",
  "fields": [
    {
      "component": "number",
      "name": "number",
      "label": "Number",
      "valueType": "number",
      "value": 0
    }
  ]
}
Esempio 2
code language-json
{
  "id": "another-number",
  "fields": [
   {
      "component": "number",
      "valueType": "number",
      "name": "field1",
      "label": "Number Field",
      "description": "This is a number field.",
      "required": true,
      "placeholder": null,
      "validation": {
        "numberMin": 0,
        "numberMax": 88,
        "customErrorMsg": "You also need 1.21 gigawatts."
      }
    }
  ]
}
Schermata
Schermata del tipo di componente numero

Gruppo pulsanti di scelta radio-group

Un tipo di componente gruppo di scelta consente una selezione reciprocamente esclusiva da più opzioni sottoposte a rendering come gruppo simile a un gruppo di caselle di controllo.

Esempio
code language-json
{
  "id": "radio-group",
  "fields": [
    {
      "component": "radio-group",
      "label": "Radio Group",
      "name": "radio",
      "valueType": "string",
      "options": [
        { "name": "Option 1", "value": "option1" },
        { "name": "Option 2", "value": "option2" }
      ]
    }
  ]
}
Schermata
Schermata del tipo di componente del gruppo radio

Riferimento reference

Un tipo di componente di riferimento consente un riferimento a un altro oggetto dati dall'oggetto corrente.

Esempio
code language-json
{
  "id": "reference",
  "fields": [
    {
      "component": "reference",
      "label": "Reference",
      "name": "reference",
      "valueType": "string"
    }
  ]
}
Schermata
Schermata del tipo di componente di riferimento

Testo formattato rich-text

Il testo RTF consente l’inserimento di testo RTF su più righe. Offre tipi di convalida aggiuntivi.

Tipo di convalida
Tipo di valore
Descrizione
Obbligatorio
maxSize
number
Numero massimo di caratteri consentito
No
customErrorMsg
string
Messaggio che verrà visualizzato se maxSize viene superato
No
Esempio 1
code language-json
{
  "id": "richtext",
  "fields": [
    {
      "component": "richtext",
      "name": "rte",
      "label": "Rich Text",
      "valueType": "string"
    }
  ]
}
Esempio 2
code language-json
{
  "id": "another-richtext",
  "fields": [
    {
      "component": "richtext",
      "name": "rte",
      "label": "Rich Text",
      "valueType": "string",
      "validation": {
        "maxSize": 1000,
        "customErrorMsg": "That's about as funny as a screen door on a battleship."
      }
    }
  ]
}
Schermata
Schermata del tipo di componente area di testo

Seleziona select

Un tipo di componente seleziona consente di selezionare una singola opzione da un elenco di opzioni predefinite in un menu a discesa.

Esempio
code language-json
{
  "id": "select",
  "fields": [
    {
      "component": "select",
      "label": "Select",
      "name": "select",
      "valueType": "string",
      "options": [
        { "name": "Option 1", "value": "option1" },
        { "name": "Option 2", "value": "option2" }
      ]
    }
  ]
}
Schermata
Schermata del tipo di componente selezionato

Linguetta tab

Un tipo di componente Scheda consente di raggruppare altri campi di input in più schede per migliorare l’organizzazione del layout per gli autori.

Una definizione di tab può essere considerata come un separatore nell'array di fields. Tutto ciò che arriva dopo un tab verrà inserito in quella scheda fino a quando non si incontra un nuovo tab, dopo di che i seguenti elementi verranno inseriti nella nuova scheda.

Se desideri che gli elementi vengano visualizzati sopra tutte le schede, è necessario definirli prima di qualsiasi scheda.

Esempio
code language-json
{
  "id": "tab",
  "fields": [
    {
      "component": "tab",
      "label": "Tab 1",
      "name": "tab1"
    },
    {
      "component": "text-input",
      "label": "Text 1",
      "name": "text1",
      "valueType": "string"
    },
    {
      "component": "tab",
      "label": "Tab 2",
      "name": "tab2"
    },
    {
      "component": "text-input",
      "label": "Text 2",
      "name": "text2",
      "valueType": "string"
    }
  ]
}
Schermata
Schermata del tipo di componente Scheda

Testo text

Il testo consente di inserire una singola riga di testo. Include tipi di convalida aggiuntivi.

Tipo di convalida
Tipo di valore
Descrizione
Obbligatorio
minLength
number
Numero minimo di caratteri consentito
No
maxLength
number
Numero massimo di caratteri consentito
No
regExp
string
Espressione regolare che deve corrispondere al testo di input
No
customErrorMsg
string
Messaggio che verrà visualizzato se minLength, maxLength e/o regExp sono violati
No
Esempio 1
code language-json
{
  "id": "simpletext",
  "fields": [
    {
      "component": "text",
      "name": "text",
      "label": "Simple Text",
      "valueType": "string"
    }
  ]
}
Esempio 2
code language-json
{
  "id": "another simpletext",
  "fields": [
    {
      "component": "text",
      "name": "text",
      "label": "Simple Text",
      "valueType": "string",
      "description": "This is a text input with validation.",
      "required": true,
      "validation": {
        "minLength": 1955,
        "maxLength": 1985,
        "regExp": "^foo:.*",
        "customErrorMsg": "Why don't you make like a tree and get outta here?"
      }
    }
  ]
}
Schermata
Schermata del tipo di componente testo
recommendation-more-help
fbcff2a9-b6fe-4574-b04a-21e75df764ab