Planète

Par flocondetoile
Adhérent

Les nouveautés de Drupal 8 : son système de configuration

Chaines soutenant un ascenceur

Le système de configuration de Drupal 8 constitue une nouveauté et amélioration majeure de Drupal 8, portée par l'initiative CMI. Le principe en est simple : séparer la configuration d'un site Drupal 8 de son contenu. Cette distinction entre configuration et contenu permet une transition entre plusieurs environnements d'un même site. Toutes les configurations sont stockées désormais au moyen de simple fichiers texte (au format YAML), ce qui sécurise toute modification et évolution si on dispose d'un système de versionning du système de fichiers. Ainsi, des changements et évolutions d'un site Drupal 8 peuvent être envisagées beaucoup plus sereinement. Découvrons les concepts clés de cette nouveauté majeure de Drupal 8.

Thème 
Drupal 8
Configuration
CMI

Par Simon Georges
Simon Georges

Bien débuter avec Nginx

Vous avez longtemps été un utilisateur plus ou moins averti de Apache HTTP Server et vous voulez commencer à tester nginx ? Voici quelques règles assez simples pour partir dans la bonne direction.

Par admin

SynfonyCon 2015

Synfonycon Paris 2015 se déroulera du 3 au 5 décembre 2015 au Folies Bergère Theater, Paris. Ce Rendez-vous fêtera les 10 ans du Framework Synfony et la sortie majeure de sa verison 3.

bandeau Synfony 10 ans

L'association Drupal France et Francophonie sera représentée par tous les membres du bureau 2015 pour parler de la communauté Francophone et du CMS.

Ce sera aussi l'occasion de parler de la nouvelle version "Drupal 8", fraichement sorti (19 novembre 2015), qui s'appuie sur les Bundles de Synfony 2.x

C'est pourquoi Drupal sera un des sponsors de SynfonyCon Paris et nous vous donnons rendez-vous pour venir nous voir. Par ailleurs, l'association à travers de son président interviendra lors des Lightning talks le jeudi 3 décembre à 14h00.

Tags : 
Par flocondetoile
Adhérent

Prendre le contôle sur les prix affichés avec Drupal commerce

Téléviseur dans un champ

Drupal commerce dispose d'un nombre important de modules contribués permettant de modifier l'affichage du prix d'un produit sur une boutique en ligne. Mais si des besoins métier sont par trop spécifiques, comme par exemple, afficher le prix de vente, et le prix original si une promotion lui est appliqué dessus, ainsi que le prix de vente avec un autre taux de TVA, et n'oubmions pas le prix HT, tout ceci accompagné d'une unité de quantité et d'un commentaire,avouez que nous risquons d'être un peu court avec les modules existants tant les besoins métier sont ici particuliers. Découvrons comment prendre le contrôle total de l'affichage du prix de votre produit en créant notre propre formateur de champ qui sera en charge du rendu de celui-ci.

Thème 
Drupal 7
Développement
Commerce

Par Kgaut
Kevin Gautreau

Installer Drupal 8 avec composer

Il est maintenant possible de gérer son installation de Drupal directement avec composer, installation, ajout de module, update...

Prérequis

Pour cela évidement, il faut avoir composer d'installé, sous Debian/Ubuntu :

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

Il aussi est nécessaire d'avoir l'extension php CURL, toujours sous Debian et dérivés installez-la avec :

sudo apt-get install php5-curl

Téléchargement

Placez-vous dans le dossier où vous souhaitez installer drupal 8 (il doit être vide) et lancez la commande suivante :

composer create-project drupal-composer/drupal-project:8.x-dev ./ --stability dev -vv 

Il se peut que vous obteniez un message de ce genre :

Could not fetch *************, please create a GitHub OAuth token to go over the API rate limit
Head to https://github.com/settings/tokens/new?scopes=repo&description=****************
to retrieve a token. It will be stored in "/home/********/.composer/auth.json" for future use by Composer.

C'est une protection mise en place par github pour éviter de se faire aspirer trop de contenu, il faut que vous généreriez un jeton chez eux, pour cela rendez-vous à l'adresse donnée et cliquez sur generate token :

Votre jeton se trouve à la page suivante :

Copiez-collez-le dans le terminal et faite Enter.

L'installation devrait se terminer correctement.

Structure

Votre dossier devrait maintenant ressembler à ça :

La racine de votre site est le dossier web, c'est sur lui que devra pointer votre virtual host.

Si vous allez dans le dossier web/sites/default vous vous rendrez compte que composer à déjà préparer l'installation du site avec le dossier files et les fichiers services.yml et settings.php, vous n'avez alors plus qu'a lancer votre navigateur sur l'adresse de votre virtual host afin de commencer l'installation de drupal en tant que tel.

Installation de modules contrib

Si vous souhaitez ajouter un module tiers, vous pouvez le faire, toujours avec composer via la commande suivante :

#téléchargement du module devel
composer require drupal/devel:8.*

#téléchargement du module token
composer require drupal/token:8.*

#téléchargement du module examples
composer require drupal/examples:8.*

Versionning et déploiment

Si vous observez le contenu du fichier .gitignore, vous verez qu'il demande à ne pas versionner les dossiers du core de drupal, les dépendances tierces ainsi que les modules contrib :

# Ignore directories generated by Composer
drush/contrib
vendor
web/core
web/modules/contrib
web/themes/contrib
web/profiles/contrib

# Ignore Drupal's file directory
web/sites/default/files

# Ignore files generated by PhpStorm
.idea

Pourquoi ? Car toutes la gestion de dépendance passe maintenant par composer et il n'y a donc aucun intérêt à stocker sous git ces éléments tiers. Le fichier composer.lock contient l'ensemble des dépendances avec la version précise nécessaire pour votre application.

