Trucs & astuces Drupal
Quelques trucs et astuces qui peuvent rendre la vie un peu plus simple lorsqu'on travaille sur Drupal.
Content Management System (and Framework)
Quelques trucs et astuces qui peuvent rendre la vie un peu plus simple lorsqu'on travaille sur Drupal.
Depuis Drupal7, on peut ajouter des champs à un terme de taxonomie.
Ceci peut être intéressant pour ajouter une image ou d'autres informations. Mais comment dans ce cas chercher un terme de taxonomie sur la base de ce champ spécifique ?
Imaginous que nous avons une taxonomie de type "Music Categories", sur laquelle nous ajoutons un champ spécifique, "music_code", qui est utilisé dans une interface avec une autre système.
Nous avons alors 2 options :
Par défaut, Drupal permet de "bannir" des adresses IP manuellement, via la console d'administration.
Ceci est une première étape, mais peut vite devenir ingérable sur un site fréquenté. De plus, les requêtes http vont quand même arriver jusqu'au CMS, puisque c'est lui qui gère ces exclusions.
Avec une version PHP inférieure à 5.5 il est recommandé d'utiliser un cache d'OpCode. Ce cache permet d'améliorer les performances de PHP, en mettant en cache le code PHP une fois qu'il a été analysé.
L'un des caches les plus utilisés est APC. Son installation sur une distribution type Debian consiste simplement en une commande
apt-get install php-apc
Par défaut, la taille mémoire réservée est de 32 Mo.
Dans certains cas on peut vouloir interdire l'accès en mode anonyme à un site Drupal : site complètement privé, ou site en test.
Plusieurs étapes permettent de faire cela simplement :
Via l'écran de gestion des permissions, (admin/people/permissions), supprimer l'accès au contenu pour les visiteurs anonymes :
Dans une installation "de base" Drupal, celui-ci embarque un fichier .htaccess qui définit les règles de réécriture d'URL et de sécurité, et autres paramétrage propre au serveur http Apache.
Le souci principal des fichiers .htaccess étant, par contre, que le serveur http va vérifier à chaque fois sur disque (via la lecture du fichier) le contenu de ce fichier.
Pour améliorer les performances, il est possible de ne pas laisser le serveur Apache lire les fichiers .htaccess, via la directive
Suite à une alerte de sécurité Drupal (PSA-2014-001), j'ai procédé à la mise à jour du module Media 7.1.x, et de File_entity, qui est compris dans ce module.
Problème en retournant sur les pages, une belle erreur :
Il est possible via l'IHM de créer un nouveau type de contenu et d'y ajouter des champs. Tout ceci peut également se faire de manière programmatique, par un simple module.
Le module va comporter au moins 2 fichiers : le .info qui décrit le module, et le .module qui comprend le code.
Pour notre démonstration, nous allons créer un module qui permettra de créer des contenus qui seront repris par Views Slideshow par la suite.
Le fichier monslideshow.info
est simple :
L'une des grandes force de Drupal est d'être un mélange entre le CMS pur souche et la plate-forme de construction (CMF = Content Management Framework).
Il a été conçu de base pour être étendu, via ses mécanismes de <em>hooks</em>, et ses nombreuses API documentées (cf . http://api.drupal.org/api/drupal).
Drupal est généralement basé sur une plate-forme LAMP (Linux / Apache / MySQL / PHP), même si on peut au final changer la majorité des couches, sauf le PHP.
Plusieurs options sont donc possibles pour améliorer les performances, qui peuvent parfois être calamiteuses sur un serveur mal dimensionné :