La polyvalence des champs Drupal

Soumis par dinarcon le jeu 25/07/2019 - 07:00

Après avoir compris la différence entre les nœuds et les types de contenu, il faut apprendre un nouveau concept. Les champs (en anglais, fields) sont le mécanisme de stockage de données atomique de Drupal. Ils vous permettent d'enregistrer des informations discrètes qui peuvent être utilisées à des fins d'affichage, de filtrage et de tri. Les champs peuvent être attachés aux nœuds, utilisateurs, termes de taxonomie, blogs et autres entités Drupal. Il est possible de partager un champ entre les paquets d'une même entité. Par exemple, vous pouvez partager un champ d'image entre différents types de contenu (paquets) de l'entité content (nœud).

Ils existent plusieurs types de champs, comme le texte, le nombre, le courriel, le téléphone, les références à d'autres éléments de contenu (nœuds, utilisateurs, termes de taxonomie, etc.), les adresses, les fichiers, les images, et beaucoup plus. Ils sont fournis par modules, donc vous devez avoir le correct type de champ activé pour que le type de champ soit disponible pour utilisation. Par exemple, le noyau Drupal fournit un champ pour stocker les numéros de téléphone, mais vous devez activer manuellement le module “Telephone” pour l'utiliser. D'autres champs, comme celui de stocker les adresses, sont fournis par des modules contribués. Voyons quelques-uns des avantages de l'utilisation des champs avec un cas d'utilisation.

Exemple de cas d'utilisation

Imaginons un concessionnaire automobile prospère avec plus de 1000 véhicules en stock. Le plan marketing pour l'année prochaine prévoit, pour la première fois, une présence en ligne. Dans le cadre de leur stratégie en ligne, ils créeront des profils de médias sociaux et un site Web. Pour chaque voiture en stock, ils créeront un message dans leurs comptes de médias sociaux avec des détails sur la voiture. Pour le site, ils utiliseront Drupal et créeront un type de contenu appelé 'Car'. Tout au long de l'exemple, nous ajouterons des champs à ce type de contenu pour enregistrer les attributs les concernant.

Rendre le contenu facile à trouver

Comme vous pouvez l'imaginer, il est de la plus haute importance pour l'entreprise que les clients potentiels trouvent quels véhicules sont disponibles. Pour l'instant, considérons le cas d'un client qui cherche une Toyota Yaris rouge 2010 dans des médias sociaux. Bien que les sites de médias sociaux offrent des capacités de recherche, il serait très difficile de trouver la voiture, même si elle existait. Le problème est que le contenu de ces plateformes manque de structure. La recherche retournera tout ce qui contient les mots-clés utilisés pour la recherche. Il n'y a pas de fonction d'analyse descendante. Pire encore, des choses qui ne sont pas des voitures pourraient faire partie des résultats de la recherche. Par exemple, des événements qui ont eu lieu en 2010 ou des nouvelles sur les dernières innovations technologiques de Toyota.

Les champs résolvent ce problème en stockant les attributs spécifiques de la voiture séparément et de manière cohérente. C'est-à-dire, vous aurez un champ Drupal pour chaque information que vous voulez rendre consultable. Dans notre exemple, ce serait quatre champs : année, couleur, marque et modèle. Vous pouvez l'étendre si nécessaire. D'autres domaines possibles seraient le type de carburant, le type de transmission, le nombre de portes, etc. Lorsque vous stockez des données de cette façon, vous pouvez utiliser d'autres outils fournis par Drupal pour rendre le contenu consultable. Par exemple, vous pouvez créer une vue avec des filtres exposés.

