Les Entités

Drupal 7 a introduit la notion d’Entité qui est désormais un élément central de son architecture. Grâce à cette notion, de nombreux problèmes résolus en dehors du Core de Drupal 6 sont désormais uniformisés sur la quasi-globalité de tout ce qui n’est pas paramétrage.

L’entité File Types pour gérer fichiers et médias.

Pour construire votre site et définir la structure de vos contenus, vous allez devoir vous familiariser avec les notions de :

  • Champs de l’entité
  • Bundles et champs des bundles
  • Modes d’affichage
  • Gestion d’affichages
  • Formatteurs

Nous allons tenter de vous débarrasser de tous ces gros mots en quelques pages. Vous allez voir, ce n’est pas si compliqué.

Les champs de l’entité

Tous les champs qui sont attachés aux entités, sont identiques sur tous les bundles.

Pour exprimer les choses plus simplement, prenons l’exemple de l’entité Type de contenus : les champs de l’entité sont communs à tous les types de contenus.

Dans la partie administration, et sur les formulaires d’édition de Drupal 7 : les champs d’entité sont positionnés dans les onglets verticaux en bas du formulaire.

Les champs de l’entité Node communs à tous les types de contenus.

Les champs des bundles

A l’inverse, les champs du Bundle (que l’on peut traduire par “Lot”), sont différents pour chaque bundle d’une entité.

Les champs du Bundles de l’entité File Types.

Pour le cas de l’entité “Type de contenu” : chaque type de contenu va pouvoir disposer de champs différents. Mais les champs de l’entité sont donc identiques pour tous les types de contenus.

Dans la partie administrative, les champs du bundle sont modifiables sur les onglets “Gérer les champs” et “Afficher les champs”. Sur le formulaire d’édition d’un contenu, ils constituent la partie principale du formulaire.

Gestion des champs

La page de gestion des affichages permet de :

  • Créer des champs ou des groupes de champs
  • Modifier des champs ou des groupes de champs
  • Ordonner des champs ou des groupes de champs
  • Insérer / retirer des champs ou un groupe de champ dans un groupe de champ

Pour ce faire, il vous suffit de cliquer sur les liens d’action Editer ou Effacer. Pour les groupes de champs, il faut cliquer sur une petite roue qui symbolise les paramétrages dans Drupal.

Les colonnes Type de champ et Widget affichent la valeur en cours dans un lien : en cliquant dessus vous accéder à une page d’administration. Bien souvent, un type de de champ n’a pas de paramètre à modifier, mais la page existe malgré tout : un message vous informe dans tous les cas de ce que vous pouvez faire.

Le Widget est l’interface utilisée pour modifier la valeur du champ dans le formulaire d’édition.Il ne faut pas le confondre avec le Formatteur qui définit la manière dont le champ est rendu lorsque le champ est présenté au visiteur du site.

Si vous avez activé le module field_group, vous avez la possibilité de regrouper vos champs et améliorer l’ergonomie d’édition avec des tabulations, onglets ou accordéons. Au-delà de quatre ou cinq champs, il est important de s’assurer que l’interface d’administration reste attrayante, lisible et confortable.

Modes d’affichages

Un mode d’affichage définit la manière dont les champs d’un bundle (un type de contenu, un type de bloc, un type de fichier, etc.) sera rendu. Un type de contenu donné pourra disposer de plusieurs type d’affichage.

Vous allez pouvoir choisir quel mode d’affichage utilisé pour présenter votre contenu dans une vue, au sein d’un panel ou encore dans le formatteur d’un champ Entity reference qui permet de créer un lien vers une autre entité.

Il existe un mode d’affichage par défaut qui est utilisé systématiquement si un mode d’affichage spécifique n’a pas été activé pour le supplanter.

Rendez-vous la page de Afficher les champs. En bas de l’onglet Défaut, vous trouverez un groupe de champs replié intitulé “Paramètres d’affichages personnalisés.

Cliquez pour ouvrir le groupe de champs, et activer les modes d’afficahges dont vous avez besoin pour ce type de contenu. Cliquez sur Enregistrer : après rechargement de la page, des onglets complémentaires sont apparus en haut à droite de la page “Afficher les champs”. Il ne vous reste plus qu’à les modifier.

Pour désactiver des affichages que vous souhaitez identiques à ce qui est défini dans l’onglet Défaut : recommencez en désactivant simplement les affichages personnalisés inutiles. Les paramètres par défaut sont de nouveau utilisés.

Nativement, les modes d’affichages disponibles sont définis dans le code. Certains modules comme Display suite ou Entity view modes permettent de créer des modes affichages complémentaires.

Gestion des affichages

