Vous êtes ici

Gérer du contenu typé

Vous avez 30 secondes ?
S'abonner au flux d'actualités
Rubrique: 
Théorie
Difficultée: 
Facile

Créer du contenu

Drupal est un système de gestion de contenu, il est donc évident qu'il permet de gérer du contenu (content). Un contenu peut être de diverse nature (article, sondage, image, vidéo, ...), nous y reviendrons dans le paragraphe suivant. Ce contenu est la notion essentielle de Drupal. Un contenu sur votre site Drupal sera appelé nœud (node). Un nœud est donc un contenu identifiable via un identifiant unique: son ID. Il est caractérisé par son type de contenu (content type) et des métadonnées comme un auteur, une date de création, de modification, etc...
 
Il est important de bien saisir cette notion de nœud. Un nœud aura une url au sein de votre site. Grâce à cette URL, le contenu de ce noeud sera accessible au sein de votre site. Par exemple: une image que vous placez dans l'un de vos articles n'est pas un nœud. Elle n'a donc pas d'URL Drupal et ne s'affichera donc que au sein de votre article: c'est une image de l'article, pas un noeud. L'article dans lequel se trouve l'image a pour sa part une URL, un auteur, une date de création, etc... C'est un noeud !

Etude de cas

Supposons que vous souhaitiez créer une galerie d'images. Vous devez alors déterminer si une image dans une galerie devra être un nœud ? Pour trancher il vous faut vous poser les questions suivantes:
  • Est-ce une galerie collaborative ? Ou chaque auteur crée-t-il sa galerie ?
  • Souhaitez-vous une URL pour la galerie et/ou une pour chaque image ?
  • Chaque image doit-elle pouvoir être commentée individuellement ?
Selon vos réponses, plusieurs solutions techniques s'offrent à vous :
 
a) Vous souhaitez créer un album comme dans Facebook: Pour vous chaque image devra donc être un nœud: l'utilisateur va en effet ajouter une par une les images dans son album, possiblement à des périodes très éloignées dans le temps. Chaque image doit pouvoir être visible et commentée individuellement. Vous créez alors un type de contenu "Image de galerie" et votre galerie sera une vue (nous y reviendrons) groupant ensemble les images qui doivent l'être.
 
b) Vous souhaitez créer une galerie photo simple - une page regroupant pleins de photos de votre mariage, ou de votre dernière convention Star Trek par exemple ! Pour vous chaque "Galerie Photo" sera un nœud: vous crééz alors un type de contenu galerie capable de contenir plusieurs images. Lorsqu'un utilisateur veut créer une galerie, il créera un nœud de type "Galerie Photo" et y uploadera ses photos. Sa galerie aura une URL propre qu'il pourra partager avec ses amis et elle pourra être commentée et partagée. (mais pas chaque photo individuellement).
 
En conclusion, lorsque vous créerez votre site, vous devrez déterminer ce qui sera un nœud (un contenu) et ce qui sera juste une vue, c'est-à-dire un assemblage de nœuds ou de parties de nœud(s).
Euh... Bon ! Là j'ai conscience qu'à ce niveau, cette dernière phrase est un peu difficile ! Mais nous détaillerons plus loin !

Typer son contenu

Vous l'avez compris, chaque contenu a un type. Ce type de contenu (content type) peut déterminer soit la nature du contenu (image, vidéo, etc...), soit son usage.
Par exemple: un tutoriel et une news seront deux types de contenu de même nature: il s'agit de texte, éventuellement agrémenté d'images et de vidéos. En revanche, ce seront leur usage et leur champs (field) qui différeront. Les tutoriaux par exemple devront avoir une introduction et une conclusion, un QCM, etc.. Les news auront une date de publication et une date de péremption. Tutoriel et news sont donc deux types de nœuds différents qui n'auront pas les mêmes champs.

Un contenu = un assemblage de champ

Nous en arrivons donc à la notion de champs (field).
Vous trouverez parfois la dénomination champ CKK (CCK field) pour des raisons historiques. Jusqu'à la version Drupal 6, ce découpage en champ était en effet apporté par un module complémentaire appelé Content Construction Kit ou CCK.
Un type de contenu est donc composé de champs. Ces champs ont eux-mêmes des natures différentes, chacune permettant des configurations différentes liées à cette nature.
Par exemple : un champ peut-être de type fichier (file field); vous pourrez grâce à lui lier un fichier à un nœud, comme une pièce jointe. Vous aurez alors accès à des configurations spécifiques aux fichiers: vous pourrez limiter la taille et le nombre de fichiers, définir les extensions autorisées, etc..
Autre exemple : un champ de type image (image field) est une extension de la notion de fichier. Les extensions possibles seront automatiquement restreintes à des types d'images (png, jpg, gif, ...) et vous aurez accès à des configurations spécifiques aux images: limiter les dimensions de l'image, recadrer ou redimensionner l'image, etc..
 