Si vous clonez votre dépôt depuis un autre poste, il suffira de faire un composer install pour récupérer l'ensemble des dépendances dans leurs bonnes versions. Pareil pour le déploiement en prod qui doit ressembler à peu de chose prêt à ça :

#Récupération des dernières modifications
git pull origin master

#Téléchargement des éventuelles nouveaux modules ou encore mises à jours
composer install

#Reconstruction du cache (équivalent de cache-clear sous drupal 7)
drush cache-rebuild

#Migration de la base de données
drush update-db

Mise à jour core et modules

Pour mettre à jour le core et les modules, toujours avec composer :

composer update

Si vous vous rendez-compte que quelque chose c'est mal passé, faite un revert sur le fichier composer.lock puis composer install pour retourner dans l'état précédent.

 

Plus d'informations sur la page github de drupal-composer : https://github.com/drupal-composer/drupal-project.

Par Kgaut
Kevin Gautreau

Drupal 8 version finale disponible

Après quelques années de gestations, Drupal 8 est depuis aujourd'hui disponible en version stable (8.0.0 pour être exact.)

C'est une nouvelle version majeur, une mise à jour de votre site en Drupal 7 ne sera pas forcément aisé. Avant de migrer il faudra attendre que les modules tiers que vous utilisez soient portés en version 8 et si vous avez des modules customs, il faudra certainement les réécrire en grande partie.

Au niveau administration, une grosse refonte de l'interface utilisateur à été faite, des modules quasiment indispensables en dans drupal 7 sont maintenant dans le cœur de Drupal 8 (Views, CKeditor...) La gestion des langues est grandement améliorée.

Au niveau du code, Drupal 8 intègre maintenant des briques venant de Symfony 2, il nécessite au minimum PHP 5.5 et est compatible avec PHP7.

Beaucoup de modules restent encore à porter, mais la communauté a beaucoup travaillé pour que la transition soit plus rapide que celle en 2011 entre Drupal 6 et Drupal 7.

Pour le tester, je vous invite à soit le télécharger directement depuis cette page ou bien à utiliser composer via à l'aide de drupal-composer (https://github.com/drupal-composer/drupal-project.)

Si vous avez envie de jouer et d'apprendre le développement de module avec Drupal 8 je vous invite à tester Drupal Console (ceux qui ont déjà utilisé la console de Symfony ne seront pas perdu) qui permet depuis un terminal de générer des modules, des types d’entité, des types de contenu, des blocs...

À noter enfin, pas d'inquiétudes pour vos sites sur Drupal 7 au niveau de la sécurité, la communauté Drupal maintient toujours 2 versions en parallèle, donc le support de Drupal 7 sera toujours assuré jusqu'à la sortie de Drupal 9, nous avons donc quelques années devant nous...

Tags: 

Par admin

Drupal 8, grand pas en avant dans la gestion de l'expérience numérique, est disponible aujourd'hui

La plateforme de création d'expérience numérique la plus puissante et polyvalente du web s'est encore améliorée.

PORTLAND,Oregon, USA, le 19 novembre 2015, Aujourd'hui, DrupalTM a annoncé la sortie de sa dernière version, Drupal 8 (version anglaise). Drupal est la plateforme de création d'expérience numérique open source utilisée par des millions de sites internet et d'applications. Il motorise un grand nombre des sites web les plus influents. Drupal 8 change la manière de créer et proposer les meilleures expériences digitales du monde.

La gestion de l'expérience numérique est une activité quotidienne à temps complet, et Drupal permet depuis longtemps aux compagnies et organisations de rester au goût du jour sur ce point. C'est un logiciel modulaire conçu pour prendre en charge des opérations digitales complexes. C'est la plateforme que les gouvernements utilisent pour faire passer leurs messages les plus importants. (La Maison Blanche, le gouvernement français). C'est aussi la plateforme des contenus qui divertissent (Les GRAMMYs, France Télévision) et qui informent (Le Figaro, Fox News). C'est encore le moyen par lequel les organisations œuvrent à un changement global (Human Rights Watch, Oxfam International).

"Drupal nous permet de nous concentrer sur la production d’une expérience éditoriale efficace et riche en fonctionnalités afin que nos rédacteurs puissent se focaliser sur la création de contenus captivants et pertinents," dit Alexander S. Ross, Directeur d'ingénierie logicielle à NBC Universal Technology. "Nous sommes enthousiastes à l'idée d'utiliser quelques-unes des nouvelles fonctions de Drupal 8 pour stimuler davantage nos éditeurs".

Drupal 8 améliore la manière, pour les organisations, de présenter leur contenu, et l'impact de ce contenu en est amplifié. Ce contenu est conçu de façon modulaire, à base d'éléments flexibles plutôt que de pages rigides. Ceci aide les organisations à proposer ce que le public attend : un contenu digital personnalisé et pertinent. Avec Drupal 8, le contenu peut être exactement ce dont le public a besoin, là où il en a besoin.

“Aujourd’hui nous avons livré la mise à jour la plus importante de l’histoire de Drupal. En plus de nombreuses améliorations liées à la facilité d'utilisation, Drupal 8 intègre d’importantes avancées en matière de modélisation du contenu, ainsi qu'un découplage entre le traitement des contenus (API) et la mise en forme pour le web," a déclaré Dries Buytaert, créateur de Drupal et leader du projet. “C’est la boîte à outils qu'attendent les organisations pour répondre à la demande d’expériences digitales rapides, flexibles et hautement personnalisées qui sont le futur du web. Nous avons optimisé Drupal 8 pour l’intégration avec d’autres systèmes, et pour l’orchestration d’expériences orientées données, fonctionnant avec différents terminaux et canaux de communication. Plus de 3 000 contributeurs ont donné de leur temps sans compter pour créer le système de gestion de contenus (CMS) le plus évolutif et le plus puissant du marché. Drupal 8 transforme notre communauté et le web que nous connaissions.”