Dans l’’onglet Gérer les affichages, vous allez pouvoir faire des actions similaires à l’onglet de Gestion des champs. Mais au lieu d’impacter la présentation du formulaire, vous modifier la manière dont les champs sont présentés. Vous pouvez ainsi :

  • Ordonner des champs ou des groupes de champs
  • Insérer / retirer des champs ou un groupe de champ dans un groupe de champ

Plus important, vous allez définir le rendu de chaque champ, pour chaque mode d’affichage. Vous allez ainsi vous limiter à trois champs sur l’affichage Résumé, placer tous les champs sur la page principale du contenu, et désactiver les liens sur l’affichage Imprimer.

Une interface clé de votre site : explorez, testez, jouez avec autant que nécessaire.

Pour le résumé, vous pouvez décider pour chaque champ que l’étiquette doit être affichée sur la même ligne pour le nom du modèle et ou les catégories séparées par une virgule, au-dessus du champ texte de plusieurs lignes qui décrit le produit, et être cachée pour la photo. Et faire des choix différents pour l’affichage de la page principale du produit.

Mais la colonne la plus importante est celle du Formatteur qui décide comment la valeur du champ est présentée.

Les formatteurs

La colonne Format permet de choisir le formatteur qui sera utilisé.

Le formatteur est l’une des fonctionnalités les plus puissantes de Drupal tout en étant très simple à utiliser pour le webmaster, et assez facile à maîtriser pour le développeur et même le thèmeur.

Dans Drupal 6, il était limité aux nodes. En généralisant les entités, Drupal 7 a permis d’en disposer sur la quasi-totalité des données gérées par le CMS. Ce faisant, il a été ainsi possible de disposer de la même souplesse pour les commentaires ou pour la termes de taxonomies que pour les nodes en matière de champs.

Non seulement vous pouvez modifier l’aspect d’un champ en utilisant un simple menu déroulant, mais il est aussi possible de gérer des options.

Nous avons déjà vu comment utiliser les formatteurs pour modifier la taille de l’image à afficher en fonction du mode d’affichage de l’article. Nous verrons pour chaque type de champs, quelques formatteurs disponibles.

Le formatteur Colorbox propose plus d’une option.

Bean

A part si vous ne faites rien de particulier avec les blocs dans votre site, vous devrier installer Bean.

Ici un type de bloc constitué d’un texte et d’une image.

Bean signifie Block Entities Aren’t Nodes : il faut donc retenir qu’il s’agit d’une Entité, mais plus légère que les Nodes et intégré à la logique de Bloc.

  • Ils sont donc aussi facilement positionnables qu’un bloc n’importe où dans l’interface, et
  • Peuvent être référencés depuis n’importe quel contenu (ou entité) au travers d’un champ Entity Reference.
Comme pour les types de contenus des Nodes, vous pouvez librement construire vos types de blocs avec Bean.

Bean permet de définir des types de blocs de la même manière que vous créez des types de contenus. Vous allez ainsi facilement disposer de blocs publicitaires, de blocs éditoriaux et de blocs purement graphiques.

Notez qu’en éditant le bloc, vous pouvez choisir quel mode d’affichage utiliser.

N’oubliez pas le bug du module Block qui charge tous les blocs activés sur chaque page, et pensez à limiter le nombre de blocs activés depuis ce module : évitez d’avoir plus de dix blocs activés par ce biais. Préférez (mini-)Panels ou passez par des templates si vous en avez la possibilité. Vous pouvez aussi utiliser Views ou Display Suite pour dynamiser le contenu de vos régions en réduisant significativement le nombre de blocs activés.

Les Champs de Contenus

Nous allons détailler ici les types de champs suivants :

  • Texte
  • Email
  • Lien web
  • Référence / Lien vers une autre entitié
  • Date
  • Calendrier
  • Adresse postale
  • FAQ
  • Tableau de données
  • Vue

La liste n’est pas exhaustive, d’autres types de champs existent tels que Nombre, Référence vers un terme de taxonomy, Double field (permet de créer des couples de champs), Liste.

Quelque soit le type de champ, vous allez pouvoir :

  • Partager un même champ entre plusieurs types de contenus ;
  • Définir l’étiquette qui sera affichée dans les formulaires ou dans les contenus ;
  • Rendre le champ obligatoire ;
  • Rédiger quelques lignes d’aide à destination des contributeurs : idéal pour partager votre charte éditoriale ;
  • Définir des variables spécifiques au type de contenus sur lequel vous utilisez le champ ;
  • Choisir une valeur par défaut ;
  • Définir des paramètres propre au champ et valable sur tous les types de contenus qui l’utilisent ;
  • Le nombre de valeurs disponibles pour le champ : le plus souvent, vous choisirez 1 ou Illimité, mais vous pouvez aussi choisir une valeur comprise entre 1 et 10.

