'>

Documentation à revoir a propos du drupal: outils, conseils et pratiques

Ce chapitre regroupe l'ensemble des documentations à revalider, corriger ou supprimer.
Installer TinyMCE
Cette méthode n'est plus valable! Tinymce est maintenant intégré via wysiwyg.

TinyMCE est un module permettant la mise en place d'un éditeur de contenu WYSIWYG. Grâce à lui il devient simple de mettre en page ses contenus, aussi simple que d'utiliser un traitement de texte.

1 La phase classique

    Téléchargez le module Drupal: http://drupal.org/project/tinymce

    Décompressez le

    Envoyez le via FTP dans votre Drupal, dans le répertoire /sites/all/modules où doivent être contenus les modules que vous installez.

2 La phase inhabituelle

    Téléchargez le moteur de TinyMCE chez Moxie: http://tinymce.moxiecode.com/download.php

    Décompressez le évidement

    Envoyez le dans votre module TinyMCE créé lors de la phase 1.
    Ce qui vous donnera un chemin comme : /sites/all/modules/tinymce/tinymce

3 Activation

    Dans votre interface d'administration de votre site allez dans la construction des modules et activez Tiny

    Allez ensuite dans la gestion des utilisateurs et éditez les rôles utilisateurs afin qu'ils puissent se servir de Tiny

    Dans la configuration du site faites un tour dans TinyMCE et créez un profil d'utilisation, n'oubliez pas de l'attribuer aux rôles désirés.

    Lors de la création de ce profil, dans "Basic Setup" passez "Default state" en true afin d'activer l'affichage par défaut de Tiny.

    N'oubliez pas que Tiny met en page grâce aux balises HTML, pour que ce que vos contenus s'affichent tel que désiré le format d'entrée contenus doit être en Full HTML. Pour paramétrer cela par défaut allez dans Administrer > Configuration du site > Formats d'entrée et cochez Full HTML pour que ce format soit fixé automatiquement lors de la création d'un contenu.
    D'autre part tous vos contenus créés avant cette modification concerveront leur format d'entrée initial. Il vous faudra donc éditer chaque contenu de ce type pour qu'il accepte le Full HTML.

4 Francisation

    Téléchargez le pack contenant la traduction francophone; http://tinymce.moxiecode.com/language.php

    Décompressez la chose vous aurez alors les fichiers de traductions classés selon la même hierachisation que votre "sous-module"

    Prennez votre mal en patience et envoyez chaque petit fichier dans le répertoire correspondant.
    La tâche est longue, ennuyeuse et si vous faites une erreur d'innatention vous êtes bon pour tout recommencer.

    Retournez dans la configuration de TinyMCE via l'administration de Drupal, éditez le profil de sorte que dans "Basic Setup" ce soit le français qui soit activé.

5 Boostez TinyMCE

