Voilà, voilà... Fin de l'aventure...

 

Fermeture de kolossaldrupal.org dans...


Bonjour tout le monde,

Drupal évolue, les versions changent et Kolossaldrupal.org était essentiellement consacré à la version 6 de Drupal.

Autant dire que les infos présentées ici commencent à dater...

Faute de temps, je ne peux plus garder le site Kolossaldrupal à jour...

Je vous aurais bien proposé de reprendre le flambeau mais... c'est tellement simple de nos jours de se faire son propre site à soi...Pourquoi s'embêter alors ? :-)

Ce site restera donc en l'état, tel qu'il était en 2011...

Ah la la ! Cela ne nous rajeunit pas !

Manuel Vila - Avril 2016

Un site Drupal, étape par étape, partie 5 sur 6

Référence en espagnol sur Cuenco Digital : http://cuencodigital.com/articulos/un_sitio_en_drupal_paso_paso_parte_5.html
4 Avril 2009


La plus grande partie du site étant fonctionnelle, il reste quelques petits détails à régler, tout aussi importants.

Jusqu'à maintenant, le site possède des listes de contenus et des contenus prêts à être créés. Il reste cependant quelques questions qui ne doivent pas être ignorées avant de mettre le site en production.

Les droits Utilisateur

C'est généralement le dernier paramétrage effectué sur un site, les Droits Utilisateur déterminent quels accès au site auront les utilisateurs.

Drupal organise les utilisateurs en leur assignant un rôle. Chaque rôle dispose de privilèges qui font que, par exemple, un utilisateur peut créer ou pas un article, ou installer ou pas des modules sur le site.

Pour Cuenco Digital je n'ai créé qu'un seul rôle, appelé Éditeur. Ce rôle permet que les utilisateurs créent des articles. A la rédaction de ces lignes, je suis le seul utilisateur avec les droits pour créer des articles. Alors, pourquoi créer un nouveau rôle ? L'utilisateur administrateur n'est-il pas suffisant pour cela ?

La réponse dépasse peut-être la portée de cet article. Mais l'une des principales raisons pour laquelle on ne devrait, jamais ni personne, utiliser l'administrateur du site comme utilisateur principal est une question de sécurité. Les attaques XSS, qui sont rarement prises en compte à cause de leur relative innocuité, sont très dangereuses si elles sont exécutés par l'administrateur du site.

C'est pour cette raison que la première chose que j'ai faite au moment de mettre ce site en production a été de créer un autre utilisateur et lui attribuer le rôle Éditeur.

Je m'assure ainsi que, s'il arrivait qu'un code malveillant s'introduise dans le site, en javascript, il n'affecte pas tout le fonctionnement du site mais seulement celui d'un utilisateur ayant moins de privilèges.

Ceci étant dit, la création de rôles entraîne généralement une série de paramétrages associés à ces rôles.

Via le menu Administrer > Gestion des utilisateur > Droits d'accès, on peut paramétrer quels niveaux d'accès auront chaque utilisateur.

Dans notre cas, l'utilisateur avec le rôle Éditeur pourra créer des Articles et des Vidéos, entre autres.

p5-1.png

Filtres d'entrée

Pour mettre des images dans un article, il faut pouvoir référencer ces images d'une manière ou d'une autre à l'intérieur du node. Il y a plusieurs façons d'y parvenir mais toutes requiert la présence de l'image sur le serveur qui héberge le site. Pour télécharger les images sur le serveur j'ai utilisé le module Upload qui est livré avec Drupal.

Il reste ensuite à insérer l'image dans le texte. Bien que de nombreux éditeurs WYSIWYG disposent de fonctionnalités pour cela, j'ai choisi de passer par le module Inline. Ce module permet d'ajouter une image à un node avec une syntaxe simple :