Si vous choisissez Illimté : des boutons Ajouter et Supprimer apparaîtront dans l’interface.

Si le champ a au moins une valeur enregistrée, certaines options ne sont plus modifiables. Attention à ne pas vous tromper lors de la création du champ, vous risqueriez d’avoir à retaper ou migrer des données par la suite.

Texte

Derrière le Texte, c’est en fait plusieurs type de champs qui sont proposés :

  • Texte simple sur une seule ligne
  • Texte long sur plusieurs ligne
  • Texte long avec la possibilité de définir un champ optionnel de résumé : celui sera éditorialisé au lieu d’être une version coupée du texte long entré. Il n’est donc pas nécessaire de créer un champ séparé comme avec Drupal 6 ou d’autres CMS.

Pour les champs longs, il est possible de disposer de champs dont la valeur est filtrée : ce qui permet d’insérer du code HTML, d’utiliser des éditeurs visuels ou des langages markup ou wiki. Il est aussi possible de définir la hauteur du champ exprimé en nombre de lignes.

Les champs simples ne peuvent pas bénéficier des filtres de Drupal, et font forcément une seule ligne.

Pour les champs longs avec filtrage activé, lors de l’édition d’un contenu vous allez pouvoir choisir le filtre à appliquer. Si vous utilisez des champs multiples : le filtre pourra être différent pour chaque valeur. Vous n’avez donc pas besoin de créer deux champs différents pour utiliser suivant les cas du code HTML pur, un éditeur visuel et une syntaxe wiki : il vous suffira de modifier le filtre utilisé.

Pour l’affichage, vous allez pouvoir choisir entre différents formatteurs qui permettent d’afficher le texte intégral, ou une versoin résumé du champ.

Quelques champs textes pour créer un article.

Les éditeurs visuels

Drupal n’impose pas l’utilisation d’un éditeur visuel : vous pouvez ne pas en utiliser du tout. Si vous utilisez des filtres pour la syntaxe Wiki ou Markdown, vous n’en ressentirez pas le besoin

Mais si vous décidez d’en utilisez un, Drupal va vous permettre celui qui vous convient le mieux. Et même vous laisser choisir le bon sur le champ que vous voulez, en fonction de ce que vous allez écrire.

Wysiwyg

Le module Wysiwyg permet l’utilisation d’éditeurs visuels dans vos champs de texte multilignes.

La page de paramétrage permet de pouvoir facilement définir les boutons à activer, la langue des bulles d’aide, l’aspect à choisir, la feuille de styles à utiliser et les traitements de nettoyage de code HTML à opérer avant l’enregistrement en base de données, etc.

Inutile donc de mettre le nez dans le guide du développeur pour disposer d’un éditeur visuel sur mesure.

Pour définir un profil Wysiwyg, vous devez attacher un éditeur visuel à un profil de format de texte. Ces formats de textes sont utilisés pour définir les filtres qui seront appliqués par Drupal au moment de l’affichage.

En définissant un profil Wysiwyg, vous définissez donc à la fois une interface de saisie, tout y associant le filtrage qui sera fait sur le contenu, en sortie.

Quelques exemples de Profils sont nécessaires pour mieux illustrer la puissance de cette chaine :

  • Texte filtré : Utilisez une zone de texte avec TinyMCE pour rédiger vos contenus éditoriaux individuels : vous souhaitez insérer des images donc vous allez activer le bouton correspondant côté Wysiwyg, et autoriser la balise
  • côté Format de texte.
  • Markdown : Pour rédiger avec la syntaxe MarkDown, vous allez préférer l’éditeur EpicEditor qui offre une interface double, et activer le filtre Markdown dans le Format de texte correspondant.
  • Code : Pour insérer quelques lignes de code, vous allez laisser votre champ de texte sans éditeur visuel et activer le filtre Prettifier qui applique une coloration syntaxique à votre texte de code.

Ainsi, vous disposez à la fois d’une interface adaptée et d’une sécurisation de votre site.

Ajoutez à ce dispositif le module Better Formats pour vous assurez que tous les formats de texte ne sont pas disponibles pour tous les champs et tous les rôles, mais en fonction de la destination que vous leur avez choisi : vous avez terminé de sécuriser la partie éditoriale de votre site.

Le paramétrage des éditeurs visuels est autant une question de sécurité, qu’une amélioration de l’ergonomie pour vos contributeurs.

Choisir son éditeur visuel pour Wysiwyg

Le module Wysiwyg intègre des interfaces pour une dizaine d’éditeurs visuels différents. Petit tour d’horizon.

