Quantcast
Channel: LEKTUM - Drupal 7
Viewing all articles
Browse latest Browse all 4

Les meilleurs modules pour Drupal. Introduction à Drupal 7 (notre billet le plus lu)

$
0
0

Nous venons de lancer notre premier projet sous Drupal 7. Autant dire que nos découvertes sont à la hauteur de nos espérances. Drupal 7 est réellement une petite merveille. Même s'il en manque encore quelques uns, tous les modules importants de la communauté sont maintenant disponibles. C'est pourquoi nous vous proposons un premier bilan, étayé sur plus de deux ans d'expérience sous Drupal 6 et adapté aux nouveautés de Drupal 7. Un billet en or qui mûrit depuis longtemps à l'état de draft et que LEKTUM est fier d'offrir à la communauté, bien qu'il ne soit pas encore complet.

Drupal 7, quoi de neuf ?

L'interface

D'autres l'ont déjà dit, on ne le dira jamais assez, l'une des avancées majeures de Drupal 7 est l'amélioration significative de l'expérience utilisateur, pour une meilleure “empirie d'usage” (Court traité du design, PUF, 2010, p. 64). Tout le monde le sait : l'interface de Drupal 7 est méconnaissable. Plus ergonomique, plus moderne, plus confortable, tout y est fait pour que l'expérience Drupal devienne plus simple et plus agréable. Merci au projet D7UX, qui a beaucoup œuvré pour faire de Drupal 7 “an amazing user experience". Principale nouveauté sur le plan formel : tout a été ajaxé grâce à un nouveau module système nommé “Overlay” qui permet d'afficher le back-office par dessus le front-office, dans une fenêtre modale de premier plan toute jQuerysée, un peu comme une Lightbox.

L'automatisation

En outre, sur le plan fonctionnel, de grands caps ont été franchis, plaçant Drupal à un tout autre niveau que ses concurrents d'autrefois : on pense bien sûr à l'intégration au noyau de Drupal 7 du célèbre module CCK, devenu l'interface Field UI, mais aussi, et ce n'est pas la moindre des innovations sur une plateforme de cette ampleur, l'automatisation de l'installatoin et de la mise à jour des modules et thèmes depuis l'interface utilisateur, comme dans WordPress. Plus besoin de passer par FTP ou SSH, tout se fait en quelques clics pour accéder à plus de 8 000 modules... Trop de bonheur. 

L'installation multi-sites

La procédure d'installation n'a pas structurellement changé et demeure, pour le bonheur de tous, toujours aussi simple. Nous avons pu procéder à une installation multi-sites parfaitement tranquille, et en tout point semblable au tutoriel d'installation multi-sites pour Drupal 6 publié ici même par nos soins en février 2009. Seule petite nouveauté importante : l'apparition d'un fichier sites.php dans le répertoire /sites, qui permet de résoudre pas mal de problèmes d'aliasing. Par exemple, dans le cas d'un site multi-domaines ou multilingue avec gestion des langues différentes selon le domaine, ce fichier permet de formuler des alias de domaines fort utiles, en suivant la syntaxe : 

$sites['en.lektum.com'] = 'www.lektum.com';

Nous ne pouvons pas dresser ici une liste de toutes les nouveautés. D'abord parce qu'il n'est pas possible de toutes les connaître, même pour nous, et même si, après une première installation, nous en avons repéré déjà une petite foule :). Chacun doit faire son expérience de Drupal 7 qui réserve son lot de bonnes surprises, tant les améliorations de fond comme les améliorations de détail sont nombreuses (en témoignent les nombreux modules qui ont été intégrés au noyau et qu'il n'est plus nécessaire d'installer).

Post-installation de Drupal 7