[inline:nom_du_fichier_image.png=Texte d'infos sur le fichier]

ou, plus simplement :

[inline:l=Texte d'infos]

On appelle cela un filtre de saisie, l'étiquette inline est remplacée par une valeur quelconque. C'est le module filter qui se charge de cette besogne, auquel des modules tiers apportent des fonctionnalités paramétrables dans chaque format de saisie.

La plupart des modules qui travaillent avec des filtres de saisie doivent être paramétrés dans la section Administrer > Configuration du site > Formats d'entrée.

Dans notre cas, pour le rôle Éditeur, j'ai utilisé un nouveau format d'entrée baptisé, dans un bel élan de créativité, Contenu.

Le filtre Contenu me permet d'utiliser les balises h2, h3, h4 img et div à l'intérieur du texte. Ainsi je contrôle mieux la mise en forme de mes articles.

Par ailleurs, le filtre de saisie par défaut est Filtered HTML, c'est lui qui veille à ce que personne ne puisse inclure des balises malveillantes dans les commentaires, qui ruineraient le site ou ses contenus.

Commentaires

Les commentaires des articles sont activés lors de la création du contenu. Ce paramètre se configure une première fois lorsqu'on créé le type de contenu dans la section Options des commentaires.

p5-2.png

De même, pour qu'un visiteur puisse commenter un article ou une vidéo, il doit avoir les droits pour créer des commentaires, sans passer par la case modération. Les commentaires sans modération préalables sont publiés automatiquement sur le site sans qu'un administrateur les vérifie avant.

p5-3.png

Qui va là ? S'agit-il d'un humain ?

Le spam doit vraiment être rentable pour qu'il y en ait autant. Quoiqu'il en soit, ce site traite de Drupal et pas de pilules bleues à moitié prix. Il faut donc trouver un moyen pour bloquer ces robots très endurants.

Si on autorise la publication de commentaires par des visiteurs anonymes, il faut utiliser une méthode pour nous assurer que le commentaire vient bien d'un visiteur en chair et en os et pas d'un robot.

C'est ici qu'entrent en jeu les modules de type Captcha. Ils sont très nombreux, en fait je n'ai pas vraiment creusé le sujet. J'utilise habituellement un Captcha simple qui pose une question arithmétique à l'utilisateur. Combien font 1+3. S'il répond quatre, bravo ! Il peut soumettre son commentaire. Incroyable, non ?

Le module Captcha dispose, avec ses sous-modules, de la possibilité de créer des questions arithmétiques.Un petit paramétrage dans Administrer > Gestions des Utilisateurs > Captcha et le site devient un peu plus sûr.

Vidéos... Comment les ajouter ?

Les vidéos ajoutées au site sont hébergées par un fournisseur externe. Comme Youtube, Blip.tv, Vimeo, peu importe lequel. La question à un million est comment ajouter une vidéo à mon site Drupal ?

On peut le faire de différentes façons.... (Oui, il y a toujours plusieurs façons de faire les choses dans Drupal)

La plus simple consiste à copier ce type de texte, fourni par l'hébergeur de la vidéo comme Youtube :

<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/WvNMFPYflFw&hl=es&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/WvNMFPYflFw&hl=es&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>

Première option : dans le corps de l'article.

Voyons les avantages et les inconvénients.

Avantages : copier, coller, et c'est fait ! Ok.

Inconvénients : la balise object n'est pas acceptée par le filtre HTML de Drupal. Il faut ajouter une exception. De plus, ça alourdit passablement le code-source de l'article, et il y « trop » de paramètres.

Deuxième option : en tant que filtre de saisie.

Avantages : [video:http://www.youtube.com/v/WvNMFPYflFw&hl] dans le corps d'un node et ça marche. Ok !

Inconvénients : il faut paramétrer un filtre dans les Formats d'entrée. En plus, le texte est noyé dans le corps de l'article, difficile à retrouver et à modifier éventuellement plus tard.

Troisième option : en tant que champ dans le Type de contenu.

Puisque c'est l'option que j'ai choisie, je n'énumérerai pas les avantages et les inconvénients.

L'idée de base est que le Type de contenu Video aura une courte description pour la vidéo, et un champ où elle apparaîtra une fois que l'on aura indiqué son URL.

Le truc chouette est qu'il existe un module appelé emField (Embedded Media Field) qui permet justement de référencer des vidéos (et d'autres choses) dans un champ CCK. Il contient en fait beaucoup d'autres options que les filtres de saisie ou que le copier-coller direct de code HTML. Comme par exemple, la création automatique de vignettes.

Le paramétrage de ce champ n'est pas très différent du paramétrage d'un champ Date, par exemple. Les seuls impératifs est qu'il faut cocher les hébergeurs de vidéos autorisés depuis Administrer > Gestion de contenus > Embedded Media Field et créer ensuite un nouveau champ dans le type de contenu Video pour qu'il puisse contenir des liens vers les vidéos.

p5-4.png

Quicktabs

Dans la page d'accueil, pour gagner de la place et ne pas perdre de fonctionnalités, j'ai utilisé le module Quicktabs pour créer des onglets.

L'interface graphique de ce module est vraiment simple et fonctionnelle. Il permet de créer des groupes d'onglets en indiquant les blocs qu'ils afficheront.

Pour ce site, je n'ai créé qu'un seul groupe d'onglets qui affichera les sujets du forum les plus récents, les commentaires les plus récents, les articles les plus récents et les vidéos les plus récentes. Ces deux derniers blocs ont été configurés avec Views, voir le troisième article de cette série.

p5-5.png

Pour ajouter les icônes en couleurs, j'ai dû réécrire la fonction qui affiche les quicktabs, mais cela dépasse la portée de cet article, peut-être une autre fois.

Articles connexes

Au début, je pensais gérer la liste des articles connexes « à la main ». C'est à dire que pour chaque article écrit, j'aurais indiqué les articles connexes via un champ du type de contenu. Mauvaise idée, si le nombre d'articles augmente, comme j'espère que ce sera le cas, la gestion de cette liste d'articles connexes deviendra vite problématique.

L'équipe de Civic Actions a publié il y a quelque temps un article qui comparait des modules pour gérer les articles connexes.

Dans ce site je n'utilise pas de taxonomie pour organiser les articles. Pour cette raison, le module Similar Entries m'a semblé le plus adéquat.

Ce module ne fonctionne qu'avec les installations MySQL de Drupal, ce qui peut être une restriction pour ceux qui utilisent PostgreSQL.

Le paramétrage est assez simple, bien qu'à cause d'une mauvaise documentation (à mon sens) j'ai passé près d'une demi-heure à essayer de le faire fonctionner.

Similar Entries cherche parmi les types de contenus et les catégories qu'on lui indique, compare le titre et le corps de chaque article, et génère une liste triée par pourcentage de « coïncidence ». Il génère ensuite un bloc qui peut être ajouté n'importe où dans le thème et qui ne s'affiche que lorsqu'on est en train de lire un article. Que lui demander de plus ?

En conclusion

Comme on peut le voir, faire un site avec Drupal ne se limite pas à simplement installer Drupal, configurer CCK et Views et choisir un Thème. Chaque détail que l'on veut modifier demande le paramétrage de modules spécifiques dont la combinaison aboutira aux objectifs souhaités. Le truc chouette dans tout ça c'est qu'il existe plus de 4 000 modules pour paramétrer la fonctionnalité souhaitée. Et s'il n'y en a pas, on peut le programmer. Le plus compliqué dans tout cela sera de savoir quel module installer et comment le configurer. Respirez... On apprend par les lectures et par la pratique, et il y a toujours des personnes disposées à vous filer un coup de main.

Mariano D'Agostino - Cuenco Digital