TinyMCE : l’éditeur visuel de référence pour Wysiwyg

Le cas CKeditor est un peu particulier

  • FCKeditor : il s’agit d’une ancienne version de l’éditeur, ne l’utilisez pas
  • CKeditor : préférez le module CKEditor for Drupal qui est maintenu par l’éditeur de CKeditor. CKeditor sera l’éditeur visuel par défaut choisi pour D8

EpicEditor : très bien conçu pour la syntaxe Markdown, il permet de prévisualiser le rendu en alternant l’aspect de l’éditeur. En mode plein écran, vous pouvez suivre en temps réel le texte tapé et le rendu final.

MarkItUp : l’éditeur le mieux adapté pour les fans de syntaxes par Markup ou Balises — HTML, Textile, Wiki syntax, Markdown, BBcode.

WYMeditor : un éditeur plutôt léger et disposant de qualités un peu inhabituel en donnant à voir le type de paragraphe, mais aussi la nature des informations typées avec RDFa. Un bon outil pour les geeks attachés à vérifier la qualité du code HTML généré par leur éditeur, et aux standards du web sémantique. D’une manière général, l’éditeur “What You Mean” est plus orienté vers le discours de son utilisateur que vers la mise en forme qui devrait resté le territoire de la feuille de styles et de la Charte graphique du site.

jWysiwyg : non testé, semble maintenu mais la liste des navigateurs testée annoncée dans le fichier README.md sur Github semble un peu ancienne

openWysiwyg : ne semble plus à l’état de l’Art

NicEditor : la documentation du site précise que l’éditeur n’est plus maintenu et recommande CKEditor et TinyMCE pour un usage similaire

Whizzywig : le simple aspect du site de l’éditeur et de l’éditeur visuel lui-même montre que cet éditeur n’est plus en phase avec le web actuel…

YUI editor : YUI pour Yahoo! User Interface. Yahoo! a sans nul doute une grande expérience en matière d’interface. Le lien de la page d’administration de Wisiwyg renvoie vers la version 2 de YUI editor, laquelle recommande la version 3 plus récente. Nous n’avons pas eu l’occasion de tester cette installation, mais l’ergonomie est très séduisante.

Email field

Ce champ permet de contrôler le bon format d’une adresse e-mail et fournit un formatteur pour disposer d’un lien mailto.

Il fournit aussi la fonctionnalité invisimail qui limite la récupération par des robots en cachat l’adresse dans le code HTML, et un lien qui redirige vers un formulaire sécurisé où l’adresse n’apparaît pas.

Link

Le champ Lien permet la création de liens web. Son formulaire d’édition prévoit deux champs :

  • Titre
  • URL
De nombreux paramètres pour rendre le champ simple à l’usage.

Créez votre champ sur la page Gérer les champs en choisissant le type Lien. Sur la page de paramétrages, vous avez la possibilité d’activer la validation de l’adresse fournie : ceci permet de vérifier si le lien est brisé ou si une coquille a été introduite en tapant l’URL.

Il est possible l’URL optionnelle : ceci vous permet de créer un lien dont vous préciserez l’adresse web plus tard.

Le titre du lien peut être obligatoire ou optionnel ou ne pas être proposé : en ce cas, seul le champ URL est utilisé. Il est aussi possible de fournir un titre statique (ex : “Visitez le site de notre partenaire.”) qui mènera vers l’adresse web renseignée.

Vous avez aussi la possibilité de limiter la longueur du champ titre à la saisie, et la longueur affichée de l’URL.

Enfin, vous pouvez renseigner les options “rel” la sécurité et “title” pour l’accessibilité. Une classe peut aussi être appliquée au champ.

S’il est possible de créer des liens internes et externes avec ce module, on préfèrera généralement utiliser Entity Reference pour les liens internes vers des contenus car le rendu est beaucoup plus riche et souple. Là encore, il faut toujours faire attention à partir de la structure du site, et non pas des maquettes graphiques, lors de la conception d’un site.

Deux champs simples pour le contributeurs.

Entity reference

Entity Reference est un champ qui permet de gérer des liens extrêmement riches entre entités, en tirant notamment partie des modes d’affichages.

Créez un champ Entity Reference en vous rendant sur la page Gérer les champs de votre type de contenu ou tout autre bundle d’entité souhaité. Sur la page des paramètres du champ, vous devez choisir l’entité que vous souhaitez référencer, puis les bundles utilisables : une seule entité doit être choisie par champ, mais le nombre de bundles n’est pas limité.

Si le module Views est activé sur votre site, vous avez la possibilité de créer un vue pour définir le périmètre des contenus attachables : vous pouvez ainsi définir l’ensemble des contenus créés par l’utilisateur connecté, qui sont publiés et de type “Article” ou “Evènement”. Il sera ainsi impossible de créer un lien vers la page de mentions légales.

