Un collection de tutoriels détaillant la réalisation avec drupal d’un besoin précis.
Les flux RSS permettent de récupérer des informations depuis un autre site pour les diffuser sur le votre. C’est très pratique quand l’on souhaite récupérer les news d’un site en particulier. Ici notre but est donc de récupérer un flux RSS puis de l’afficher dans un bloc.
Récupérer le flux RSS
Pour pouvoir gérer les flux RSS sous drupal, nous avons besoin d’activer le module aggregator qui est disponible en standard avec Drupal.

L’activation du module aggregator fait apparaître une nouvelle entrée dans le menu d’administration. Nous allons donc dans administrer/aggregator. Sur cette page, nous allons créer un flux en cliquant sur ajouter un flux.

Cette page va nous permettre de créer notre flux. Il nous faut entrer un nom pour ce flux et l’adresse du flux que nous souhaitons récupérer. L’intervalle de mise à jour est le temps qui s’écoulera entre deux mise à jour du flux sur votre site. Il est préférable de laisser un intervalle d’une heure. Si vous mettez un intervalle plus petit, vous risquez de vous faire rejetter par certains site. En effet sur certains sites, la demande est tellement importante qu’ils rejettent tous les sites qui leurs demande des mises à jour trop fréquente. Validez votre flux, et vous voyez apparaître la liste des flux ainsi que notre flux nouvellement créé. Pour le remplir il suffit de cliquer sur le lien «mise à jour des articles». Voilà notre flux est créé et se mettra à jour toutes les heures. Bien entendu la mise à jour se fait par cron, et donc vous devez avoir configuré cron ou utilisé un module qui se substitue à lui.
Affichage du flux
Actuellement notre flux est créé et accessible via http://votre.site/ ?q=aggregator. Mais nous souhaitons les afficher dans une boite. Nous nous rendons donc dans «administrer/blocs». Et là ô surprise une boite nommé dans notre exemple «flux alertes de sécurité…» a été créé. Il nous reste donc à l’activer et à choisir son emplacement. Il faut savoir que à chaque fois qu’un flux est créé, une boite associée l’est aussi.

Comment ajouter des liens dans le haut du site pour permettre une navigation aisée ? C’est très simple, sous drupal ces liens s’appels «liens primaires» et «liens secondaires». Ils peuvent être configuré en allant dans administrer/thèmes et ensuite dans «configurer». On peut alors soit les configurer dans les «paramètres globeaux» ou alors pour chaque thème si l’on souhaite que les liens soient différent suivant le thème utilisé.
Attention toutefois, certains thèmes ne prennent pas en compte les paramètres globeaux.
Le module Views permet, entre autres, de créer des blocs. Ceux-ci peuvent ensuite être insérés dans la mise en page depuis la page d’administration des blocs (/admin/block).
Malheureusement, les blocs ainsi générés afficheront toujours le même contenu quelle que soit la page sur laquelle ils s’afficheront. Cet article vous propose de créer un bloc dont le contenu sera filtré en fonction de la catégorie du noeud affiché.
Imaginons un site web discutant de football et donnant les résultats pour la France. D’un côté vous avez les équipes de football, chaque équipe étant rattachée à un(*) championnat (L1, L2, Nationale, CFA…) par le biais d’une catégorie «Championnat». De l’autre côté vous avez les résultats sportifs, chaque résultat étant également rattaché à un championnat. Il peut être intéressant d’avoir sur la page d’une équipe les résultats des autres équipes de son championnat.
Avec Views, créons une vue «bloc» qui affiche la liste des résultats sportifs (le but de cet article n’étant pas de vous apprendre à créer des vues, nous ne nous étendrons pas plus sur le sujet). Si nous la collons sur toutes les pages, elle affichera les résultats sportifs de toutes les ligues, indépendamment de la page où elle se trouve.

C’est là qu’interviennent les «arguments» de la vue. Dans la zone «Arguments» de la vue, ajouter un argument «Taxonomie : identifiant de terme». Dans la liste déroulante «Par défaut», sélectionnez «Retour Page non trouvée». Cela aura pour effet de ne pas afficher le bloc sur les pages ne répondant pas aux critères. Laissez les autres valeurs du champs vides.

L’astuce de cet article arrive maintenant. Tel quel, le bloc n’utilise pas les arguments car Views va traditionnellement chercher les arguments dans l’URL. Or, dans le cas d’un bloc, l’URL est réservée au noeud affiché et non au bloc lui-même. Donc pas d’argument.
Il faut utiliser la zone «Code de gestion d’argument».

