Aller au contenu principal

Schémas et champs additionnels

Détail du fonctionnement du schéma événement d'un agenda et des champs additionnels.

Le schéma événement d'un agenda​

Un agenda propose à sa création un formulaire événement dérivant d'un schéma événement standardisé sur la plateforme. Les champs constitutifs de ce schema sont définis sous la clé schema.fields de la configuration d'un agenda.

{
"title": ...,
"summary": {...},
"settings": {...},
...,
"schema": {
"fields": [
...
]
},
...
}

Chaque champ est détaillé par les clés suivantes:

ClésTypeDescriptionValeurs
fieldtexteLe code du champ, dérive du label initialExemple : thematiques
fieldTypetexteLe type du champExemples : checkbox, radio, select, multiselect, integer, multilingual, textarea, markdown, text...
label, info, placeholder, subtexteTexte ou multilingue. Des valeurs de labels utilisés pour l'affichage du champ sur le formulaire.Exemple : { "fr": "Thématiques" }
optionalbooléenPar défaut true. Le caractère optionnel du champ. Si celui-ci est false, le champ doit être informé pour toute création ou mise à jour de l'événement.
optionsobjet[]Liste d'options pour les champs à choix (ex : radio, checkbox, select...). Pour les créations/mises à jour d'événement, c'est la sous-clé id de l'option à préciser qui doit être spécifiée dans le corps de requête en face du nom du champ.Exemple : [{"id": 1, "label": {"fr": "Musique"}, "value": "musique"}]
schemaTypetexteLe type de schéma d'où provient le champ : event pour les champs standards, agenda ou network pour les champs additionnels.
languagestexte[]La liste des langues en cas de champs texte multilingues. Liste vide pour les champ où les choix de langues sont libresExemple ["fr", "de"]

Par exemple, le titre d'un événement est décrit comme ceci:

{
"languages": [],
"field": "title",
"fieldType": "text",
"optional": false,
"max": 150,
"label": {
"fr": "Titre",
"en": "Title",
"it": "Titolo",
"de": "Titel",
"es": "Título"
},
"placeholder": {
"fr": "Le titre de votre événement",
"en": "Title of your event",
"it": "Il titolo del tuo evento",
"de": "Titel Ihrer Veranstaltung",
"es": "El título de su evento"
},
"purpose": {
"fr": "Titre de l'événement",
"en": "Title of the event",
"es": "Nombre del evento"
},
"schemaType": "event"
}

Les champs additionnels​

Le schéma standard événement peut être complété de champs dits additionnels, définits soit à l'échelle d'un agenda, soit d'un réseau. Lorsque c'est le cas, ces champs apparaissent dans la configuration schema et ont un schemaType qui précise la provenance de cette ajout: agenda ou network.

Types​

Le type de chaque champ est précisé sous la clé fieldType. Un type se décline principalement en trois catégories:

  • Les champs textuels: texte simple, texte multi-ligne, HTML, markdown, multilingue. Dans ces cas, les valeurs sont directement associées aux clés "field" des champs sans conversion particulière.
  • Les champs à options: liste à choix unique, à choix multiple, select ou multi-select. Les valeurs associées aux clés dans ce cas sont les identifiants des options sélectionnées (voir exemple ci dessous).
  • Les champs à fichiers: ceux-cis ne sont pas manipulables par API

En voici la liste complète:

TypeCléÀ optionsMultilinguisme possible
Radioradiox
Checkboxcheckboxx
Selectselectx
Multiselectmultiselectx
Entierinteger
Nombrenumber
Textetextx
Texte multilignetexteareax
Markdownmarkdownx
HTMLhtmlx
Imageimage
Fichierfile

Exemple​

Le cas le plus fréquent que l'on retrouve est qu'un formulaire événement standard soit complété d'un champ de catégories ou thématiques: un champ à choix de type radio ou checkbox:

{
"field": "categories",
"label": "Catégories",
"optional": false,
"options": [
{
"id": 1,
"value": "balade-decouverte-visite",
"label": "Balade - découverte - visite"
},
{
"id": 2,
"value": "conference-rencontre-debat",
"label": "Conférence - rencontre - débat"
},
{
"id": 3,
"value": "exposition",
"label": "Exposition"
},
{
"id": 4,
"value": "fete-salon-marche",
"label": "Fête - salon - marché"
},
{
"id": 5,
"value": "musique",
"label": "Musique"
},
...
],
"fieldType": "checkbox",
"schemaType": "network"
}

Les événements saisis et lus dans l'agenda verront leurs données complétées d'une clé reprenant el nom du champ additionnel: categories:

{
"title": { "fr": "Festival d'été" },
...
"categories": [4],
...
}