Certaines options dépendent du widget choisi : si vous utiliser un champ avec auto-complétion, vous devrez définir sur le texte entré “Commence par” ou bien “Contient”.

Une fois le champ créé, vous ne pourrez plus modifier l’entité utilisé pour le champ. Par contre, le périmètre autorisé pour choisir un contenu à référencer reste modifiable à tout moment : mais garder en tête les valeurs déjà utilisées, cela peut poser problème lors d’une édition ultérieure de ces contenus.

Attention à ne pas confondre ce Entity Reference avec le module References : celui-ci est à privilégier en cas de migration depuis Drupal 6. Dans tous les autres cas, Entity Reference est préférable car il est intégré au Core de Drupal 8. A noter qu’un module Reference to EntityReference Field Migration a été développé pour accompagner le passage de References vers Entity Reference : il s’agit donc d’un chemin incontournable pour aller de Drupal 6 à Drupal 8.

En vous rendant à présent sur la page Afficher les champs, vous allez pouvoir choisir le formatteur qui vous convient :

  • Label : affiche le titre, avec ou sans un lien pointant vers le contenu référencé. Nous sommes ici dans un usage proche de celui qui est réalisable avec le module Link.
  • Entity id présente l’index du contenu tel qu’enregistré dans la base de données. C’est en fait l’information brute qui est enregistrée lorsque l’on pointe vers un autre contenu.
  • Rendered entity vous permet de choisir le mode d’affichage à utiliser pour insérer le contenu référencé dans le contenu en cours. Toute la puissance du module et de Drupal est là. .

La mise en abîme est bien sûr possible : faites simplement attention à ne pas faire des références croisées entre contenus, cela peut casser votre site.

Cliquez sur Enregistrer et aller voir une des pages concernées : cela donne très vite beaucoup d’idées pour le reste du site.

Rappelez que vous pouvez utiliser cette approche depuis toutes les entités, pour pointer vers toutes les entités. Dans les commentaires, vous pouvez ainsi permettre à vos visiteurs de faire un lien riche vers un article ou un autre commentaire du site.

Un autre exemple est l’utilisation de ce champ pour permettre au membre de sélectionner trois articles qu’il a écrit à usage d’un mode d’affichage Signature. Si vous prévoyez un champ Entity Reference pour l’auteur de l’article, fondé sur le mode d’affichage Signature : tous les articles afficherons une jolie présentation avec titre, résumé et photo des trois articles choisis par son auteur, dans la signature de ses articles.

Installer Drupal 7

Ce tutoriel va vous montrer comment installer Drupal. Ceci vous permettra de disposer d’une installation opérationnelle pour activer les modules du Core qui vous intéressent, puis d’installer les modules communautaires publié sur Drupal.org.

Cette condition préalable étant levée, vous pourrez ainsi jouer par vous-même avec votre site.

Avant de pouvoir le faire, nous devons nous assurez que vous disposez d’un environnement opérationnel qui répond aux exigences techniques. Ainsi, nous lancerons les installations. Nous verrons ainsi qu’il y a peu de différence entre installer Drupal 7, Drupal 8 ou une autre distribution.

Environnement d’installation

Nous n’allons pas entrer dans le détail technique de vos environnements : nous voulons juste nous assurer que vous pouvez disposer rapidement d’un site Drupal opérationnel dans un environnement qui lui permet de fonctionner normalement.

Windows & Mac : Acquia Dev Desktop

Mentionner les MAMP, WAMP et autres EasyPHP. Promouvoir Acquia Dev Desktop, solution optimisée pour Drupal. Intègre drush. Remarque : pas forcément adapté si vous faites aussi tourner des projets Zend ou Symfony sur le même ordinateur

Lorsque l’on souhaite disposer d’un environnement *AMP (Apache — MySQL-PHP) sur Windows ou Mac OS, 3 noms reviennent régulièrement : MAMP pour Mac, WAMP, XAMPP ou EasyPHP pour Windows.

Ces solutions peuvent nécessiter des paramétrages complémentaires avant d’être utilisables pour Drupal. Pour répondre à cette situation, Acquia a développé Acquia Dev Desktop. Il s’agit d’un package Windows immédiatement opérationnelle après installation. Non seulement il fournit un environnement adapté à Drupal, mais il intègre aussi la dernière version stable de Drupal et s’occupe de créer votre premier site en quelques clics après avoir pris soin de mettre à jour les fichiers de paramétrages locaux.

L’interface d’Acquia Dev Desktop dans Windows.