Un outil supplémentaire permet de "compresser" Tiny et de le rendre plus rapide. Il s'agit de TinyMCE compressor.
ATTENTION : il se peut que cet ajout pose des problèmes sur certaines configurations (disparition de la barre d'outils, cf les nombreux posts plus bas), testez d'abord Tiny sans le compresseur pour vérifier que tout fonctionne correctement, installez le ensuite, si vous rencontrez des problèmes virez le.

    Téléchargez TinyMCE compressor PHP ici: http://tinymce.moxiecode.com/download.php

    Décompressez et envoyez dans /sites/all/modules/tinymce/tinymce/jscripts/tiny_mce

6 Régler d'éventuels problèmes de lisibilité (facultatif)

Tout est correctement installé mais votre interface texte de Tiny est toute noire et vous ne parvenez pas à lire ce que vous écrivez dans de telles circonstances...
C'est que Tiny se sert du fond de votre site comme fond de zone de saisie. Pas de panique, allez dans Administrer > Configuration du site > TinyMCE. Éditez les profils pour que dans "CSS" le champ "Editor CSS" l'apparence sélectionnez soit "tinyMCE default".
Sauvez les modifications et le problème est résolu.


Ajouter le support de BBcode à votre site
BBcode est un langage de balise simplifié qui permet de mettre en forme du texte et qui n'autorise pas l'exécution de scripts, ce qui en fait un langage de choix pour la publication de contenu sur les sites web.

Drupal ne propose pas le support de bbcode par défaut, mais il existe un module qui permet de combler cette lacune. Nous allons voir comment le mettre en oeuvre.

    La première chose à faire est de télécharger le module bbcode. Le module est ici :
    http://drupal.org/project/bbcode
    Décompressez l'archive, puis copiez le répertoire bbcode dans le répertoire module de votre installation de drupal. Ensuite rendez vous dans Administrer/module pour activez le module bbcode.
    A présent, bbcode est bien installé, mais il faut encore le configurer. En effet le module bbcode agis comme un filtre d'entrée et va convertir le code bbcode en balises html. Il nous faut donc créer un format d'entrée. Rendez vous dans Administrer/Configuration du site/Formats d'entrée, créez un nouveau format nommé BBcode puis validez.
    Ensuite cliquez sur le bouton Configurer sur la ligne du format BBcode. La page qui s'affiche liste les différents filtres disponibles et vous devriez voir apparaître la ligne bbcode. Sélectionnez donc le filtre bbcode ainsi que Line break converter puis sauvez vos changements.
    cliquez sur le bouton Réordonner sur la ligne du format BBcode. La page qui s'affiche liste les filtres utilisés dans ce format d'entrée. BBcode doit être en bas de la liste sous "filtre HTML".
    Il ne reste plus qu'à ajuster les permissions pour ce nouveau format. Il est souvent judicieux de mettre le format BBcode comme format par défaut, et de n'autoriser les autres formats qu'aux administrateurs.


   
Comment faire ?
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.

aggregator5.png

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.
aggregator2.png

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.

bloccontextuel-editvue.png

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.

bloccontextuel-arguments.png

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".

bloccontextuel-argumentcode.png

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 :

    comment : sert à ajouter des commentaires. Nous en avons besoin dans notre cas.
    help : affiche les messages d'aide. ça peut toujours être utile
    node : indispensable. Sans cela nous aurions un site "statique"
    page : permet de créer des pages qui pourrons être référencées dans le menu. Rarement utilise dans le cas d'un blog.
    story : permet de créer des articles ou tout autre contenu du même type. Il ne nous servira pas non plus.
    taxonomy : permet de créer des catégories. Celui ci on le garde.

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.
Cas 1 : afficher une image présente sur un autre site

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).
Cas 2 : afficher une image de votre site.

    Via client-ftp, créer un dossier (répertoire) images dans le répertoire /files
    Via client-ftp, mettre une image dans ce dossier (exemple toto.png, toto.jpg)
    Dans drupal, créer (ou éditer) l'article qui devra contenir l'image toto.png
    Le format d'entrée "full HTML" doit être coché, le code pour une image est du type :
    <img src="files/images/nom_du_fichier.ext" alt="texte_alternatif" />
    Explications : on utilise la balise img avec les attributs src et alt !
        la valeur entre guillemet de src est le chemin de votre image : sous drupal je vous conseille de mettre le chemin relatif à partir du répertoire de Drupal. Si vous voulez afficher une image présente sur votre serveur sans qu'elle soit dans le répertoire de Drupal il faut mettre le chemin complet (type http://www.mon_site.ext/dossier/nom_du_fichier.ext
        la valeur entre guillemet pour alt est le texte alternatif qui s'affichera si votre visiteur n'affiche pas les images et qui sera lu par les navigateurs vocaux. Afin d'améliorer l'accessibilité et le référencement de votre site, n'oubliez pas de renseigner l'attribut alt [On note alt="" (attribut vide) UNIQUEMENT en cas d'image non significative]

Mise en forme de vos images en CSS

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 &lt;img class="img_articles" src="files/images/nom_du_fichier.ext" alt="texte_alternatif" /&gt; 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.
Votre image ne s'affiche pas ?

    Vérifier le format d'entrée de votre contenu : ce doit être "Full HTML"
    Vérifier le chemin : il doit partir de la racine de votre drupal (dans notre exemple files/images/nom_du_fichier.extention_du_fichier.)
    Vérifier les permissions par défaut :
        dans la barre d'adresse du navigateur, mettre le chemin de l'image. (Exemple : via son client-ftp, mettre l'image toto.jpg dans le répertoire files > l'adresse à saisir dans la barre d'adresse sera http://monsite.ext/files/toto.jpg) et voir si l'image s'affiche.
        si on obtient la page d'erreur "erreur 500" (Internal Server Error / The server encountered an internal error or misconfiguration and was unable to complete your request.)
        Via le client-ftp, supprimer le fichier .htaccess qui existe dans le répertoire /files (obligatoire avec certains hébergeurs... notamment pour les pages perso free.fr)

Bon à savoir...

    Le module additionnel "images" n'est pas nécessaire pour l'affichage d'image dans votre contenu, par contre si vous l'avez installé (même si vous l'avez désinstallé ensuite), il aura ajouté un fichier .htaccess dans le répertoire /files qui peut poser problème...
    Bien ranger son Drupal...
    A la première utilisation, Drupal crée un répertoire files : il est prévu pour accueillir, réunir tous vos documents type images, documents .pdf etc...
    Je vous conseille de créer des sous-répertoires dans le répertoire files pour organiser votre contenu. Vous gagnerez un temps précieux quand vous souhaiterez trier ou mettre à jour votre site.

   
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 :

    Faire une sauvegarde complète des fichiers ET bases de données du site,
    Désactiver les modules additionnels, en faisant tout particulièrement attention aux dépendances entre les différents modules et entre les modules et les pages et blocs personnalisés. Par exemple, views peut être utilisé dans du code PHP de blocs ou de pages, il ne peut être donc désactivé sans précautions,
    Supprimer les dossiers des modules desactivés,
    Si vous utilisez une page personnalisée comme page d'accueil,
    réinitialiser la page d'accueil sur /node,
    Desactiver les URLs simplifiées,
    Desactiver les modules core non-essentiels tels que forum ou blogapi,
    Configurer bluemarine en tant que thème utilisé.

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.

    Télécharger drupal 5,
    Remplacer les fichiers de l'installation de drupal 4.7 par les fichiers de 5.0 extraits,
    Utiliser la procédure de mise à jour à partir de votre navigateur en consultant le fichier update.php.

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.

(je n'ai pas vérifié si ces informations étaient également valables pour les versions 5 et 6. Je ne pense cependant pas qu'il y ait de gros écarts)

Drupal dispose d'un mécanisme de cache évolué (mise en mémoire d'informations précédemment calculées). Tellement évolué qu'il n'est pas toujours évident d'en comprendre le fonctionnement.

Il faut tout d'abord distinguer 2 niveaux :

    le cache,
    le cache de page.

N'importe quel module peut utiliser le cache pour son propre usage au moyen des fonctions cache_set et cache_get. N'importe quel type de données peut être stocké dans le cache, que ce soit du code HTML, du XML ou encore des données binaires. Tout module effectuant des calculs ou des requêtes complexes peut tirer parti de ces fonctions.

Le cache de page travaille au niveau supérieur : c'est carrément la page entière et ses entêtes HTTP (headers) qui sont stockées.

Notes :

    Les pages sont cachées selon l'URI. Si vous utilisez les alias, node/78 et alias/vers/node/78 seront cachées indépendamment bien qu'il s'agisse de la même page,
    Le mécanisme de cache de page est complètement désactivé si l'utilisateur est identifié (mais pas le mécanisme de cache standard).
    La table cache de Drupal peut être vidée sans hésitation puisque, par définition, toutes ses données seront recalculées à la volée.
    Les pages contenant des formulaires ne sont pas gênées par le cache de page car les données sont transmises par méthode POST et chaque message en attente empêche l'utilisation du cache.
    Les informations mises à jour depuis le Cron ne seront disponibles aux utilisateurs anonymes qu'après écoulement de la durée de vie minimum dans le cas du cache de page.

La page admin/settings permet d'activer ou désactiver le cache de page et d'indiquer la durée de vie minimum d'un élément du cache. Ces deux paramètres ne sont pas liés directement. La durée de vie minimum est utilisée même si le cache de page est désactivé puisque le cache de page n'est qu'une utilisation particulière du cache de Drupal.

Cette durée indique le temps pendant lequel Drupal conservera un objet dans le cache. Tant que cette durée ne se sera pas écoulée, l'objet sera resservi. Si l'objet est redemandé au-delà de cette durée de vie, il sera recalculé.


But : obtenir une hiérarchie de pages accessibles via les liens primaires.

- Accueil
- L'association
-- Statuts
-- Membres
- Projets
-- Connectez-vous
- Liens
- Contact

Prenons l'exemple ci dessous :

Nous y voyons en haut un menu contenant 5 liens qui sont : Accueil, L'association, Projets, Liens, Contacts. Le menu utilisé est celui appelé Primary links ou Liens Primaires en Français. Grâce à cela nous auront la possibilité d'afficher notre menu dans le thème de notre site.

Premier exemple : le lien Accueil

Le lien Accueil pointe tout simplement sur la page d'accueil. Pour le créer, nous allons dans administrer/menu, puis on va cliquer sur ajouter un élément de menu

On se retrouve alors avec le formulaire suivant :

    Titre : le titre de notre élément (dans notre exemple "Accueil")
    Description : texte affiché grâce à une bulle d'aide lors du passage de la souris au dessus du lien
    Chemin : le chemin vers lequel le lien pointera (dans notre exemple <front> renvoi vers la page d'accueil)
    Elément parent : informe de l'endroit où notre lien sera mis. Nous souhaitons qu'il soit dans le menu "Primary Links"
    Poids : permet de définir l'ordre d'apparition des éléments du menu. Dans l'exemple les éléments Accueil, L'association, Projets, Liens et Contacts sont tous contenu directement dans Primary links (ils ont tous le même parent). Le poids permet donc de définir l'ordre dans lequel ils doivent apparaître. Dans le cas contraire, l'ordre alphabétique est privilégié

Il ne nous reste plus qu'à cliquer sur le bouton Soumettre

L'élément Contact à été crée de la même manière. Nous avons mis Contact dans le champ "Titre" et contact dans le champ "Chemin" (le formulaire de contact est habituellement accessible via l'URL http://monsite.com/?q=contact)

Deuxième exemple : l'élément L'association

L'élément L'association est une page crée avec drupal et que l'on va ancrer dans le menu Primary links. Pour cela allons dans créer un contenu/page Nous nous retrouvons alors avec le formulaire classique de création de contenu que nous allons remplir de manière classique. Nous allons aussi nous intéressé au bloc Paramètres de menu (cliquez sur le lien pour ouvrir le bloc si ce n'est pas déjà fait). Et là, ho surprise nous retrouvons exactement le même formulaire que dans notre premier exemple.

    Titre : L'association
    Description : Le Mans Sans Fil
    Elément parent : Primary links
    Poids : 1 (nous voulons que le liens s'affiche après "Accueil" qui a un poids de 0)

Les éléments Projets et Liens ont été crée de la même manière. Nous obtenons donc le menu suivant :
- Accueil
- L'association
- Projets
- Liens
- Contact

Troisième exemple : les éléments de second niveau (ou sous-menus)

Nous allons crée une nouvelle page comme précédemment, nous rendre ensuite dans le bloc Paramètres de menu, mettre le titre, la description, et choisir comme Elément parent L'association

Et voilà! nous avons notre premier sous-menu. Nous pouvons faire de même avec d'autres pages, ou même encore faire des sous-sous-menus...


Nous venons de créer une hiérarchie d'éléments contenus dans le menu Primary links. C'est bien, mais ce qui est encore mieux c'est de les afficher dans un bloc. En effet même si nous pouvons afficher le menu Primary links sur notre site, grâce à notre thème, nous ne pouvons pas accéder aux sous menus.

Première méthode :

La première méthode est la plus simple à mettre en place car elle fait appel à un bloc qui est fourni par drupal.

Nous nous rendons dans administrer/blocs et nous activons le bloc Primary links en cochant la case.

Nous obtenons alors un bloc contenant notre hiérarchie et laissant entrevoir les sous-menus.

Deuxième méthode :

Cette deuxième méthode tiens compte du fait que l'on peut déjà afficher le premier niveau de notre menu par l'intermédiaire du moteur de thème (et de la variable $primary_links pour PHPTemplate). En effet si le premier niveau de notre menu est affiché, à quoi sert il de les afficher à nouveau dans notre bloc. Nous voulons que lorsque nous nous trouvons sur une page de premier niveau, un bloc affiche uniquement les sous menu de cet élément.

Pour obtenir ce résultat rendons nous dans la page d'administration des blocs (administrer/blocs) puis cliquer sur ajouter un bloc. Nous arrivons sur le formulaire de cration d'un bloc, et nous aloons remplir le corps avec le code php suivant :

<?php

$secondary_links = menu_secondary_links();
if (is_array($secondary_links)) {
  $output = "<ul class="menu">";
  foreach ($secondary_links as $link) {
    $output .= "<li class="leaf">".$link."</li>";
  }
  $output .= "</ul>";
}

return $output;
?>

remplissez les autres champs (Description, titre) et sélectionnez PHP Code comme format d'entrée. Il ne reste plus qu'à valider et à activer le bloc.

Il reste une denière chose à faire : s'assurer que les paramètres des menus sont correcte. En effet pour afficher notre bloc, nous faisont appel aux liens secondaires. Nous devons, pour obtenir le comportement voulu, configurer les liens secondaires de sortes qu'ils soient des sous menus des liens secondaires. Nous allons donc dans administer/paramètres/menus
et mettre le champs Liens secondaires comme sur la capture.