Installez et administrez Drupal Une formation Formateur : Fabien Crépin
Introduction Objectif : savoir installer et réaliser les tâches courantes d'administration de Drupal 5 demi-journées Ce qu'on verra en théorie et en pratique : Environnement technique, installation Concepts de Drupal Contenus et types de contenus Gestion des accès, menus, blocs et taxonomie Étendre Drupal, CCK, Context Contenus et affichages : Views Règles et actions : Rules Graphismes : thèmes et templates
Introduction Drupal est vaste et il y a plus de 4000 contributions... Ce qu'on ne verra pas en détails : Le background web Chaque module installé sur le site www.cps.pf A quoi sert chaque bouton Pour ces points, il existe des ouvrages de référence, les aides contextuelles explicites en général et au delà http://www.drupal.org/forum Le fil rouge : créons un site de recettes...
Concepts et installation
Environnement technique Une archive Drupal (la dernière stable de préférence)+traduction fr_fr Un serveur web, Apache de préférence, et Php5 (<5.3 pour le moment) Une base de données, sous MySQL5 (de préférence) ou Postgres Un navigateur internet, Firefox de préférence Un traitement de texte type notepad
T.P. : Installation Installez le serveur Apache sur votre plateforme, en utilisant WampServer sous Windows par exemple Créer un utilisateur MySQL et une base de données associée Dans le document root, décompressez l'archive sous le nom drupal, ajoutez les fichiers fr_fr Copiez sites/default/default.settings.php en sites/default/settings.php et éditez ce dernier Changez le propriétaire de drupal en l'utilisateur apache (pour les heureux unixiens seulement)
T.P. : Installation Rendez vous à la page http://localhost/drupal Suivez le lapin blanc... un ou deux écrans et c'est fini De suite, allez à admin/settings-siteinformation et changez le nom du site Ensuite, allez à admin/settings/file-system et mettez files et tmp dans les cases
Installation : configuration Apache/PHP Conf apache/php/mysql préconisée : mod_rewrite activé mod_expire (ou un nom approchant...) activé memory_limit = 128M, Drupal est gourmand si beaucoup de modules max_upload_size = 32M, idem pour les tailles des posts, ne soyons pas avares (contenu multimédia oblige) max_allowed_packets = 16M
Concepts de Drupal Des types de contenus variés : Images, Dossiers, Pages, Vidéos, etc Pour Drupal, les instances de ces types de contenus sont des nœuds, on parlera de contenus en général Une classification complète, via la taxonomie : on ajoute des termes aux contenus pour les ranger ici ou là Les termes sont regroupés en vocabulaires
Concepts de Drupal On va pouvoir créer très facilement de nouveaux types de contenus, ceci est une grande force de Drupal On peut également avoir des classifications complexes grâce aux différents types de vocabulaires et à la souplesse de la taxonomie, c'est une autre grande force de la bête L'autre autre élément intéressant sont les droits d'accès très finement gérés
Concepts de Drupal Graphisme Thèmes Utilisateurs Rôles DRUPAL 6 Core Structure Taxonomie Fonctions Modules Contenu Nœuds
Contenus et types de contenus
T.P. : Créer quelques contenus Connectez vous : http://[le nom du site]/user/login Utilisateur : admin Mot de passe : [celui que vous avez choisi] Ici user/login est le chemin de la page en cours Un menu d'administration apparaît En haut à gauche, survolez Créer un contenu Vous pouvez alors choisir quel type de contenu créer Ensuite, entrez et mettez en forme votre contenu
T.P. : Créer quelques contenus
Créer un type de contenu Allez à admin/content/types/add Créez un type de contenu Recette Renommez Description en Instructions Pas très intéressant, sauf que déjà vous pouvez créer plusieurs types auxquels n'auront accès que certains utilisateurs Vous pouvez également autoriser ou non les commentaires sur ce nouveau groupe
Blocs et menus
Menus et Blocs Les menus regroupent des chemins Les blocs permettent d'afficher des choses diverses et variées Créer un menu va créer automatiquement un bloc associé Les blocs seront montrés aux positions voulues et sur les pages voulues
Menus Deux menus sont spéciaux : liens primaires et liens secondaires Ces menus sont exploités par les thèmes Un élément de menu c'est : Un chemin Un titre qui sera affiché Une description qui apparaitra au survol
T.P. : Créer un menu Allez à admin/build/menu Créez un nouveau menu Ajoutez des éléments vers vos contenus créés Ajoutez un élément Contact dont le chemin est contact
T.P. : Créer un menu
T.P. : Afficher le menu Allez à admin/build/block En jaune les positions offertes par le thème en cours En bas les blocs désactivés Trouvez le bloc correspondant au menu créé Affichez le dans une des barres latérales : Sélectionnez la position Enregistrez en bas
Gestion des accès
Gestion des accès Jeux de rôles, anonymes et identifiés User 1 : le super administrateur a tous les droits Gestion fine : Chaque module définit ses accès protégés L'administrateur attribut les droits aux rôles voulus Liste blanche : un oui suffit Pour aller plus loin, il y a des modules qui gère individuellement les accès aux contenus
T.P. : Gestion des accès Rendez-vous à admin/user Créez un rôle staff puis un utilisateur u_staff avec pour rôle staff Rendez vous ensuite dans la gestion des utilisateurs, partie Droits d'accès Enlevez les accès au contenu pour l'utilisateur anonyme et mettez les pour staff Déconnectez-vous et rendez vous à l'accueil du site Connectez-vous en tant que u_staff Rendez-vous à l'accueil du site
T.P. : Gestion des accès Reconnectez-vous en administrateur Rendez-vous à la gestion des blocs et configurez le bloc du menu que vous avez créé Dans la partie basse, donnez les droits uniquement aux anonymes Connectez-vous sous u_staff et retournez voir ce bloc
Classification des contenus
Classification sous Drupal Sous Drupal, on ne parle pas de classification mais de taxonomie La taxonomie va contenir des vocabulaires Les vocabulaires contiennent des termes Les termes s'appliquent à des nœuds Ceci permet de structurer le site, en donnant accès à des termes plutôt qu'aux contenus directement Ceci permet d'avoir des systèmes de classification et navigation concurrents
Classification des contenus Un vocabulaire peut être : Étiquettes, Obligatoires ou un Choix multiples Les termes peuvent avoir un ou plusieurs parents, on parle alors de vocabulaire hiérarchique
T.P. : Taxonomie Rendez-vous à admin/content/taxonomy Créez un nouveau vocabulaire obligatoire Type Ajoutez y des termes (Entrée, Entrée Chaude, Entrée Froide, Plat, Viande, Poisson, Végé, Apéro, Dessert, etc) Appliquez ces termes à des contenus : une nouvelle navigation apparait Dans le menu principal, ajoutez des éléments pointant vers vos termes Modules utiles : Taxonomy Manager, Edit Term
T.P. : Taxonomie Créez un autre vocabulaire Ingrédient de type Étiquettes Ajoutez y des termes (Uru, Banane, Mahi Mahi, Avocat, Coco, etc) Rendez-vous de nouveau sur vos contenus et étiquetez les
Classification des contenus Il faut avoir en tête les navigations qu'on souhaite proposer et créer les vocabulaires en conséquence Nativement Drupal propose une vue des termes sous forme d'une liste de résumés des contenus Le module Views nous permettra d'aller beaucoup plus loin
Modules
Etendre Drupal Le Core de Drupal est assez réduit finalement Etendre drupal c'est : télécharger une archive depuis drupal.org la décompresser dans sites/all/modules ou sites/all/themes activer l'extension
T.P. : installer des modules Rendez-vous sur drupal.org, dans la section modules Vous voyez à droite la classification et le nombre de modules disponibles Utilisez les filtres pour réduire, par exemple par version de Drupal Cherchez le module Admin Menu Installez le Enjoy!
Les modules indispensables Admin Menu, Permission Select Date, CCK, Views, Context, Rules Taxonomy Manager, Taxonomy Super Select, Wysiwyg (TinyMCE), Unlimited CSS Loader Image, Img_assist, Imagecache, Lightbox, ImageAPI, SwtTools Pathauto, Page Title, Integrated Metatags, XMLSitemap Simplenews Pour le dev et le theming : Skinr Devel
T.P. : installer des modules Installez les modules : Admin Menu, Permission Select CCK, Views, Context, Rules Taxonomy Manager, Wysiwyg (TinyMCE) Date, Imagecache, Lightbox, ImageAPI Pathauto
Éditez facilement les contenus
Formats d'entrée Allez dans Configuration du site > Formats d'entrée Des modules peuvent installer des filtres qui vont être invoqués (en général) lors de l'affichage des contenus Drupal permet de définir plusieurs profils, nommés Formats d'entrée (Input Filters) associés à différents rôles On peut configurer les filtres individuellement Mettez Full HTML comme format par défaut
Wysiwyg Allez dans Configuration du site > Wysiwyg Ce module enrichit l'éditeur d'une barre de mise en forme On peut activer les boutons individuellement et par format d'entrée Activez tous les boutons pour le format Full HTML Rendez-vous sur un contenu pour l'éditer
Image Assist Ce module permet de facilement insérer des images dans les contenus Pour l'utiliser, il existe un bouton dans la barre d'outil TinyMCE : le bouton en forme d'appareil photo Quelques réglages à découvrir Lors de l'insertion d'une image, il faut enregistrer en tant que Filter Tag (à régler par défaut dans les paramètres) Rendez-vous sur une recette et ajoutez une image
ImageCache Ce module est également un des plus importants Seul il ne sert à rien mais conjointement à CCK ou Views il permet de traiter automatiquement les images L'idée est de créer des profils (presets) qui vont être des modèles de transformation Chaque image insérée ensuite sur le site pourra exploiter ces profils Allez à admin/build/imagecache et ajoutez des profils en largeur 100, 200 et 400
Lightbox Ce module propose de nombreux réglages Son but est d'ajouter un effet «lightbox» à vos images Rendez-vous à Configuration du site > Lightbox2 et parcourez les réglages Dans la partie Automatic Handling, choisissez Lightbox où vous pouvez Dans Image Node Settings, sélectionnez alors Lightbox et les triggers possibles
CCK
Content Construction Kit Ce module très très important permet d'enrichir les types de contenus avec des champs de différents types Cela permet de : Faciliter les saisies Uniformiser le rendu Mettre en place des tris&filtrages Mettre en place des accès privés à certains champs On définit le type de contenu On ajoute les champs avec les types souhaités
T.P. : Content Construction Kit Installez filefield et imagefield Rendez-vous à Gestion du contenu > Types de contenu Éditez le type de contenu Recette précédemment créé Allez alors dans Gérer les champs Ajouter des champs pertinents : temps de préparation, temps de cuisson, image principale, images secondaires, coût, difficulté, etc
T.P. : Content Construction Kit Une fois tous vos champs créés, allez à Afficher les champs dans le menu local Là vous allez pouvoir gérer l'affichage de chaque champ en mode résumé ou en mode pleine page Choisissez les affichages qui conviennent, pour les images préférez une petite image pour le résumé Rendez-vous ensuite sur vos recettes, éditez puis visualisez les Rendez-vous enfin sur une page de terme pour voir les recettes en résumé
Views
Views L'autre module hyper important de Drupal Views permet de créer des affichages Un affichage est : Une sélection de contenus Un type d'affichage (page, bloc, flux, etc) Une sélection d'éléments à afficher La sélection des contenus va se faire selon des critères sur le nœud, le contenu, la taxonomie, etc On peut trier les résultats On a plusieurs possibilités pour afficher au final, et un choix unitaire pour chaque champ sélectionné
T.P. : Views
Views Plusieurs panneaux à remplir Les Paramètres par défaut servent de base, pour créer les affichages utiles, il faut ensuite Remplacer ou Supplanter les valeurs Cela agit comme des CSS et on peut surcharger des valeurs dans les affichages ensuite Une vue peut donc contenir plusieurs affichages basés sur le même modèle général
T.P. : Views Allez à Construction du site > Vues Ajoutez une nouvelle vue de type Node Nommez la Recettes Remplissons chaque panneau dans l'ordre Filtre : Dans Node, sélectionnez le type Recette et Publié ou Admin Tri : sélectionnez la date de publication, ordre descendant Paramètres de base : Style : HTML List Éléments à afficher : 5 Champs à afficher : titre, date, résumé, ingrédient principal, photo principale
T.P. : Views Ensuite à gauche, sélectionnez Bloc dans le sélecteur et cliquez sur Ajouter un affichage Vous êtes maintenant dans un autre affichage basé sur les paramètres par défaut Si vous modifiez un réglage sans Remplacer ou Supplanter, c'est le réglage par défaut qui est modifié Modifiez le bloc pour ne laisser que le titre et la photo principale Créez un autre affichage Page où vous modifierez le nombre d'éléments à afficher (mettez 10 + pagination) Pour le chemin, mettez par exemple mes-recettes
T.P. : Views Une fois fini, cliquez sur Enregistrer Rendez-vous ensuite à la gestion des blocs pour afficher le bloc créé Rendez-vous enfin sur votre page mes-recettes
T.P. : Views, Filtres Vous avez utilisé les filtres Retournez dans votre affichage page Ajoutez un filtre sur, par exemple, le titre du nœud Exposez ce filtre Enregistrez et retournez voir votre page mesrecettes
Views et les arguments Une vue peut utiliser des arguments Ces arguments sont fournis par le contenu en cours ou par un chemin Les arguments sont de natures variées On peut par exemple afficher les contenus liés à un autre en passant comme argument sont identifiant
Outils du référencement
Pathauto Permet d'avoir des urls plus parlantes Indispensable pour le référencement Les urls utilisent des modèles de remplacement : le détail est fourni dans l'aide contextuelle On peut utiliser le titre de l'article, la taxonomie, les menus, etc On peut définir cela pour chaque langue et chaque type de contenu Rendez-vous à Construction du site > Alias d'url
Integrated Metatags Permet de remplir les balises méta Indispensable pour le référencement Les métas générées utilisent des modèles de remplacement On peut utiliser le titre de l'article, la taxonomie, les menus, etc On peut définir cela pour chaque type de contenu Rendez-vous à Gestion du contenu > Integrated Metatags
Page Title Permet de remplir les balises méta Indispensable pour le référencement Les métas générées utilisent des modèles de remplacement On peut utiliser le titre de l'article, la taxonomie, les menus, etc On peut définir cela pour chaque type de contenu Rendez-vous à Gestion du contenu > Titre des pages
Context
Context Ce module permet de gérer des espaces Un espace est défini sous diverses conditions (ET) : menu, chemin, type de contenu, etc Une fois dans l'espace, on définit des réactions Les réactions portent sur le menu, le thème et surtout les blocs Allez à Construction du site > Context Ajoutez des contextes et faites varier les blocs associés
Déclencheurs et actions
Actions Les actions permettent d'effectuer certaines opérations Seules, elles ne servent à rien Allez à Configuration du site > Actions Créez une action avancée, un envoi de mail par exemple
Déclencheurs Le module Trigger gère les déclencheurs Ces derniers permettent de mettre en place des événements Un événement va permettre de déclencher des actions Par exemple, un nouveau commentaire va donner lui à l'envoi d'un mail au modérateur Activez Trigger et allez à Construction du site > Triggers Mettez en place un déclencheur lié à votre action avancée
Déclencheurs : Rules Trigger est limité Rules permet d'aller beaucoup plus loin Il permet de définir des jeux de règles Des opérations logiques sont implémentées On peut planifier des exécutions d'actions
Déclencheurs : Scheduler Si on n'a pas besoin de toute la puissance (et la complexité...) de Rules, on peut utiliser des modules plus spécialisés Scheduler par exemple permet de planifier les publications de contenus
Traduire le site
Traduire le site Le module Locale permet de traduire les menus et certains éléments de structure Le module i18n permet de traduire les contenus Pour chaque type de contenu on va dire s'il peut être traduit En créant/éditant un contenu, on va pouvoir spécifier la langue de ce contenu La bascule se fait à l'aide de sélecteur sur les contenus
Traduire le site Modules utiles : Translate Table Language Icons POTX Logiciel utile : POEdit La langue de base est l'anglais TrucS pour traduire vite : copier les fichiers.po exporter, éditer et réimporter
Thèmes et templates
Thèmes Un thème s'installe comme un module, mais dans sites/all/themes On peut configurer les thèmes, plus ou moins, et il existe des paramètres généraux Les blocs sont configurables par thème, ce qui permet de faire cohabiter proprement plusieurs thèmes sur un même site Certains thèmes utilisent le module Color pour permettre de les colorier
T.P. : Thèmes Rendez-vous sur drupal.org/themes Installer un nouveau thème et activez le Allez ensuite le paramétrer
Templates Les templates vont permettre de personnaliser les affichages On passe par des fonctions de thèmes ou par des fichiers *.tpl.php Ce sont des fichiers HTML contenant des instructions PHP Les fichiers de templates sont visualisables dans les dossiers des thèmes Les templates sont surchargeables
T.P. : Templates Views fournit un moyen de surcharger ses templates : cliquez sur Thèmes : Informations dans un affichage pour le voir L'écran suivant permet de voir les candidats, il faut en fait tester et selon ce qui est en place sur le site en choisir un plus ou moins général Enfin en cliquant sur un des éléments, on peut voir le code utilisé Essayez de modifier un template associé à votre bloc de recettes
Le reste de l'administration
Gestion des utilisateurs Outre les rôles, on peut gérer des profils utilisateurs, en ajoutant des champs à remplir par les utilisateurs (numéro de vini, adresse, nom, prénom, etc) Le module Node Profile permet d'aller plus loin On peut bloquer un utilisateur Des modules permettent d'aller plus loin sur la gestion des utilisateur, comme UserPlus
Optimisations
HTML Les images, ne pas utiliser de redimensionnement HTML (perte de qualité, mais pas de taille fichier) Utiliser des images correctement compressées (attention aux enregistrements Photoshop direct) Bien configurer le.htaccess : passer par Y!Slow pour avoir des indications Utiliser des sprites CSS si possible
Performances : valeurs préconisées En dév : Aucune optimisation, pas de cache.htaccess avec les expirations à 1s Display errors = On (php.ini) En production : Utilisation du cache normale Cache blocs activés (sauf si bloc très actifs) Optimisation CSS Optimisation JS si pas d'effet de bord, sinon sortir de l'aggrégation les JS en cause Cache des vues bien à définir Display errors = Off (php.ini)
Passage dev prod
Procédure Un moyen simple de passer du développement vers la production est de ne pas écraser les données dynamiques distantes (commentaires, statistiques), il faut : Effacer les tables cache* locales Exporter la base, sauf les tables comments et access Importer le fichier résultat sur le serveur de prod
Mise à niveau de modules Dans les modules, activez Update Status Configurez le à Rapports > Available updates S'il y a des mises à jour pour certains modules Désactivez ces modules Supprimez les fichiers associés Mettez les nouveaux fichiers Activez Landez update.php