Avant, sous Drupal 6, il y avait tout un tas de modules à ajouter immédiatement après l'installation du cœur de Drupal afin de bénéficier d'un outil vraiment complet. Un grand nombre de ces modules ayant été intégrés au nouveau noyau, voici ce qui reste du peu de choses à faire après une installation propre de Drupal 7. Cela tient en quelques étapes simples, qui sont si évidentes qu'il est presque embarrassant de les nommer. 

  1. Vérifier le Tableau de bord d'administration dans les "Rapports" (parfois des problèmes de permission à résoudre)
  2. Installer et configurer les modules d'automatisation de la traduction : Localization Update et Localization Client (ça change la vie)
  3. Configurer systématiquement toutes les rubriques des menus d'administration ("Configuration", "Rapports > Mises à jour disponibles > Paramètres", etc.)
  4. Installer et configurer tout de suite les modules d'internationalisation en cas de site multilingue, surtout si des noms de domaines différents sont en jeu
  5. Activer et configurer tous les modules utiles du Core, avant d'envisager l'étape suivante : l'ajout de modules supplémentaires.

Étapes de mise en œuvre

  1. Activer le base thème retenu afin d'avoir à disposition les bons fichiers template à modifier pendant le développement
  2. Construire tous les types de contenu (avec Display Suite et les tpl.php si nécessaire)
  3. Construire les fonctionnalités (menus, views, panels, etc.)
  4. Implémenter le thème final
  5. Revoir la configuration domaine par domaine (dans le cas d'un site multi-domaines)

Guide thématique des meilleurs modules pour Drupal

Si de nombreux modules ont été intégrés au noyau de Drupal 7, il en reste évidemment de nombreux autres très intéressants, dont certains sont incontournables. Voici un bref tour d'horizon. La quasi-totalité des modules cités ci-dessous sont, à la date de ce billet, d'ores et déjà en version stable pour Drupal 7, sauf exception qui ne peut que se résorber plus vous lirez ce billet tard après sa date de publication. Le classement proposé manque délibérément de rigueur (tant dans ses dénominations que ses choix de classification), ce qui ne manquera pas de déplaire aux puristes. Mais, pour les gens pressés et pragmatiques, il devrait être très utile :).

Modules "systèmes"

  1. Localization Update (mettre à jour automatiquement des traductions de modules disponibles)
  2. Localization Client (personnaliser et soumettre en live ses propres traductions)
  3. Token (disposer de jetons de remplacement pour le nommage automatique)
  4. Pathauto (automatiser la création d'alias d'URL)
  5. Global Redirect (censé résoudre les problèmes de duplicate content avec les alias d'URL, efficacité à démontrer, conflits avec i18n, voir le module Redirect ci-dessous)
  6. Redirect (créer des redirections d'alias d'URL, compatible avec i18n et le préfixe dans l'URL, suffisant pour éviter duplicate content, mieux que Global Redirect, dont l'efficacité est à démontrer et qui pose des problèmes de compatibilité avec i18n)
  7. External links (forcer les liens externes dans une nouvelle fenêtre)
  8. Meta tags (ajouter et personnaliser des meta tags, version Drupal 7 du célèbre NodeWords)
  9. Meta tags quick (à utiliser en attendant que le module Meta Tags ci-dessus soit prêt, permet d'ores et déjà d'ajouter des meta tags à toutes les entités Drupal 7, nodes, users, taxonomy)
  10. PageTitle (personnaliser à la volée les balises <title> node par node, module qui sera fondu dans le futur Meta Tags ci-dessus)
  11. Refresh (permet d'ajouter sur le formulaire d'édition d'un node une meta refresh en secondes ; module qui sera fondu dans le futur Meta Tags ci-dessus)
  12. 404 Navigation (conserver les régions du thème sur les pages 404, anciennement 404 Blocks)
  13. Search 404 (remplacer une page d'erreur par une page de résultats basés sur l'URL)
  14. Custom Search (personnaliser la search box)
  15. Backup and Migrate (faire des sauvegardes, imports, exports de la base)
  16. No IE6 ou IE6NoMore (bannir Internet Explorer 6 en douceur)
  17. Browser class (générer des classes CSS de navigateurs sur <body>)
  18. CSS injector (injecter des CSS dans le site depuis l'interface ou node par node via le module CSS)
  19. Migrate (migrer les contenus depuis une autre solution)

Modules incontournables

  1. Google Analytics (intégrer la célèbre solution de statistiques)
  2. MailChimp (intégrer la solution de newsletter MailChimp, incontournable, sinon voir le module Mailing List utilisé sur Drupal Gardens) + Webform Mailchimp + Mailchimp Campaigns
  3. Location Map (générer un plan d'accès Google Maps)
  4. Feedback simple (générer un bouton latéral accroché à la fenêtre du navigateur pour signaler des choses au webmaster)
  5. Role Delegation (restreindre le droit de donner des droits d'accès et des rôles, juste indispensable)

Modules "grosses machines"

  • Field UI, intégré au noyau natif de Drupal 7, autrefois connu sous le nom de CCK (personnaliser à l'extrême tous les champs d'un type de contenu, non seulement pour les types de nodes, mais aussi les users et les termes de taxonomie). À compléter impérativement avec :
    • Display Suite (personnaliser à l'extrême l'affichage ou le layout d'un Node ou d'une View, par exemple en modifiant l'output HTML/CSS en point-and-click ou pire en affichant un node ou une view en plusieurs colonnes dont on personnalise la structure d'affichage en point-and-click : la première fois, ça scotche pour un bon moment tellement on le croit pas, voyez cette première vidéo [Display Suite pour les nodes] et cette seconde vidéo [Display Suite pour les nodes avec la souplesse de Panels] et enfin cette troisième vidéo [Display Suite pour les Views] ; ce module révolutionne le theming en profondeur)
    • Field Group (éditer des groupes de champs et pouvoir choisir en point-and-click si ces groupes sont collapsibles ou non, et leur ajouter des classes)
    • References (disposer des types de champs noderef et userref dans Drupal 7)
    • Geofield (ajouter un champ de géolocalisation)
    • User Role Field (restreindre un champ à un rôle)
  • Views (requêter dans la base de données sans écrire une ligne de PHP et produire des affichages riches et puissants de type listes, tableaux, cartes, slideshows, et j'en passe) et ses dépendances utiles, telles que :
  • Panels (créer des mises en pages complexes et entièrement personnalisées sous la forme de panneaux assemblés, facilement modifiables et entièrement ajaxés, on croit rêver la première fois)
  • Domain Access (affecter à un site plusieurs noms de domaines ayant chacun son contenu propre, en restant sur une même installation de Drupal et une même base de données : créer des sous-sites ou mini-sites dans un même site global, juste sidérant) (selon le projet, il peut être intéressant aussi d'examiner Subdomain, Sections, Subsites)
  • Context (définir des contextes fonctionnels dans un site permettant d'affecter des blocs ou des entités à certaines sections et pas à d'autres)

Modules linguistiques

Modules "gestion de contenu"

  • Wysiwyg (installer un éditeur WYSIWYG tel que TinyMCE, CKEditor et beaucoup d'autres)
  • CKEditor (module indépendant de Wysiwyg et en un sens plus complet) avec des modules liés comme :
    • CKEditor SWF (insérer facilement du Flash, du MP3, et même des vidéos YouTube)
    • CKEditor Link (faciliter la création de liens internes au site Drupal)
  • IMCE (ajotuer un navigateur de fichiers à votre éditeur WYSIWYG)
    • IMCE Crop (retailler les images à la volée)
    • IMCE Mkdir (gérer l'arborescence de dosseirs à la volée)
    • IMCE Rename (renommer les fichiers à la volée)
    • IMCE Tools (améliorer grâce à IMCE Search + IMCE File Path)
  • Video_Filter (faire de l'embedding de vidéos multi-platefomes)
  • Image Resize Filter (gérer facilement les redimensionnements à la volée)
  • Transliteration (éviter les problèmes avec les noms de fichiers)
  • Multiupload Imagefield widget (charger plusieurs images en une seule fois)
  • Maxlength (limiter le nombre d'un caractères d'un champ de type de contenu ou de formulaire)
  • iTweak Upload (améliorer énormément la fonction de fichiers attachés)

Modules "newsletter"

  • Simplenews (collecter des emails sur le site et envoyer des newsletters depuis le site, y compris en HTML grâce au module Mime Mail)
  • Newsletter (un petit nouveau qui s'annonce comme THE module de newsletter pour Drupal 7)
  • MailChimp (associer Drupal à l'incontournable et irremplaçable solution Cloud de Mailchimp.com)
  • Just Another Social Module (JASM) (intégrer plusieurs réseaux sociaux aisément + disposer d'une newsletter sur flux RSS Feedburner)

Modules "images et multimédia"

Modules "mobiles"

  • Responsive images (réduire la taille des images de manière réactive au redimensionnement de la fenêtre)
  • Mobile Tools (rediriger vers le site mobile, changer de thème automatiquement selon le terminal, notifier l'utilisateur qu'un site mobile est disponible...)
  • Browscap (détecter le user agent, à combiner à Mobile Tools)
  • Services
  • Mobile Codes (générer des QR codes à partir d'infos textuelles, URL, etc.)

Modules “nodes”

  • SimilarByTerms (afficher une liste de nodes similaires sur la base du même terme de taxonomie)
  • Relevant content (référencer du contenu pertinent lié)
  • Pagination (paginer automatiquement ou arbitrairement un même node)
  • Author Contact (générer un formulaire de contact permettant de contacter l’auteur du node)
  • Content Access (restreindre l'accès au contenu de manière fine)
  • FAQ (générer facilement des FAQ)

Modules de restriction d'accès

Modules “fils d'Ariane”

  • Menu Breadcrumb (afficher dans le fil d'Ariane le menu auquel la page courante appartient)
  • Custom Breadcrumb (personnaliser de manière approfondie le fil d'Ariane par node types, etc.)

Modules "menus"

  • DHTML Menu (créer des menus dépliants)
  • Menu Attributes (générer des ID et des class et autres attribust sur des items de menus)
  • Menu FirstChild (renvoyer un item de menu vers son premier enfant sans lui attribuer de chemin)
  • Nice Menus (créer des menus déroulants)
  • Superfish (des menus déroulants très avancés)
  • Menu Admin per menu (donner les droits d'admin sur certains menus et pas d'autres)
  • Menu per Role (restreindre l'accès aux items de menu par rôle)
  • OM Maximenu (des mega menus riches simples et faciles avec des "awesome features")
  • Menu Minipanels (intégrer des panels dans un menu, utile pour un mega drop down ou un drop down riche)
  • MegaMenu (faire un mega drop down menu  ; la page du module cite aussi des projets similaires)

Modules "blocs"

  • Boxes (les blocs ajaxés et réinventés, très puissant avec Panels) et son incroyable Field Boxes qui pourrait bien révolutionner Drupal
  • Collapsiblock (blocs dépliants très utiles avec Panels, à tester)
  • Block class (ajouter des classes css aux blocs via l'interface d'admin des blocs)
  • Node Blocks (rendre des types de contenu disponibles comme blocs)
  • Multiblock (avoir plusieurs instances d'un même bloc)

Modules "Tabs"

  • Tab Tamer (activer, désactiver, ré-ordonner, renommer les tabs des nodes)

Modules "taxonomie"

Modules "utilisateurs", de login et de formulaires

  • Me aliases (le couteau suisse qui génère des liens dynamiques selon le user)
  • Login Destination (rediriger comme on veut les users après le login)
  • Login Toboggan (enrichir les événements à la connexion de l'utilisateur)
  • Alternate Login (permettre aux users d'avoir un nom différent de leur login)
  • AutoAssignRole (assigne automatiquement un rôle lors de l’enregistrement, dans certaines conditions)
  • Compact Forms (des formulaires plus compacts)

Modules de géolocalisation

  • OpenLayers (géolocaliser du contenu, avec tous types de fonds de carte, Google Map, OSM, MapBox, etc.)
  • GMap (la même chose que OpenLayers mais seulement pour GoogleMap)
  • Location (insérer des données de géolocalisation, module en complète ré-écriture pour la nouvelle API Drupal 7)
  • Geofield (ajouter un champ de type géolocalisation dans Field UI en attendant Location, compatible OpenLayers)
  • Geonames (accéder à une base de données gratuite et ouverte de 8 millions de lieux dans le monde, à étudier pour comprendre comment l'utiliser)

Modules Web 2.0 et "communautés"

COMMENTAIRES

RÉSEAUX SOCIAUX DIVERS

  • Drupagram (intégration à Drupal de l'incroyable réseau social photo Instagram)
  • Just Another Social Module (JASM) (intégrer plusieurs réseaux sociaux aisément + disposer d'une newsletter sur flux RSS Feedburner)

PARTAGE

  • AddThis (intégrer et personnaliser le wdiget de partage AddThis)
  • Social Links (le partage de contenus Drupal tous réseaux sociaux sans service 3rd-party)
  • Social Media (intégrer tous les réseaux sociaux possibles via des widgets simples et performants) ; meilleur encore avec Widgets

FACEBOOK

TWITTER

  • Twitter (permet de publier automatiquement sur Twitter depuis Drupal via OAuth)
  • Twitter Block (permet de créer un bloc simple pour afficher les tweets d'un user, d'une recherche ou d'un hashtag)
  • Twitter Profile Widget (le basique pour afficher le widget twitter officiel dans un block)
  • Tweet Button (l'officiel bouton de RT)
  • Tweetmeme (installer le célèbre bouton tweetmeme pour ceux qui préfèrent)
  • Daily Twitter (le module qui crée 1 billet de blog avec tous vos tweets du jour !)
  • Tweetboard (permet d'afficher un board Twitter en overlay)
  • Twitter Username (valider un username twitter)
  • Twitter Field (tout est dit, non encore stable pour D7, à suivre)

COMMUNAUTÉS

  • Profile2 (créer une entité de profil utilisateur séparée des champs de la page user, accessible dans une autre "tab")
  • Skype Statut (indiquer son statut Skype en temps réel sur le site)
  • Statuses (permettre aux utilisateurs de publier un statut comme sur Facebook, sur un Mur)
  • Make Meeting (gérer des réservations à un événement à la Doodle)
  • Flexible Blogs (améliorer le module Blog natif pour créer des plateformes multi-blogs)
  • Comment Notify (notifier de nouveaux commentaires)
  • Fivestar (voter le contenu)
  • Activity Stream (flux d'activité des users comme sur un réseau social, toujours pas disponible pour Drupal 7)
  • Hearbeat (alternative à Activity Stream, disponible pour Drupal 7)

FORUMS

[ il y a beaucoup trop de modules intéressants et importants dans cette catégorie, impossible d'en citer plus pour l'instant ]

Modules "accessibilité"

  • TextSize (ajouter des boutons + et - pour contrôler la taille du texte)
  • Page Style (créer des versions Noir et Blanc du site et autres styles pour l'accessibilité)
  • PNG Fix (assurer le support de PNG dans IE6 et IE5 via jQuery)

Modules e-commerce

  • Commerce Atos (installer des passerelles de paiement en ligne avec les banques françaises)

Modules "développement"

  1. Devel (suite d'outils incontournables en phase de dev)
  2. Demo (prendre des instantanés du site et pouvoir y revenir)
  3. Features (créer des packs de modules et de fonctionnalités exportables ; attention, c'est aussi une usine à gaz)
  4. Link checker  (vérifier les liens brisés sur un site)

Modules "theming"

  • Delta (dupliquer des settings de thème pour gérer des layouts conditionnels avec Context)
  • Custom Search (pour overrider librement la search box)
  • FontYourFace (une interface pour utiliser des typos non standard via des services tiers ou non)
  • Google Webfont Loader (comme son nom l'indique)
  • Google Fonts (pour utiliser des typos Open Source !)
  • Role Theme Switcher (assigner un thème pour un rôle)
  • Custom Page (créer des pages ayant leur propre thème, tout en héritant du header, footer...)
  • Cufon (générer des typos "fancy" grâce à un script jQuery de remplacement)
  • ThemeKey (changer de thème selon une foule de conditions possibles)

Thèmes

Thèmes de départ

  • Responsive HTML5 Boilerplate (un base thème HTML5 responsive !!)
  • Omega (un base theme très puissant en HTML5/960gs avec une approche Responsive Web Design, qui propose une foule d'options en un clic, avec des sous-thèmes et modules reliés comme Omega Tools ou Delta = un must !)
  • Fusion** avec le module Skinr (un base theme 960gs très puissant avec plein d'options pour faire du point-and-click theming, jusqu'au choix des typos, le skin des blocs grâce à Skinr, etc.) + son thème Fusion Mobile (une version de dev pour Drupal 7 disponible, et une version stable annoncée comme imminente). Une version HTML5 est envisagée comme sub-theme dans l'avenir (indisponible pour l'instant).
  • Adaptativetheme** (un base theme HTML5 livré avec son core theme et son sub-theme qui propose diverses choses en plus : options en 1 clic comme 'equal heights', horizontalisation du bloc login, support de Skinr annoncé, assez proche de Fusion dans l'esprit...) + son Adaptivetheme Mobile (seulement pour Drupal 6 à la date de ce billet, à suivre)
  • Boron* (un base theme HTML5 simple et efficace qui convertit les templates natifs de Drupal en HTML5, sans autre modification)
  • Panels 960gs ** (un base theme HTML5/960gs qui requiert Boron, et génère quantité de layouts pour Panels ; permet de partir du principe qu'il n'a pas nécessairement une "sidebar" dans un site Drupal)

Thèmes prêts à l'emploi

Quand on ne veut pas s'offrir un thème original, on peut se procurer un thème Drupal gratuit fourni par la communauté. En la matière, dans l'offre disponible, il y a à boire et à manger. Notons-en quelques uns qui tiennent la route et peuvent dépanner sur certains projets personnels.

  1. Busy ** (un très bon thème corporate, en bleu et blanc, plutôt élégant)
  2. Marinelli * (un thème corporate assez clean, quoique moins élégant)
  3. Bluemasters ** (un très bon thème avec slideshow en home, que nous avons utilisé pour le site Vigie-Nature du MNHN)
  4. BlogBuzz * (un thème élégant et bien fait, que nous avions utilisé comme base en son temps pour Reduplikation.net)
  5. Dingus * (un thème élégant et intéressant pour un blog)
  6. Sky * (un thème minimal en HTML 5 qui dépannera facilement)
  7. Corolla (un thème propre bien connu de la communauté Drupal)
  8. Grunge * (un thème "loisir" assez sympa, mais uniquement pour Drupal 6 à ce jour)
  9. Colourise ** (un thème très élégant, mais uniquement pour Drupal 6 à ce jour)
  10. Acquia Slate * (un thème intéressant et bien connu, mais uniquement pour Drupal 6 à ce jour)

Thème d'administration

  • Rubik (pour les fanatiques de la séparation entre front-office et back-office)

Thème de site en construction

S'offrir un thème Drupal original

Appendice : petites nouveautés mineures à noter

  • Dans Configuration > Interface utilisateur > Raccourcis, on peut créer des raccourcis ou ensembles de raccourcis personnalisés, très utile pour créer par exemple un menu client dédié
  • Une nouvelle permission "Utiliser le site en mode maintenance" permet à d'autres utilisateurs que le user 1 (par exemple, un client ou chargé de projet) d'accéder au site pendant qu'il est fermé
  • La détection de la langue peut aussi se faire, en option, via les paramètres du navigateur
  • "Configuration > Rapports d'erreur" a été déplacée dans "Configuration > Informations"
  • Poormanscron a été intégré au noyau et se trouve dans "Configuration > Informations"

[ pas pu tout mettre, work in progress, merci de votre compréhension et de vos contributions ]

 


Viewing all articles
Browse latest Browse all 4

Latest Images

Trending Articles


Quelle platine choisir?


Dysgraphie : évaluation avec l'échelle BHK


SEQUENCE Les comptines GS


Camp de Treblinka


WD OPC UA


Modèle situation de travaux excel


J'aurai ta peau (1982) VF


transport Proditrans express


NAFILA 23EME NUIT (EXTERIEUR)


In memoria : André Marie ZOURE





Latest Images