Une version Mac est disponible pour les clients de la marque à la pomme.

Si vous disposez déjà en local d’un environnement de développement PHP, ou que vous souhaitiez ne pas faire que du Drupal : il est probable que l’Acquia Dev Desktop ne soit pas le choix le plus pertinent. Vous disposez probablement des compétences nécessaires pour vous assurer qu’il répond aux exigences techniques de Drupal.

Linux

Installation fondée sur une Debian ou une VM pré-paramétrée à télécharger.

A minima, pour faire fonctionner Drupal, vous avez besoin de disposer d’un serveur web, de PHP 5.3 et d’un serveur MySQL.

Les prérequis techniques de Drupal 7 sont les suivant :

  • Serveur web : Apache, Nginx ou Microsoft IIS. Lighttpd peut aussi être utilisé. Le plus souvent, le serveur web utilisé est Apache.
  • Base de données : MySQL 5.0.15 ou ultérieur avec PDO, PostgreSQL 8.3 ou ultérieur avec PDO, SQLite 3.3.7 ou ultérieur. Oracle et SQL Server peuvent aussi être utilisés grâce à certains modules. Le plus souvent, c’est MySQL qui est utilisé.
  • PHP : 5.3 est la version de référence même si Drupal 7 fonctionne à partir de 5.2.5 — il est important de noter que la dernière version de drush nécessite PHP 5.6 .
  • Espace disque : entre 20 et 50 Mo en fonction des modules nécessaires. Un site complexe peut nécessiter beaucoup plus, notamment si des bibliothèques tiers doivent être ajoutées.
La base de données de Drupal dans Phpmyadmin

Pour une installation minimale sur Debian, vous pouvez taper :

// Installer phpmyadmin vous permettra de manipuler 
// facilement vos bases de données
sudo apt-get install phpmyadmin
// Il vous manque un serveur MySQL car seul un client MySQL
// est nécessaire à phpmyadmin
sudo apt-get install mysql-server

Hébergement mutualisé

Certains hébergements mutualisés vous permettent d’installer un site Drupal en quelques clics. Dans ce cas, suivez les consignes fournis par votre hébergeur.

Si ce n’est pas le cas :

  • Assurez-vous que les spécifications techniques sont réunies ;
  • Récupérez la dernière version stable de Drupal sur http://drupal.org ;
  • Décompressez l’archive et placez les fichiers dans le répertoire Web de votre hébergeur ;
  • Lancez l’installation, comme décrit un peu plus loin.

Drupal en mode service

Des acteurs tels que Acquia et Pantheon proposent des solutions d’hébergement spécialisés sur Drupal. Tant que le site n’est pas mis en ligne avec votre nom de domaine, l’utilisation est gratuite : vous pouvez ainsi installer facilement Drupal, développer et tester gratuitement toute la richesse fonctionnelle du CMS sans vous préoccuper des contraintes techniques.

Une autre solution simple est la création d’un site sur Drupal Gardens. Drupal Gardens est un service en ligne similaire à WordPress.com : vous pouvez créer votre site web en quelques clics. De nombreux modules sont immédiatement disponibles, et des fonctionnalités complémentaires sont accessibles contre un abonnement mensuel. Vous avez aussi la possibilité, à tout moment, d’exporter votre site pour l’installer sur votre serveur local ou distant.

Serveur dédié

Si vous souhaitez utilisez des modules qui nécessitent une personnalisation particulière du serveur, où que vous souhaitez mettre en oeuvre des optimisations particulières, vous aurez besoin de disposer d’un serveur dédié. Dans ce cas, commencez par vous assurer que les spécifications techniques minimales sont couvertes (voir ci-dessus).

Il vous reste alors à passer à l’installation de Drupal.

Installer Drupal 7

Pas à pas d’installation. Partir des tutos de base existants sur l’installation. Alléger autant que possible.

Sur la page d’accueil de Drupal.org, vous trouverez le lien vers la dernière version officielle de Drupal à télécharger.

La page d’accueil de Drupal.org

Sur la page d’accueil de Drupalfr.org, vous trouverez le lien vers la dernière version française officielle de Drupal à télécharger.

Des liens de téléchargement bien en vue sur Drupalfr.org

Dans les lignes qui suivent :

  • Le répertoire d’installation de notre Drupal est noté /mon/drupal.
  • Nous faisons une installation unique dans le sous-répertoire /mon/drupal/sites/default.
  • L’adresse de notre site est : http://monsite.com/.

Avant de lancer l’installation, et si vous ne souhaitez pas être pris en défaut par le script, vous devez faires les tâches suivantes :

  • Créez une nouvelle base de données sur MySQL ou votre autre gestionnaire de bases de données.
  • Vous avez besoin de bien noter : l’utilisateur, le mot de passe, le nom du serveur, le nom de la bases de données.
  • Créez un sous-répertoire /mon/drupal/sites/default/files, et attribuez-le à l’utilisateur de votre serveur web : www-data dans la monde Debian.
  • Placez-vous dans le répertoire /mon/drupal/sites/default, puis copiez le fichier default.settings.php vers settings.php.
  • Attribuer les droits en écriture au fichier settings.php (chmod 666 settings.php) afin qu’il puisse être écrit par le serveur web le temps de l’installation.

Lorsque vous paramétrez votre serveur web, si vous utilisez Apache et que vous souhaitez utiliser .htaccess, vous devez vous assurer que la ligne suivante est bien présente :

AllowOverride All

Installation dans la navigateur

Installation classique

Rendez-vous sur http://monsite.com/ afin de lancer l’installation de votre site Drupal.

Choisissez l’installation “Standard” et cliquez pour continuer.

Si vous avez installé le paquet Français, sélectionnez le français, puis cliquez sur le bouton pour continuer.

Si vous n’avez pas tout préparé correctement, la page Requirements problem apparaît et vous détaille les problèmes de paramétrages identifiés. Sinon, vous ne verrez pas cette page.

Vous arrivez à présent sur la page où vous devez renseigner les données nécessaires à la manipulation de la base de données par Drupal : si le serveur MySQL n’est pas localhost, vous aurez besoin d’ouvrir le groupe de champs Options avancées. Après avoir validé les paramètres de la base de données, si le script d’installation rencontre un problème de connexion, le formulaire vous fournira des messages d’erreurs susceptibles de vous aider.

> Si votre serveur utilise APC (un accélérateur PHP), assurez-vous que le domaine utilisé pour cette installation a bien été exclue : sinon, vous risquez de tenter durant un long moment de dépasser ce stade de l’installation. Si vous modifiez le fichier de paramétrage dansa Apache : redémarrez le serveur pour que cela soit prise en compte. Le cache d’APC sera perdu : cela aura des conséquences temporaires sur les performances des sites du serveur qui bénéficie d’APC.

Une fois la connection au serveur de base de données réussie, vous allez voir une barre d’avancement qui vous fait patienter durant la création de la base de données.

Pour finaliser l’installation, Drupal a besoin d’informations complémentaires afin de rendre votre site opérationnel : nom du site, création du compte administrateur, fuseau horaire, etc.

Si vous installez un autre profil que le profil Standard, vous êtes susceptible d’avoir à répondre à d’autres questions qui peuvent être présentées sur plusieurs pages de paramétrages.

L’installation de votre site est déjà terminée : cliquez sur le lien proposé pour visiter votre nouveau site pour la toute première fois.

Installation faite avec Acquia Dev Desktop

Installer avec l’environnement d’Acquia

Si vous avez installé Acquia Dev Desktop, la création d’un nouveau site se résume à :

L’interface simple d’Acquia Dev Desktop pour créer un nouveau site
  • Cliquez sur Settings et allez sur l’onglet Sites.
  • Cliquez sur le bouton New et choisissez un nom machine pour votre site : il sera utilisé comme sous-domaine de localhost.
  • Cliquez sur OK et laissez faire : l’outil s’occupe de modifier votre fichier hosts local, et votre site sera diponible après une ou deux minutes d’attente.

Installation faite avec Drush

Utiliser Drush pour installer Drupal

L’installation sera encore plus rapide avec Drush. Mais l’interface est réservée aux développeurs.

Vous pouvez aussi utiliser Drush pour créer un site en ligne de commande sans passer par l’interface web. La syntaxe est de la forme :

drush site-install --db-url=mysql://alex:abc123@localhost:3306/monsite --account-name=joe --account-pass=mom standard install_configure_form.site_default_country=FR install_configure_form.update_status_module='array(FALSE,FALSE)' --clean-url=0

La ligne ci-dessus est un peu avancée afin de détailler divers exemples de paramétrages :

  • Un site est installé avec la base de données MySQL monsite qui est gérée sur le serveur localhost(port 3306), en se connectant en tant que alex qui a le mot de passe abc123.
  • Le compte administrateur qui est créé a le login joe et le mot de passe mom.
  • C’est bien le profil Standard qui est utilisé.
  • Lors de l’installation, la langue choisie est le français. Vous devez l’avoir téléchargé avant de lancer le script d’installation pour le pas avoir une erreur.
  • Nous voulons faire un petit site en production, donc nous décidons de désactiver la recherche des informations sur la mise à jour des modules sur le site.
  • Nous n’avons pas activé le module rewrite sur le serveur Apache, donc nous décidons de désactiver la réécriture des URL (clean-url).