Si on va créer des champs, il est important de sélectionner le bon type de champ pour obtenir la cohérence nécessaire. Par exemple, vous pouvez utiliser des listes ou des références de termes pour les champs de couleur, de marque et de modèle. Ceci évitera d'avoir deux entrées qui représentent la même chose. Pensez que "bleu clair" et "bleu ciel" représentent la même couleur. De plus, vous éviterez d'introduire des fautes d'orthographe comme "maseratti" au lieu de corriger une "maserati". Pour le champ de l'année, vous pouvez suivre la même approche ou utiliser un champ entier à la place. La chose à garder est qu'un champ entier peut permettre d'entrer des données incohérentes ou invalides. Un utilisateur peut entrer "20010" ou "97" au lieu de "1997" dans le champ de l'année. Bien entendu, cela pourrait être atténué en fixant des valeurs minimales et maximales dans la configuration du champ. Puisque nous n'avons pas besoin d'effectuer des opérations mathématiques sur la valeur de l'année, l’usage de listes ou de termes de référence est valable dans ce cas.

Maintenir la cohérence des données

Les messages sur les médias sociaux et le champ "corps" de Drupal sont comme une toile blanche. On peut écrire des poèmes, télécharger des images de leurs sculptures, et généralement entrer ce qu'ils veulent. Toute cette liberté s'accompagne généralement d'une incohérence des données. Si l’option est disponible, les éditeurs prennent des raccourcis lors de la création de contenu. Voyons un exemple simple de dates :

  • Le 2 juillet, 2017
  • Le 2 juillet, 17
  • 07/02/17
  • 07-02-17
  • 02-07-17

Ces valeurs et bien d'autres encore sont des valeurs possibles qu'un éditeur de contenu peut utiliser. Imaginons que, dans la situation du concessionnaire automobile, nous avons besoin de savoir quand les voitures ont été ajoutées à l'inventaire pour mesurer la vitesse à laquelle elles sont vendues. Cette information clé peut devenir difficile à extraire s'il y a des incohérences dans la façon dont les données ont été introduits. La personne responsable de la génération des rapports devra passer plus de temps à homogénéiser les incohérences, rendant ainsi le processus inefficace. Pire encore, pour un cas comme le 07-02-17, s'agit-il du 2 juillet ou du 7 février ? Le fait est que nous devons être plus restrictifs dans la façon dont nous recueillons l'information.

Les champs Drupal excellent à empêcher les données incohérentes. Vous pouvez imposer un format spécifique à utiliser et aider les éditeurs de contenu à le respecter. Par exemple, vous pouvez configurer le champ de date à saisir en format mois/jour/année-4-chiffres (par ex. 31/12/1999). De plus, vous pouvez fournir un calendrier qui permet de cliquer (pour choisir la bonne date) au lieu de taper à la machine. Pour un champ de date, vous pouvez le configurer dans l'onglet «Gérer l'affichage du formulaire» de la configuration du type de contenu.

Note technique : Les champs ne font pas que renforcer la cohérence visuelle. Ils assurent également la cohérence au niveau du stockage des données (base de données). Ceci est important car il permet d'effectuer des opérations de traitement, de filtrage et de commande des données que nous collectons.

Prévention des données invalides

Dans les médias sociaux ou dans le champ "corps" de Drupal, il est pratiquement impossible d'appliquer des règles de validation dans les données saisies. Voyons les exemples suivants :

  • Âge : -10 ans (âge négatif)
  • Prix : E10 dollars (symbole de devise incorrect)
  • Date : Le 31 février 2000
  • Adresse e-mail : almostrealemail. com (symbole @ manquant)
  • Numéro de téléphone : Je suis beaux :-D (pas même un numéro)

Les champs rendent l'application des critères de validation super facile. La première ligne de défense consiste à choisir le type de champ approprié. De cette façon, Drupal effectuera des vérifications raisonnables, comme exiger qu'un signe arobase (@) soit présent dans une adresse email. Mais ce n'est pas tout ! Le paramétrage d'un champ comme requis empêchera la création de nœuds si le champ a été laissé vide. Pour les champs numériques, vous pouvez définir des minimums et des maximums comme de 1970 à 1979 dans le champ de l'année pour ne permettre qu’aux voitures fabriquées dans les années 70. En outre, vous pouvez définir pour les champs numériques des préfixes et des suffixes tels que $ et "dollars" pour le champ prix, respectivement. Les champs d'image peuvent définir des restrictions sur les extensions de fichier autorisées, la résolution minimale et maximale et la taille maximale des fichiers. Différents types de champs permettent différents critères de validation. Assurez-vous d'utiliser le bon type de champ pour les données que vous voulez collecter.