Le trait marquant de Drupal 8 est son engagement en faveur d'un contenu structuré et polyvalent. Cependant, cette flexibilité ne constitue pas le seul avantage de Drupal 8 pour aider les organisations à tirer le meilleur parti leurs plateformes numériques. Il apporte plus de 200 fonctionnalités nouvelles ou améliorées, dont :

  • Des outils d'intégration puissants pour interfacer Drupal avec d'autres logiciels présents dans l'infrastructure d'une organisation.
  • La création simplifiée de contenu, à l'aide d'interfaces de contribution adaptatives.
  • Une focalisation renouvelée sur l’approche “mobile d’abord”, permettant de créer des sites et des applications qui fonctionneront sur un éventail de matériels modernes plus étendu que jamais.
  • Une gestion de configuration totalement nouvelle permettant un développement et une maintenance de site plus rapides et plus sûrs.
  • Un support multilingue bien amélioré, offrant la possibilité de traduire n'importe quel élément du logiciel.

Des organisations utilisent déjà Drupal 8. LeTemps, un journal suisse francophone, utilise Drupal 8 pour afficher 4,2 millions de pages vues par mois. CH2M est une société internationale qui oeuvre au développement durable pour des gouvernements, des infrastructures et l'environnement. Elle utilise Drupal 8 pour présenter et démontrer ses compétences.

Le Memorial Sloan Kettering Cancer Center (MSK), un des plus grands centres de lutte contre le cancer des Etats-Unis, a lancé son nouveau site mskcc.org en mai dernier. Il a choisi Drupal 8, alors même que le logiciel n'était qu'en beta, pour étendre la portée de sa campagne "More Science. Less Fear" ("Plus de science. Moins de peur").

"Les chercheurs et les cliniciens du Memorial Sloan Kettering repoussent régulièrement les limites en matière d’innovation et de recherche,” a déclaré Evan Liebman, Directeur des Technologies et Communications en-ligne, “et nous voulions faire de même dans le domaine de la technologie digitale. Il était vraiment important pour nous d’adopter Drupal 8 très tôt et de contribuer à son développement. Avec le code orienté objet et les modèles de conception réutilisables de Drupal 8, nous pouvons contourner rapidement les obstacles techniques. Soixante-quinze pourcent des caractéristiques et des fonctionnalités que nous demandions sont maintenant dans le cœur de Drupal, y compris Views. Cela signifie que vous pouvez créer un site Drupal 8 directement dès la fin d'installation du coeur."

Avec 100 000 contributeurs actifs, Drupal possède une des communautés open source les plus étendues au monde. C’est une communauté mondiale de concepteurs, rédacteurs, traducteurs, développeurs, sponsors et bien d’autres métiers. En plus d’améliorer le cœur de Drupal ils travaillent ensemble à son extension par la contribution de modules, de thèmes et de distributions. Drupal 8 est l’étape la plus récente de leur engagement à son amélioration continue, permettant à des organisations de construire partout des choses qui étonnent le monde

Tous les noms de sociétés et de produits tiers sont des marques de leurs propriétaires respectifs. Nous les avons mentionnés uniquement à titre de référence.


A propos de l’Association Drupal

L’Association Drupal est une organisation sans but lucratif. Elle aide à faire grandir le projet Drupal et sa communauté par le biais de financements, de l’infrastructure, des événements et de la promotion. Sa vision consiste à faciliter la création d’espaces où quiconque, n’importe où, peut utiliser Drupal pour faire de l’internet un meilleur espace. Elle travaille à donner aux créateurs du web, ceux qui le pensent et ceux qui le font, l’inspiration et le pouvoir d’agir ainsi.

Pour plus d’informations, contactez, en anglais, le Président de l’Association Drupal Dries Buytaert, ou sa Directrice Exécutive Holly Ross.

Annonce ci-dessus traduite et localisée à partir de la version anglaise.


A propos de l’Association Drupal France et francophonie

L’Association Drupal France et francophonie est une organisation sans but lucratif. Elle représente officiellement le projet Drupal et sa communauté en France. Elle a pour missions principales de
promouvoir le logiciel libre de gestion de contenu Drupal en France et dans la francophonie,
d'exploiter et de gérer le site communautaire http://drupalfr.org, de maintenir la traduction française de Drupal et de ses principaux modules de contribution, et de créer et maintenir de la documentation en Français.

Pour plus d’informations, contactez le Bureau de Drupal France.


Aller plus loin

Découvrez aussi les principales nouveautés ou améliorations apportées par Drupal 8.

N'hésitez pas à télécharger Drupal 8.0.0 pour l'essayer.

Ces vidéos vous aideront à comprendre pourquoi nous aimons Drupal 8, et que Drupal est vraiment communautaire.

En page d'accueil : 
Version de Drupal : 
Par flocondetoile
Adhérent

Faut-il un expert Drupal 8 pour se lancer ?

pompe à essence libre service

La première version stable de Drupal 8 est enfin disponible au téléchargement. Beaucoup d'encre a coulé sur les nouveautés introduites par Drupal 8, tant elles sont nombreuses il est vrai, mais aussi parce que cette nouvelle version majeure aura su se faire attendre.

Thème 
Drupal 8
Expertise Drupal 8

Par Artusamak
Julien Dubois

La fin de Drupal 6 ?

La fin de Drupal 6 ?
mar, 17/11/2015 - 10:30
DuaelFr

Badge "Don't panic" inspiré du livre "Le Guide du Voyageur Galactique" de Douglas Adams