Toutes les options de paramétrages sont passables au travers de Drush. Vous pouvez obtenir de l’aide sur cette commande en tapant : drush help site-install.

> Tous les services d’hébergement qui automatisent l’installation d’un site Drupal utilisent cette syntaxe. La distribution Aegir permet même de gérer une ferme de sites Drupal : elle est totalement fondée sur Drush.

L’interface d’une ferme Drupal gérée avec Aegir

Si vous avez déjà créé un site, la ligne suivante le réinstallera à partir des paramétrages présents dans votre fichier settings.php, et créera cet administrateur. Tout sera donc effacé et votre site totalement réinitialisé.

drush site-install --account-name=joe --account-pass=mom

Forums de discussion

Né au début du web, le forum a souvent été déclaré dépassé par les nouveaux outils du web social. Pourtant, il reste un outil simple et efficace pour la communication horizontale, et l’animation de communautés. Plus centré sur la conversation entre les membres que sur le propos personnel de chacun, le Forum reste un outil très populaire, informel et non-hiérarchique.

Drupal fournit nativement une fonctionnalité Forum, mais celui-ci se limite presque à la hiérarchisation d’échanges. Pour retrouver les fonctionnalités complémentaires qui permettent de disposer d’un vrai forum, vous devrez installer Advanced Forum.

Forum

L’interface proposée par le module forum du Core est minimaliste.

Le module Forum livré avec le Core de Drupal 7 est un peu sec : pour disposer de toutes les fonctionnalités habituelles d’un Forum, vous aurez besoin du module Advanced Forum.

Le module Forum fournit les éléments suivants :

  • Une interface utilisateur sous forme de tableau qui permet une navigation simple et hiérarchique entre les différents niveaux qui permettent d’arriver enfin au file de conversation
  • L’administration des Forums disponibles est faite au travers d’un vocabulaire de Taxonomie hiérarchique. Vous n’avez donc pas de limite de profondeurs, mais il faut rester vigilant sur le comportement de l’interface.
  • Les sujets sont des contenus
  • Les réponses aux sujets sont des commentaires
Vous pouvez ajouter Conteneur ou Forum.

Le module fait une distinction entre des Forums et des Containers : les Containers ne peuvent pas recevoir de Sujets de forum, mais sont destinés à regrouper des Forums. Si vous allez créer vos sujets directement dans les pages de gestion du vocabulaire, rien ne permet d’identifer un terme comme étant un Container : ce sera un Forum. Donc prenez soin de bien utiliser l’interface d’administration fournie par le module.

La page qui présente le forum n’est pas une Vue : la conception de ce module date un peu et ne tire pas toute la puissance de la dimension Entité de la taxonomie. Il vous est possible d’ajouter des champs à la définition de votre Forum, mais ceci ne sera pas pris en compte par l’interface qui n’affiche même pas la description attachée au Forum ou Container.

Les Sujets de forum sont des nodes : il est donc possible de les dépublier, les intégrer à un workflow ou les traduire comme n’importe quel autre contenu.

La page de paramétrage d’un forum se limite à une page de taxonomie.

Tant pour les Sujets que pour les Réponses (ce sont des commentaires), il est possible de tirer partie des champs personnalisés que vous voudrez ajouter à ceux-ci. Tout fonctionne comme attendu puisqu’il s’agit des gabarits natifs habituels de Drupal.

Au final, une solution qiu répond à la promesse minimale de la définition d’un Forum, et qui souffre un peu d’un conception à la D6.

Formulaires Web

Pour éditer un contenu, l’administration de Drupal vous fournit des formulaires qui vous permettent d’accomplir cette tâche de la manière la plus adaptée possible.

Un site web a aussi besoin de laisser les internautes donner leur avis. Les formulaires que nous considérons ici sont ceux qui permettent d’envoyer un message ou répondre à une enquête.

Contact

Un formulaire de site simple et efficace.

Drupal fournit nativement un petit formulaire, simple qui permet à chaque membre d’être contacté au travers de son profil sans avoir à rendre public son adresse mail.

Chaque utilisateur dispose aussi de son propre formulaire : aucune adresse mail n’est ainsi divergée.

Un autre formulaire, défini à l’échelle du site, permet d’envoyer un message au webmaster. Il est possible de définir des catégories présentées dans un menu déroulant, auxquelles vous pourrez attacher un ou plusieurs destinataires.

Ce module ne répond qu’à des besoins minimaux, il n’est pas possible, par exemple, de personnaliser les champs du formulaire.

Le formulaire du site peut proposer plusieurs catégories.

Pour chaque catégorie, définissez votre liste de destinataires.