Multiples formats d'entrées et de sorties

Le nouveau plan de marketing de l'entreprise de concessionnaires automobiles comprend l'organisation d'événements dans différents endroits où les voitures de luxe sont exposées. La deuxième phase du projet de site Web prévoit l'ajout d'une carte interactive qui affiche tous les endroits où se tiendront les prochains événements. Les champs Drupal sont si flexibles qu'ils permettent de collecter les informations dans différents formats. En utilisant l'exemple décrit ci-dessus, nous pourrions avoir un champ qui permet de collecter le lieu de l'événement de différentes manières :

*Une adresse. Exemple : 123, rue Cellar
* Un couple latitude-longitude. Exemple : 12.136389, -86.251389
* Une carte sur laquelle l'utilisateur peut cliquer pour sélectionner le lieu.
* Un widget de téléchargement de fichiers qui permet les fichiers KML (ce type de fichiers stocke des informations géographiques).

Note : il n'y a pas un seul champ Drupal qui permet ces quatre types d'entrées pour les données
de localisation, mais il est possible de le créer.

Tout comme l'acceptation de plusieurs entrées, un champ peut également présenter ses données de plusieurs façons. Par exemple, le créateur de contenu peut entrer l'emplacement comme adresse, mais il est présenté sur une carte. En fait, une fois les données recueillies, vous pouvez les agréger et présenter les résultats. C'est-à-dire, nous pourrions avoir une seule carte qui montre plusieurs marqueurs, un pour chaque événement. Un excellent exemple d'agrégation de données de localisation est "drupical.com". Ce site Web recueille des informations sur les événements Drupal qui se produisent dans le monde entier et les montre ensuite sur une carte interactive. Notez que les pointeurs sur la carte sont codés en couleur. Pour ce faire, une couleur est affectée à la zone qui stocke le type de formation et cette couleur est utilisée ultérieurement pour le marqueur. Oui, il est possible de combiner les données de différents champs en une seule présentation.

Contrôle de visibilité

L'application des contrôles de visibilité est un autre exemple de la polyvalence des champs. Il est possible d'afficher et de masquer le contenu d'un nœud sur la base d’un champ. Considérons la politique suivante de l'activité de la concessionnaire automobile : "Pour reconnaître la loyauté des employés, toute personne ayant travaillé pour l'organisation pendant au moins 3 ans bénéficiera d'une réduction de 20%". Pour cela, nous allons créer deux champs de prix : "Prix" et "Prix réduit". Le prix réduit doit être caché à tout le monde, sauf aux employés qui répondent aux critères spécifiés. Par conséquent, nous pourrions dire que le champ "Prix réduit" est masqué par défaut et l'afficher en fonction du rôle de l'utilisateur qui regarde la voiture. Le prix régulier suivra la logique inverse.

Polyvalence à votre disposition

Les champs sont le cœur du système de modélisation du contenu Drupal. Utilisez-les correctement pour offrir une expérience utilisateur riche. Les éditeurs de contenu peuvent saisir des données valides et cohérentes et les visiteurs du site Web peuvent trouver les informations dont ils ont besoin.

Saviez-vous que les champs Drupal étaient si polyvalents, flexibles et puissants ? Pouvez-vous penser à des cas d'utilisation spécifiques pour les informations couvertes ? Avez-vous d'autres conseils concernant l'utilisation des champs dans Drupal? Veuillez les partager dans les commentaires.

Ajouter un commentaire

Texte brut

  • Aucune balise HTML autorisée.
  • Les lignes et les paragraphes vont à la ligne automatiquement.
  • Les adresses de pages web et les adresses courriel se transforment en liens automatiquement.