Copier-coller le code suivant dans cette zone :
<?php
// Ne fonctionne que dans le cas d'une vue 'block'
if($type=='block') {
$vocabulary_id=1; // Vocabulaire rubrique
// Cela fonctionne uniquement sur les pages noeuds
if (arg(0) == 'node' && is_numeric(arg(1)) && is_null(arg(2))) {
// Récupère les termes du vocabulaire désigné pour le noeud en cours
$nid = (int)arg(1);
$terms=taxonomy_node_get_terms_by_vocabulary($nid,$vocabulary_id);
$tids=array();
foreach($terms as $term) {
$tids[]=$term->tid;
}
$ltids=implode(' ',$tids);
// Si la liste des termes n'est pas vide...
if(strlen($ltids)>1) {
$args[0]=$ltids;
}
}
}
?>Note : ne recopiez pas les balises d’ouverture et de fermeture de PHP.
Cet exemple récupère les termes du noeud principal (celui affichant dans le corps de la page) pour les passer en argument, c’est tout ! Pour le réutiliser, déterminez l’identifiant de la catégorie (ici l’ID n°1) et affectez-le à la variable $vocabulary_id.
Pour toute adaptation à vos besoins, le code a besoin uniquement de positionner la variable $args aux bonnes valeurs. Il s’agit d’un tableau indexé 0,1,2,3… où 0 est le premier argument tel qu’il est listé dans la zone «Arguments».
L’exemple prend en compte le cas des valeurs multiples. Pour les transmettre à la vue dans $args, il suffit de les mettre dans une chaîne séparés par des espaces (ex : «10 11 24 12»).
(*) Les puristes me pardonneront cet simplification pour l’exemple.
Le Blog est le «truc» à la mode sur internet depuis quelques mois. J’ai donc décidé de m’y mettre aussi et de voir comment Drupal pouvait m’aidé dans cette tâche.
Je partirais du principe que Drupal est correctement installé. Je m’attacherais donc à la configuration de Drupal pour une utilisation particulière : Le Blog.
Avant de nous lancer dans la configuration, essayons de voir ce qu’est un blog pour mieux cibler nos besoins.
Un blog est avant tout un site personnel où une personne expose ses idées, ses coups de gueules, bref ce qu’elle veut. On veut que les internautes puissent interagir sur le site par l’intermédiare des commentaires. Le but reste d’exposer son point de vue et de le partager, que les internautes puissent réagir.
Pour l’installation de drupal, je vous renvoie au document qui est présent sur ce site et qui traite de cette partie.
Je considère donc que vous avez réussi à installer correctement drupal sur votre serveur et que vous avez crée le premier compte qui servira de compte d’administration.
Par défaut, il n’y a que 6 modules qui sont activé dans drupal :
Donc dans le cas le plus classique, on va désactiver les modules page et story. Par contre on va rajouter les modules blog, search qui permettra à l’internaute de rechercher un mot clé sur votre blog, et je rajouterais le module path qui permet de renommer les liens des billets de notre blog. Par exemple au lieu d’avoir un numéro ce qui est le comportement par défaut de drupal, celui ci peut être nommé mon_premier_billet par exemple. Et aussi le module archive qui permet d’afficher un calendrier sur notre site.
Maintenant que nous avons sélectionné les modules dont nous avons besoin pour faire notre blog, nous allons attaquer la partie concernant les droits d’accès.
Dans un blog, ce qui est intéressant, c’est que les internautes puissent réagir à nos billets. Pour cela il est utile de permettre aux utilisateurs anonymes de pouvoir poster des commentaires.
Dans administrer/utilisateurs cliquez sur l’onglet configurer puis sur droits d’accès. Dans la section commentaires cliquez sur la première et les deux dernières cases. Normalement les deux colonnes doivent être identiques. Ceci a pour effet de permettre aux utilisateurs anonymes de poster des commentaires et de les poster sans approbation de votre part.
Toujours dans la configuration des utilisateurs, vous pouvez retourner sur l’onglet paramètres et choisir si oui ou non vous souhaitez que des personnes crée un compte sur votre site.
Pour avoir une meilleur lisibilité auprès de votre «auditoire», il est nécessaire d’organiser la publication de nos billets en catégories. Le module taxonomie (taxinomie en français) sert à cela.
Allez dans administrer/catégories. Sur cette page, sont listés les différentes catégories qui ont été crées sur ce site. Normalement, cette page doit être vide pour l’instant. Cliquez sur l’onglet add vocabulary.
Comme nom, mettez Sujets, dans Types sélectionnez entrée personnel au blog, puis cochez la case Requis. Ceci aura pour effet de nous obliger à choisir un sujet lorsque l’on voudra poster un billet sur notre blog. Validez vos choix en cliquant sur le bouton Soumettre.
Drupal doit alors vous renvoyer sur la liste des vocabulaires qui ont été crée. Cliquez maintenant sur ajouter un terme et choisissez un nom pour ce terme, ça peut être «Linux», «Littérature», ou tout autre nom de sujet que vous souhaitez aborder dans votre blog. Ajoutez autant termes dans Sujets que de sujets dont vous voulez aborder. (je sais c’est pas facile !)
Bien démarrer avec Drupal… qui n’a pas eu du mal à mettre une image dans son article ?
Et qu’on se le dise une bonne fois pour toute : il n’est pas nécessaire d’installer un quelconque module optionnel pour afficher des images avec Drupal.
Je vous le déconseille car si le site auquel vous vous référez, renomme ou supprime cette image, votre site va la chercher très longtemps (selon le navigateur que vous utilisez)… et votre site sera très lent !
Remarque importante :
Pour utiliser une image présente sur un autre site, vérifier que les droits sont disponibles. Autant vous pouvez généralement afficher sur votre site les logos de tel ou tel logiciel libre (par exemple celui de Drupal), autant une photo personnelle d’un autre site ce n’est pas sûr…
En général, il est conseillé de contacter par courriel le webmaster du site dont vous souhaitez ré-utiliser une image pour lui demander son accord et/ou de consulter les mentions légales du site qui indiquent peut-être les conditions d’utilisation (par exemple en citant l’auteur).
/files<img src="files/images/nom_du_fichier.ext" alt="texte_alternatif" /> Quelque soit le template que vous utilisez, les contenus (pages, articles…) sont généralement codés avec une balise de classe qui est class="node" (un forum c’est un div#forum).
Pour mettre en forme vos images, il suffit donc de modifier ou créer (selon le template utilisé) une ligne .node img.
Par exemple .node img {border: 1px solid #000000;} encadrera les images présentes dans tous vos contenus Drupal d’une bordure de 1px, continue et de couleur noire.
Pour avoir différents rendus des images présentes dans vos contenus sur votre site, vous pouvez ajouter un attribut class au code de l’image.
Par exemple : vous voulez que les images des contenus «articles» aient un rendu différent du précédent. Pour cela, dans les articles, le code html devient <img class="img_articles" src="files/images/nom_du_fichier.ext" alt="texte_alternatif" /> et vous ajoutez une mention css .node img.img_articles {border: 1px solid #ff0000;} qui encadrera les images d’un article d’une bordure rouge.
Bon à savoir…
/files qui peut poser problème… files : il est prévu pour accueillir, réunir tous vos documents type images, documents .pdf etc… files pour organiser votre contenu. Vous gagnerez un temps précieux quand vous souhaiterez trier ou mettre à jour votre site.(article initial http://herisson185.free.fr/ ?q=node/35)
La mise à jour vers la version 5.0 de Drupal est une mise à jour majeure.
Il est donc essentiel de suivre une procédure assez stricte au risque de devoir recommencer l’opération plusieurs fois. Il est également fortement conseillé de partir de la dernière version 4.7 afin de minimiser les problèmes. La mise à jour de 4.6 à 5.0 n’est pas supportée.
Pour réussir cette opération, on pourra s’appuyer sur la checklist suivante :
Le but est d’ici de «déconfigurer» le site le plus possible afin de minimiser les fonctions requises durant la mises à jour. Nous devrions donc avoir maintenant un site très simple, mais contenant toujours l’ensemble du contenu de l’ancien site. Il est donc possible de remplacer les fichiers par leurs nouvelles versions.
La mise devrait bien se passer vu que seuls les modules essentiels sont activés. Si c’est le cas, il sera ensuite possible de reconfigurer le site avec les urls simplifiés, les modules, etc…
Notez que certains modules n’ont pas encore été mis à jour pour Drupal 5 et c’est ce qui pourrait vous retenir de mettre à jour vos sites. Au moment d’écriture de cet article, Les modules codefilter et captcha n’ont même pas de version CVS pour 5, le module image n’est pas encore très stable. Il est de toute façon toujours préférable de vérifier la disponibilité de vos modules préférés avant de faire le grand saut.
Drupal 5 permet l’utilisation de deux thèmes distincts pour la zone publique et la zone administration. Par défaut le thème d’admin est configuré pour refléter le thème publique. Avant de tester votre thème, je conseille de changer le thème d’admin sur garland afin de ne pas se retrouver coincé si votre thème nécessite une mise a jour du code.
Merci à Zmove de m’avoir dépanné sur www.drupal.org.
J’avais beau essayé toutes les combinaisons possibles, je n’arrivais pas à faire passer au sein d’un panel (du type node/%) le terme d’un node comme argument dans une view. ( en clair, j’affichais un node et je voulais que la view sur la barre de droite affiche des contenus en rapport avec le terme principal du node )
Il suffisait en fait de supprimer la view’spane et de la réinsérer.
Ca a l’air de rien comme ça, mais j’ai perdu des heures à me fourvoyer.
J’espère que ça aidera quelqu’un.