Dans un article datant du 9 novembre (EN), la date est tombée. Comme convenu depuis plus d'un an (EN), le support officiel de Drupal 6 cessera 3 mois après la sortie de Drupal 8, soit le 24 février 2016.
Cet article a pour objectif de vous expliquer clairement les raisons et les significations de cet arrêt mais aussi vous donner des pistes pour l'avenir de votre propre site.

Pourquoi Drupal 6 doit-il cesser d'être supporté ?

Drupal est un logiciel libre créé et entretenu par une communauté de milliers de développeurs à travers le monde. Sur l'ensemble de ces développeurs, seuls quelques uns touchent un salaire pour contribuer au cœur et aux modules. La grande majorité d'entre eux font cela de manière totalement bénévole.

Outre l'enrichissement du code, plusieurs équipes, encadrées par la Drupal Association (organisme à but non lucratif basé aux États-Unis), tentent de s'assurer que Drupal reste un produit de qualité. On trouve notamment une équipe dédiée à la sécurité, composée d'une quarantaine de membres, mais aussi une équipe qui valide les compétences des nouveaux développeurs afin de leur donner la possibilité de publier leurs propres modules. Comme les autres contributeurs, une grande partie des membres de ces équipes est bénévole et dispose donc d'un temps limité pour assurer ces charges.

Chaque évolution majeure de Drupal a apporté son lot de changements profonds liés à la fois à l'évolution des technologies sous-jascentes (PHP, HTML, Javascript, etc.) mais aussi à l'évolution des pratiques et des tendances. Ces changements de fond nécessitent beaucoup de travail pour que chaque développeur se forme aux nouveaux usages et aux nouvelles fonctionnalités. Cela peut sembler inutilement dispendieux au premier abord mais c'est la seule manière de continuer à proposer une expérience intéressante aux utilisateurs finaux de nos sites. De plus, certaines des technologies sur lesquelles repose Drupal sont soumises aux mêmes problématiques et contraintes et cessent à leur tour d'être supportées. Si l'on choisissait de maintenir notre logiciel malgré l'évolution forcée de ces technologies, nous devrions opérer à des changements à tous les niveaux afin d'éviter erreurs et failles de sécurité, au risque d'en créer de nouvelles par erreur.

En conséquence de cela, la décision a été prise il y a déjà longtemps de concentrer le travail de tous les contributeurs sur les deux dernières versions stables de Drupal, à l'image de ce que proposent un grand nombre d'entreprises dans notre secteur d'activité.

Qu'est ce que cela implique ?

Vous êtes inquiet à propos de votre site existant et c'est tout à fait normal. Cependant, rassurez-vous, la fin du support de Drupal 6 ne signifie pas que votre site va cesser brutalement de fonctionner !

À compter du 24 février, les équipes de développement qui continuaient à faire évoluer le cœur de Drupal 6 cesseront de le faire. Aucune nouvelle version évolutive ou corrective, même concernant la sécurité, ne sera plus publiée. La ligne de téléchargement disparaîtra également de la page du projet. Quelques temps plus tard (la date n'a pas encore été fixée), toutes les versions des modules et thèmes liés à Drupal 6 ne seront plus gérées par le gestionnaire de mise à jour de votre site.

Certaines entreprises ou certains développeurs pourront, s'ils le souhaitent, continuer à maintenir partiellement ou totalement des sites, des thèmes ou des modules liés à cette version mais il est très probable que leur nombre diminue rapidement et qu'ils ne soient donc plus en mesure de fournir assez de main d'œuvre pour répondre à la demande.

Il vous sera donc éventuellement possible de continuer à maintenir votre site quelques mois après la fin du support officiel, voire plus longtemps si vous trouvez les ressources prêtes à intervenir dans ce contexte. Vous devriez cependant être très prudent car votre hébergeur pourrait également décider de cesser le support de la version de PHP qui permet à Drupal 6 de fonctionner et vous vous retrouveriez alors obligés de changer d'hébergeur, de vous auto-héberger ou de procéder à une migration en urgence. Pour information, la dernière version de PHP officiellement supportée par Drupal 6 est la 5.3 et les équipes de PHP ont cessé de l'entretenir depuis le 14 août 2014.

Que faire avec mon site existant ?

Vous l'avez compris, que ce soit à cause de l'arrêt du support de PHP 5.3 par votre hébergeur ou la découverte d'une nouvelle faille de sécurité, votre site Drupal 6 sera prochainement en péril. Quelles que soient vos motivations, il vous sera sans doute possible, de manière plus ou moins complexe, de maintenir votre site à flots quelques mois de plus. Cependant, Drupal 6 fêtera ses 8 ans le 13 février et, même si votre site a été conçu plus récemment, il repose sur un socle technologique ancien et dépassé. À ce stade, vous devriez sérieusement envisager une refonte de votre site.

Comment choisir ma nouvelle version ?

Comme lors de la sortie de Drupal 7 en janvier 2011, même si la communauté est cette fois mieux préparée, il faudra attendre quelques mois avant que les modules indispensables, n'ayant pas déjà été intégrés au cœur (Entity API, Entity Reference, Views, Entity Cache, etc.), soient portés et disponibles dans cette nouvelle version.

Si votre site nécessite un grand nombre de modules contribués, il faudra sans doute choisir Drupal 7.
Dans le cas contraire, si votre site est assez simple vous devriez envisager de passer directement à Drupal 8.

Si vous ne savez pas vraiment sur quels modules s'appuie votre site nous pouvons réaliser pour vous un mini-audit centré sur le problème de la migration vers l'une de ces deux nouvelles versions. Au terme de celui-ci nous serons en mesure de vous recommander la version majeure sur laquelle il sera plus aisé de migrer ainsi qu'une estimation approximative du temps qui serait nécessaire pour le faire. Si cela vous intéresse, n'hésitez pas à nous contacter en utilisant le formulaire en bas de cette page.

Ne vais-je pas tomber dans le même piège une seconde fois ?

La question est pertinente. Comme toutes les versions passées et futures, Drupal 7 et Drupal 8 subiront aussi, un jour, le même sort que Drupal 6. Même si nous ne disposons pas encore de date, la politique officielle de la communauté a déjà été définie. Drupal 7 étant une version Long Term Support (LTS), il disposera de mises à jour évolutives et correctives jusqu'à 3 mois après le début du développement de Drupal 9, puis de mises à jour de sécurité uniquement jusqu'à 3 mois après le début du développement de Drupal 10. Le développement d'une nouvelle version majeure ne démarrant que lorsque des modifications très significatives, rompant la compatibilité descendante, doivent être réalisées, aucune date n'est encore envisagée. Au regard des cycles de développement précédents on peut aisément supposer que le démarrage de Drupal 9 n'aura pas lieu dans avant fin 2017 et que celui de Drupal 10 viendra encore bien après. Drupal 7 devrait donc être supporté au moins jusqu'aux alentours de 2020.

Diagramme du calendrier théorique des futures versions de Drupal

En pratique, en quoi consiste la mise à jour ?

Cette question est trop complexe pour y répondre en quelques mots mais je vais tâcher de résumer très grossièrement car cet article est déjà bien trop long.

Drupal 7 ne dispose que d'un chemin de mise à jour minimal et il peut donc être assez compliqué de réaliser cette évolution d'autant que de nombreux modules ont été rendus obsolètes par l'arrivée de cette nouvelle version et n'ont donc jamais été mis à jour. Dans ce cas il faudra prévoir de repartir du besoin fonctionnel initial pour reproduire, avec les nouveaux outils disponibles, les anciennes fonctionnalités concernées. 
Drupal 8 quant à lui dispose d'un nouveau système, basé sur le module Migrate (désormais intégré au cœur). Ce dernier permettra, pour tous les autres éléments existants également dans le cœur, de convertir données et configuration directement de l'ancien site vers le nouveau, avec un minimum de maintenance manuelle à réaliser. Les éléments un peu plus exotiques devront subir un traitement spécifique et même potentiellement du développement sur mesure avant l'import.

Dans un cas comme dans l'autre, une fois la structure reprise, les contenus pertinents pourront être migrés vers le nouveau site afin de préserver le travail passé et le référencement.

Quand est-ce qu'on commence ?

Même si vous comptez prolonger au maximum la vie de votre site actuel il faut impérativement commencer à préparer cette transition au plus tôt. Comme indiqué plus haut, nous pouvons réaliser pour vous un mini-audit dont l'objectif serait de vous donner une vision plus précise du potentiel évolutif de votre site, de vous recommander la prochaine version vers laquelle vous devriez vous diriger et une estimation du temps qui serait nécessaire à cette mise à jour. Si vous êtes intéressés par cet audit ou si vous voulez immédiatement passer à la réalisation, n'hésitez pas à nous contacter.

 

Couverture © Kreg Steppe

Catégorie
Par flocondetoile
Adhérent

La gestion des librairies avec Drupal 8

Une librairie

La gestion des ressources (feuilles de style CSS, javascript JS) sous Drupal 8 a fondamentalement changé comparé à Drupal 7. Le principe général qui a guidé la refonte de la gestion des ressources sous Drupal 8 est que seules les pages ayant besoin de ces ressources les chargeront. Le résultat immédiat est une performance accrue, mais son corollaire est une gestion plus fine du chargement de ces ressources. Heureusement, Drupal 8 a revu aussi en profondeur la gestion de ces ressources pour la simplifier et la rendre modulable à volonté en quelques lignes de configuration.

Thème 
Drupal 8
Développement
Theming

Par vincent59
Vincent Liefooghe

Intégration Drupal avec un annuaire LDAP

Dans une architecture de type intranet, il est intéressant d'avoir une base de comptes commune, partagée entre plusieurs applications.
Ceci permet dans un premier temps d'avoir un seul couple login / mot de passe, et supprime la nécessite de créer manuellement des comptes dans chaque application.
Les annuaires LDAP sont souvent utilisés pour stocker les comptes, l'intérêt étant qu'ils sont intégrables avec de nombreuses applications (LDAP est un protocole normalisé), et qu'il est assez facile de mettre en place une architecture haute-disponibilité avec des annuaires LDAP, pour un coût négligeable.

Nous allons, dans la suite de cet article, montrer comment intégrer Drupal avec un annuaire LDAP, et quels sont les fonctionnalités offertes via cette intégration.

Article en cours de rédaction, à compléter !

Installation du module

Pré requis

Pour utiliser les modules, il faut que PHP dispose des librairies / extensions LDAP. Sur une distribution type Debian, ceci se fait via :

sudo apt-get install php5-ldap

Téléchargement du module Drupal

Pour Drupal 7, nous allons utiliser le module LDAP (https://www.drupal.org/project/ldap).
La documentation (en anglais) du module se trouve à http://drupal.org/node/997082.

L'installation via drush est simple :

drush dl ldap
Project ldap (7.x-2.0-beta8) downloaded to /var/www/monsite/sites/all/modules/ldap.                                  [success]
Project ldap contains 12 modules: ldap_authentication, ldap_sso, ldap_query, ldap_user, ldap_servers, ldap_test, ldap_feeds, ldap_views, ldap_authorization_drupal_role, ldap_authorization_og, ldap_authorization, ldap_help.

On constate tout de suite que ce module est en fait une suite de différents modules, qui offrent des fonctionnalités variées. Nous les citons ici dans l'ordre des dépendances :

  • LDAP Servers (ldap_servers) : fournit la configuration du module.
  • LDAP User Module (ldap_user) : fournit les fonctions permettant de gérer la correspondance entre les utilisateurs Drupal et ceux du LDAP, y compris entre les attributs du LDAP et les champs Drupal
  • LDAP Authentication (ldap_authentication) : fournit les fonctions d'authentification sur l'annuaire LDAP
  • LDAP Authorization (ldap_authorization) : fournit la capacité de faire correspondre des groupes LDAP à des rôles Drupal

Ces modules sont suffisants pour gérer l'interaction avec le LDAP pour les utilisateurs.
D'autres modules peuvent compléter ces fonctions :

  • LDAP Query (ldap_query) : permet de consruire des requêtes LDAP, qui seront utilisées dans d'autres modules
  • LDAP Feeds (ldap_feeds) : permet, sur la base des query prédéfinies, d'automatiser la création de contenu sur la base de requêtes LDAP
  • LDAP Views (ldap_views) : intégration des requêtes LDAP avec Views

Dans un premier temps, nous allons uniquement activer les modules Servers, User, Authentication et Authorization

drush en ldap_servers ldap_user ldap_authentication ldap_authorization ldap_authorization_drupal_role
The following extensions will be enabled: ldap_servers, ldap_user, ldap_authentication, ldap_authorization, ldap_authorization_drupal_role
Do you really want to continue? (y/n): y
ldap_user was enabled successfully.                                                                                      [ok]
ldap_authentication was enabled successfully.                                                                            [ok]
ldap_authorization was enabled successfully.                                                                             [ok]
ldap_authorization_drupal_role was enabled successfully.                                                                 [ok]
ldap_servers was enabled successfully.                                                                                   [ok]

Paramétrage

Pour procéder au paramétrage, il faut connaître quelques informations sur l'annuaire LDAP :

  • Adresse IP / hostname
  • Port d'écoute (généralement 389 en clair, 636 en LDAPS)
  • Base DN (la base de recherche dans l'annuaire)
  • Compte de "service" sur l'annuaire (pour éviter les connexions anonymes)
  • Mot de passe de ce compte

Ajout d'un annuaire

L'ajout / paramétrage d'un serveur d'annuaire se fait via l'URL : /admin/config/people/ldap/servers/add. [image à ajouter]

Connection Settings / Paramètres de connexion

C'est ici que l'on renseigne les éléments de connexion à l'annuaire :

  • Machine name : un nom "machine" unique
  • Name : le nom du serveur (nom indicatif, par exemple "Mon serveur LDAP")
  • Activé : cocher la case pour activer cette instance de serveur
  • LDAP Server Type : on peut définir quel type de serveur LDAP (défaut, Active Directory, OpenLDAP, Novell, Apple)
  • LDAP Server : adresse IP ou hostname du serveur
  • LDAP Port : port du serveur (389 par défaut)
  • Use Start-TLS : à cocher uniquement si l'annuaire est paramétré pour utiliser TLS
  • Follow LDAP Referrals : à cocher si le client doit suivre les referrals. Inutile si on n'a qu'un seul serveur LDAP

[image à ajouter] Par exemple, on peut avoir :

  • Machine name : my_ldap_server
  • Name : LDAP Server
  • Activé : Oui (coché)
  • LDAP Server Type : Open LDAP
  • LDAP Server : 10.0.3.16 (adresse IP du serveur LDAP)
  • LDAP Port : 389
  • Autres cases décochées

Binding Methode / Méthode de connexion

Cette section permet de renseigner les paramètres de connexion à l'annuaire. L'utilisation d'un compte de service est une bonne pratique.
Elle permet d'éviter les connexions anonymes, et d'isoler quel compte fait quelles requêtes : utile en cas de besoin d'analyse des logs.
On définit donc ici le type de connexion et les paramètres:

  • Type : Service Account Bind (avec un compte)
  • DN for non anonymous search : DN du compte (par exemple : cn=drupal_service,dc=example,dc=com)
  • Password for non-anonymous search : Mot de passe du compte

LDAP user to Drupal User Relationship / Relations entre utilisateurs Drupal et LDAP

Cette section permet de définir comment faire la relation entre les utilisateurs Drupal et LDAP. C'est ici que l'on définit les DN de base pour la rechercher des utilisateurs dans l'annuaire.

On peut définir plusieurs bases de recherche, si les comptes sont répartis dans plusieurs containers / branches.

On va également définir quels sont les attributs utilisés pour identifier les comptes :

  • AuthName attribute : uid
  • AccountName attribute : uid
  • Email attribute : mail
  • Persistent and Unique User ID Attribute : dn

Dans notre exemple, les comptes sont référencés par uid=XXXX,(BASEDN). Par exemple : uid=TSTLDAP1,ou=people,dc=example,dc=com.

User

Cette section, assez riche, permet de définir les interactions entre l'annuaire LDAP et le Drupal pour les utilisateurs.
On peut par exemple définir les règles de provisionnement des attributs entre LDAP et Drupal (et également dans l'autre sens) en faisant correspondre les champs LDAP et les champs Drupal.

Attention : une fois les champs source et destination définis, ne pas oublier de cocher les cases :

  • On Drupal User Creation : synchronisation à la création de l'utilisateur
  • On Synch to Drupal User : synchronisation lors du cron ou de la connexion de l'utilisateur

Il faut s'assurer que le type des champs de l'annuaire est compatible avec les champs Drupal.
Nous avons eu par exemple un problème avec un champ Drupal qui est une référence une taxonomie (Drupal attend un ID) alors que dans l'annuaire LDAP on avait un attribut de type Texte (le code de la taxonomie).

 

Il est également possible de créer un compte dans l'annuaire LDAP à partir de Drupal. Pour cela, il faut respecter le paramétrage suivant : Show option on user create form to determine how account conflict is resolved. Activer l'annuaire dans le "BASIC PROVISIONING TO LDAP SETTINGS Cocher : Create or Synch to LDAP entry when a Drupal account is created or updated. Only applied to accounts with a status of approved. Provide option on admin/people/create to create corresponding LDAP Entry.

Authentication

Cette partie permet de gérer le mode d'authentification :

  • Mixed mode : on teste d'abord l'authentification Drupal, puis LDAP
  • Only LDAP : seule l'authentification LDAP est utilisée, SAUF pour le super Administrateur (ID=1)
  • Authentication LDAP Server : cocher le(s) serveur(s) LDAP utilisé(s) pour l'authentification

On utilise souvent le mode Mixed, qui permet de garder quelques utilisateurs directement dans le Drupal, pour gérer les exceptions.

Authorization

Attention : les autorisations ne semblent fonctionner qu'avec des groupes LDAP ou un attribut de type memberof. On peut cependant assigner un rôle par défaut en utilisant plusieurs paramètres :

Catégorie: 


Tag: 

Par vincent59
Vincent Liefooghe

Intégration Drupal avec un annuaire LDAP

Dans une architecture de type intranet, il est intéressant d'avoir une base de comptes commune, partagée entre plusieurs applications.
Ceci permet dans un premier temps d'avoir un seul couple login / mot de passe, et supprime la nécessite de créer manuellement des comptes dans chaque application.
Les annuaires LDAP sont souvent utilisés pour stocker les comptes, l'intérêt étant qu'ils sont intégrables avec de nombreuses applications (LDAP est un protocole normalisé), et qu'il est assez facile de mettre en place une architecture haute-disponibilité avec des annuaires LDAP, pour un coût négligeable.

Nous allons, dans la suite de cet article, montrer comment intégrer Drupal avec un annuaire LDAP, et quels sont les fonctionnalités offertes via cette intégration.

Article en cours de rédaction, à compléter !

Installation du module

Pré requis

Pour utiliser les modules, il faut que PHP dispose des librairies / extensions LDAP. Sur une distribution type Debian, ceci se fait via :

sudo apt-get install php5-ldap

Téléchargement du module Drupal

Pour Drupal 7, nous allons utiliser le module LDAP (https://www.drupal.org/project/ldap).
La documentation (en anglais) du module se trouve à http://drupal.org/node/997082.

L'installation via drush est simple :

drush dl ldap
Project ldap (7.x-2.0-beta8) downloaded to /var/www/monsite/sites/all/modules/ldap.                                  [success]
Project ldap contains 12 modules: ldap_authentication, ldap_sso, ldap_query, ldap_user, ldap_servers, ldap_test, ldap_feeds, ldap_views, ldap_authorization_drupal_role, ldap_authorization_og, ldap_authorization, ldap_help.

On constate tout de suite que ce module est en fait une suite de différents modules, qui offrent des fonctionnalités variées. Nous les citons ici dans l'ordre des dépendances :

  • LDAP Servers (ldap_servers) : fournit la configuration du module.
  • LDAP User Module (ldap_user) : fournit les fonctions permettant de gérer la correspondance entre les utilisateurs Drupal et ceux du LDAP, y compris entre les attributs du LDAP et les champs Drupal
  • LDAP Authentication (ldap_authentication) : fournit les fonctions d'authentification sur l'annuaire LDAP
  • LDAP Authorization (ldap_authorization) : fournit la capacité de faire correspondre des groupes LDAP à des rôles Drupal

Ces modules sont suffisants pour gérer l'interaction avec le LDAP pour les utilisateurs.
D'autres modules peuvent compléter ces fonctions :

  • LDAP Query (ldap_query) : permet de consruire des requêtes LDAP, qui seront utilisées dans d'autres modules
  • LDAP Feeds (ldap_feeds) : permet, sur la base des query prédéfinies, d'automatiser la création de contenu sur la base de requêtes LDAP
  • LDAP Views (ldap_views) : intégration des requêtes LDAP avec Views

Dans un premier temps, nous allons uniquement activer les modules Servers, User, Authentication et Authorization

drush en ldap_servers ldap_user ldap_authentication ldap_authorization ldap_authorization_drupal_role
The following extensions will be enabled: ldap_servers, ldap_user, ldap_authentication, ldap_authorization, ldap_authorization_drupal_role
Do you really want to continue? (y/n): y
ldap_user was enabled successfully.                                                                                      [ok]
ldap_authentication was enabled successfully.                                                                            [ok]
ldap_authorization was enabled successfully.                                                                             [ok]
ldap_authorization_drupal_role was enabled successfully.                                                                 [ok]
ldap_servers was enabled successfully.                                                                                   [ok]

Paramétrage

Pour procéder au paramétrage, il faut connaître quelques informations sur l'annuaire LDAP :

  • Adresse IP / hostname
  • Port d'écoute (généralement 389 en clair, 636 en LDAPS)
  • Base DN (la base de recherche dans l'annuaire)
  • Compte de "service" sur l'annuaire (pour éviter les connexions anonymes)
  • Mot de passe de ce compte

Ajout d'un annuaire

L'ajout / paramétrage d'un serveur d'annuaire se fait via l'URL : /admin/config/people/ldap/servers/add. [image à ajouter]

Connection Settings / Paramètres de connexion

C'est ici que l'on renseigne les éléments de connexion à l'annuaire :

  • Machine name : un nom "machine" unique
  • Name : le nom du serveur (nom indicatif, par exemple "Mon serveur LDAP")
  • Activé : cocher la case pour activer cette instance de serveur
  • LDAP Server Type : on peut définir quel type de serveur LDAP (défaut, Active Directory, OpenLDAP, Novell, Apple)
  • LDAP Server : adresse IP ou hostname du serveur
  • LDAP Port : port du serveur (389 par défaut)
  • Use Start-TLS : à cocher uniquement si l'annuaire est paramétré pour utiliser TLS
  • Follow LDAP Referrals : à cocher si le client doit suivre les referrals. Inutile si on n'a qu'un seul serveur LDAP

[image à ajouter] Par exemple, on peut avoir :

  • Machine name : my_ldap_server
  • Name : LDAP Server
  • Activé : Oui (coché)
  • LDAP Server Type : Open LDAP
  • LDAP Server : 10.0.3.16 (adresse IP du serveur LDAP)
  • LDAP Port : 389
  • Autres cases décochées

Binding Methode / Méthode de connexion

Cette section permet de renseigner les paramètres de connexion à l'annuaire. L'utilisation d'un compte de service est une bonne pratique.
Elle permet d'éviter les connexions anonymes, et d'isoler quel compte fait quelles requêtes : utile en cas de besoin d'analyse des logs.
On définit donc ici le type de connexion et les paramètres:

  • Type : Service Account Bind (avec un compte)
  • DN for non anonymous search : DN du compte (par exemple : cn=drupal_service,dc=example,dc=com)
  • Password for non-anonymous search : Mot de passe du compte

LDAP user to Drupal User Relationship / Relations entre utilisateurs Drupal et LDAP

Cette section permet de définir comment faire la relation entre les utilisateurs Drupal et LDAP. C'est ici que l'on définit les DN de base pour la rechercher des utilisateurs dans l'annuaire.

On peut définir plusieurs bases de recherche, si les comptes sont répartis dans plusieurs containers / branches.

On va également définir quels sont les attributs utilisés pour identifier les comptes :

  • AuthName attribute : uid
  • AccountName attribute : uid
  • Email attribute : mail
  • Persistent and Unique User ID Attribute : dn

Dans notre exemple, les comptes sont référencés par uid=XXXX,(BASEDN). Par exemple : uid=TSTLDAP1,ou=people,dc=example,dc=com.

User

Cette section, assez riche, permet de définir les interactions entre l'annuaire LDAP et le Drupal pour les utilisateurs.
On peut par exemple définir les règles de provisionnement des attributs entre LDAP et Drupal (et également dans l'autre sens) en faisant correspondre les champs LDAP et les champs Drupal.

Attention : une fois les champs source et destination définis, ne pas oublier de cocher les cases :

  • On Drupal User Creation : synchronisation à la création de l'utilisateur
  • On Synch to Drupal User : synchronisation lors du cron ou de la connexion de l'utilisateur

Il faut s'assurer que le type des champs de l'annuaire est compatible avec les champs Drupal.
Nous avons eu par exemple un problème avec un champ Drupal qui est une référence une taxonomie (Drupal attend un ID) alors que dans l'annuaire LDAP on avait un attribut de type Texte (le code de la taxonomie).

 

Il est également possible de créer un compte dans l'annuaire LDAP à partir de Drupal. Pour cela, il faut respecter le paramétrage suivant : Show option on user create form to determine how account conflict is resolved. Activer l'annuaire dans le "BASIC PROVISIONING TO LDAP SETTINGS Cocher : Create or Synch to LDAP entry when a Drupal account is created or updated. Only applied to accounts with a status of approved. Provide option on admin/people/create to create corresponding LDAP Entry.

Authentication

Cette partie permet de gérer le mode d'authentification :

  • Mixed mode : on teste d'abord l'authentification Drupal, puis LDAP
  • Only LDAP : seule l'authentification LDAP est utilisée, SAUF pour le super Administrateur (ID=1)
  • Authentication LDAP Server : cocher le(s) serveur(s) LDAP utilisé(s) pour l'authentification

On utilise souvent le mode Mixed, qui permet de garder quelques utilisateurs directement dans le Drupal, pour gérer les exceptions.

Authorization

Attention : les autorisations ne semblent fonctionner qu'avec des groupes LDAP ou un attribut de type memberof. On peut cependant assigner un rôle par défaut en utilisant plusieurs paramètres :

Catégorie: 


Tag: 

Par vincent59
Vincent Liefooghe

Mise en place de fonctionnalités avancées

Drupal peut être considéré comme autre chose qu'un "simple" CMS, grâce à ses API et surtout ses nombreux modules contribués.

Il peut ainsi facilement être intégré au coeur d'un SI, par exemple pour l'authentification des utilisateurs (sur un annuaire LDAP ou Active Directory), en mode SSO avec CAS ou servir de "back-end" de services REST pour des applications mobiles.

On peut également mettre en place assez facilement des fonctions de géo-mapping.

Dans ce chapitre, nous allons décrire comme mettre en place ces différentes fonctionnalités avancées.

Catégorie: 


Tag: 

Par vincent59
Vincent Liefooghe

Mise en place de fonctionnalités avancées

Drupal peut être considéré comme autre chose qu'un "simple" CMS, grâce à ses API et surtout ses nombreux modules contribués.

Il peut ainsi facilement être intégré au coeur d'un SI, par exemple pour l'authentification des utilisateurs (sur un annuaire LDAP ou Active Directory), en mode SSO avec CAS ou servir de "back-end" de services REST pour des applications mobiles.

On peut également mettre en place assez facilement des fonctions de géo-mapping.

Dans ce chapitre, nous allons décrire comme mettre en place ces différentes fonctionnalités avancées.

Catégorie: 

Pages