Par défaut, Drupal fournit un certains nombre de types de champs. Vous pouvez ensuite ajouter des modules complémentaires définissant des types de champs pour à peu près tout ! Pour une URL, email, vidéo, QCM, un sondage Doodle, etc...
 
Exemple de champ pour un contenu Petite Annonce.
 
Voici quelques uns des champs les plus courants:
  • Booléen (boolean) : une case à cocher de type vrai ou faux: soit c'est coché, soit c'est décoché. Par exemple "j'ai 18 ans" (promis je le jure !) En terme d'affichage, ce champ peut:
    • Etre une simple case à cocher.
    • Etre un couple de bouton radio: quand l'un est coché l'autre ne l'est pas et vice-versa.
    • Définir un texte pour l'option "vraie", par exemple "Je suis majeur" et un texte pour la "fausse": "je suis mineur".
  • Nombre (integer, decimal ou float) : permet d'entrer un chiffre. Par exemple, pour un contenu de type "Petite annonce" vous voudrez certainement un champ "prix". Il y a plusieurs types de champs nombre: les nombres à virgule, les entiers, .. Pour un tel champ vous pourrez ainsi :
    • Avoir une ou plusieurs valeurs.
    • Avoir un minimum et un maximum.
    • Un préfixe et un suffixe (par exemple € pour le prix).
    • Avoir une précision (deux chiffres après la virgule).
    • Avoir un séparateur des milliers.
    • ...
  • Fichier (file ou image) : Un champ de fichier permet l'ajout d'un fichier à l'article. Il existe plusieurs sortes de champs fichier: file pour les fichiers génériques et image pour les fichiers images avec des configurations complémentaires. Des modules complémentaires gèrent les videos, ou d'autres types de fichiers. Pour un fichier vous pouvez:
    • Permettre l'ajout d'un, deux, trois, ... ou plusieurs fichiers à l'article.
    • Définir si le fichier est public ou privée (protégé par mot de passe .htaccess).
    • Définir dans quel dossier seront stockés les fichiers téléchargés.
    • Restreindre vos fichiers à certaines extensions seulement.
    • Restreindre la taille de vos fichiers (pas plus de 512Mo par exemple).
    • Restreindre la taille (minimale et maximale) des images (dans le cas d'un fichier image).
    • Appliquer un style d'image (dans le cas des images). Ce style permet par exemple de redimensionner le fichier image.
    • Ajouter un champ titre à l'image.
    • Ajouter un champ alt à l'image (ce champ fournit entre autres un texte qui remplace l'image dans un navigateur en braille).
  • Liste (list) : il en existe plusieurs sortes. Les listes de texte (par exemple une liste de pays), les listes d'entiers (par exemple votre nombre d'enfant), les listes de nombres, etc... Vous trouverez les configurations d'usage du type de la liste, mais pourrez aussi définir les différentes valeurs de celle-ci :
    • La liste peut être une liste de cases à cocher ou une liste déroulante.
    • Une, deux, trois ou... plusieurs valeurs peuvent être choisies.
  • Texte (text) : il s'agit d'une zone où l'utilisateur peut ajouter du texte. Cela peut-être un champ long (pour taper un article) ou court (pour taper un prénom), avec ou sans résumé associé. Pour un texte, vous pouvez :
    • Ajouter une ou plusieurs valeurs (par exemple les prénoms de vos enfants).
    • Restreindre le nombre de caractères (cas du texte court), par exemple un prénom de moins de 200 lettres !
    • Restreindre le nombre de lignes (cas du texte long).
    • Filtrer le code ou non: nous verrons qu'il existe des filtres de textes, permettant à l'utilisateur de mettre en forme son texte (gras, italique, etc..) ou au contraire de lui interdire.
Il existe de nombreux champs et il serait fastidieux de tous vous les décrire, mais je pense que vous avez compris le principe ! En synthèse, si vous souhaitez créer un site de petites annonces, vous pourrez créer un contenu de type "Petite annonce" ayant par exemple les champs suivants :
  • Un champ "liste de texte" pour indiquer la catégorie de l'annonce: "à vendre", "recherche" ou encore "informatique", "maison", etc..
  • Un champ "décimal" pour le prix.
  • Un champ "booléen" pour par exemple indiquer si le prix est fixe ou négociable.
  • Un champ "texte long" pour une description.
  • Un champ "email" pour renseigner l'email du vendeur.
  • Un champ optionnel "phone number" pour le numéro de téléphone du vendeur.
  • Un champ optionnel "image" permettant d'ajouter plusieurs images du produit.
  • Un champ "carte gmaps" pour afficher sur une carte où se trouve le produit.
  • ...
Notation: 
Average: 4.3 (21 votes)
Vous avez aimé: