Développeur Drupal – Blog d'un passionné, un peu touche à tout, dans le monde du web.
On m’a posé une question intéressante il y a quelques jours, à savoir comment faire pour accéder à une autre base de données que celle sur laquelle est installé Drupal. N’ayant jamais rencontré cette problématique je me suis penché sur cette question.
Le principe est simple, il suffit de renseigner les connexions vers les différentes bases de données et de switcher entre elles lorsque vous en avez besoin.
Par défaut Drupal sait quelle base utiliser grâce aux informations contenues dans le fichier default/settings.php.
Lire la suite de l’article »
Qui n’a jamais eu besoin d’améliorer les performances de son site pour booster Drupal?
Effectivement, lorsque l’on travaille sur des gros sites il faut se poser des questions sur les performances de Drupal, parce qu’on le sait tous, Drupal est gourmand. L’affichage d’une simple page peut parfois engendrer l’exécution de 50 voir 150 requêtes.
Imaginez vous cette même page appelée par plusieurs internautes en même temps. On obtient alors des centaines de requêtes et informations recalculées inutilement qui vont solliciter les serveurs et vont ainsi consommer du CPU et de la RAM alors qu’elles auraient pu tout aussi bien être sauvegardées.
Pour sauvegarder ces informations il faut donc mettre en place un système de caching qui va mémoriser pour un temps donné des informations afin de ne pas les recalculer.
Lire la suite de l’article »
Un formateur CCK permet de transformer l’affichage d’un champ en ce que l’on veut, ce n’est ni plus, ni moins qu’une fonction de thème.
Le choix de l’utilisation d’un formateur se fait par l’intermédiaire de l’administration des types de contenus via la rubrique ‘Afficher les champs’. Pour chaque champ vous avez un menu déroulant avec les différents formateurs disponibles.
Prenons l’exemple d’un champ image. Grâce aux différents formateurs disponibles vous avez le choix d’afficher à l’internaute un lien url du fichier, le chemin de l’image ou encore l’image elle même.
Lire la suite de l’article »
En réalisant ma petite sélection de modules,je me suis aperçu que ce n’était pas évident de définir si un module était bon ou non, d’autant plus si on découvre Drupal. Voici donc quelques petits trucs que j’applique lorsque je cherche un module.

Sur chaque page de modules il y a un lien en bas de page appelé ‘View usage statistics‘ qui vous renvoie vers une page dédiée aux statistiques d’utilisation du module. La courbe présentée vous donne une estimation de l’utilisation du module (cette courbe ne colle pas forcément avec la réalité car les statistiques sont calculées grâce aux sites ayant le module update activé). Vous pouvez néanmoins tirer des conclusions de cette courbe, si celle-ci ne fait que progresser c’est bon signe, à l’inverse si elle chute il faut se poser des questions. Pourquoi a t-elle chuté? Y’a t’il un autre module qui fait mieux que celui-ci? A ce moment vous êtes bon pour continuer votre recherche.
Une des tâches les moins faciles avec Drupal est de trouver ‘le’ module qui correspond à votre besoin, celui dont vous rêvez qu’il vous suffira simplement d’installer pour qu’il exauce tous vos souhaits. Avec un peu plus de 5500 modules disponibles et un besoin un peu spécifique c’est comme chercher une aiguille dans une botte de foin. Au fil de mes trouvailles j’ai commencé une petite liste des modules qui me semblaient intéressants, puis tout doucement, celle-ci à grossi.

Vous trouverez donc sur cette page une petite sélection de modules classés par thème, dont certains très connus et d’autres moins.
Aujourd’hui j’ai eu besoin de dupliquer un champ CCK existant, d’un type de contenu à un autre. Chose facile lorsque l’on passe par l’administration, quelques petits clics et hop le tour est joué, mais comment fait-on en programmation ?
Imaginez un type de contenu ‘Articles’ composé des champs traditionnels title et body et de mon champ extra ainsi qu’un deuxième type de contenu ‘Actualités’. Nous allons donc voir comment récupérer ce champ du premier contenu pour l’intégrer au deuxième.
Tout d’abord il nous faut récupérer le champ. Pour cela nous allons utiliser la fonction content_fields() de CCK en lui passant le nom du champ à récupérer et le contenu sur lequel le trouver.
$cck_field_copy = content_fields('field_articles_extra', 'articles');
Note : le nom du champ cck se trouve dans l’onglet ‘Gérer les champs’ sur l’interface d’administration de votre type de contenu. C’est le nom machine que vous avez saisi lors de la création.
Lire la suite de l’article »
Ce que nous venons de faire était simple mais pourtant ces actions étaient essentielles. Maintenant nous allons aller un petit peu plus loin et passer à des choses plus marrantes.
La création d’un site map ou en français d’un plan de site va permettre d’indiquer facilement aux moteurs de recherche le contenu qu’il leur est possible d’explorer sur notre site.
Un Site map est une cartographie d’adresses des différents contenus qui composent votre site Internet auxquels on ajoute des informations, de précieuses méta-données.
Pour réaliser un site map facilement vous pouvez utiliser les modules Site map ou XML site map qui ont été conçu pour répondre aux spécifications de sitemaps.org.
Mettre en place un sitemap sur votre site.
Modules requis : site map ou xml site map
Lorsqu’un moteur de recherche analyse votre site web on dit que celui-ci indexe votre contenu, ce robot d’indexation est appelé Crawler (« Butineurs »). Il fonctionne comme un internaute, il navigue de lien en lien, analyse le contenu et indexe les mots clés qu’il rencontre dans le but de capitaliser le plus de page web possible.
Lire la suite de l’article »
Il est parfois inévitable de devoir modifier un module contribué afin d’étendre les possibilités de celui-ci ou tout simplement pour corriger quelque chose.
Dans tous les cas il ne faut pas modifier les fichiers du module et les mettre sur votre site parce qu’à ce moment il vous sera compliqué de mettre à jour votre module. Imaginez le jour ou vous voudrez appliquer la nouvelle version de celui-ci, toutes vos modifications seront écrasées.
Pour modifier correctement un module vous devez créer un patch que vous appliquerez par la suite au module original.
Dans un premier temps nous allons voir comment générer notre patch puis comment l’appliquer. Il existe plusieurs façons pour faire cela. La solution que je vous propose n’est qu’une solution parmi tant d’autres.
Lire la suite de l’article »
Pour compléter mon précendent billet voici comment modifier les emails envoyés depuis votre site.
Pour générer l’envoi de mail depuis un module nous avons utilisé les fonctions hook_mail() et drupal_mail(). Pour la modification nous allons utiliser la fonction hook_mail_alter(&$message) afin d’avoir un accès complet à tous les emails envoyés.
La variable $message contient toutes les informations nécessaires à l’envoi de l’email et à ce stade, l’email à été formaté et est prêt à l’envoi. Dans cette variable on retrouve donc les infos headers, le body, le sujet, les paramètres passés lors de la génération de l’email et surtout l’identifiant renseigné.
Lire la suite de l’article »
Envoyer des emails depuis votre module est simple à faire, il suffit de déclarer le hook_mail() puis de faire appel à la fonction drupal_mail(). Vous trouverez ci-dessous, un exemple de code que vous pouvez intégrer dans votre module :

Dans un premier temps nous allons déclarer le hook_mail qui va être utilisé pour construire l’email avec la configuration que nous avons choisie et les paramètres que nous allons passer via la fonction drupal_mail. Vous pouvez spécifier plusieurs options :
$key : Identifiant unique pour votre email.
$message : Tableau de valeurs contenant les informations relatives à l’email.
* ‘id’ : Identifiant pour distinguer l’email envoyé.
* ‘to’ : L’adresse du destinataire
* ’subject’ : Le sujet de votre email
* ‘body’ : Le contenu de votre email.
* ‘from’ : L’adresse de l’émetteur
* ‘headers : Les informations d’en-tête de votre email.
$params : Tableau de paramètres dans lequel vous pouvez récupérer les informations que vous allez passer dans la fonction drupal_mail.
Bienvenue sur mon blog. Sur cet espace j’essaie de partager au mieux ma passion pour le web et actuellement mon engouement pour Drupal. Vous trouverez ici mes découvertes, mes problématiques et les solutions rencontrées.
Commentaires