Drupal 8 à votre service !
Je travaille depuis quelques années sur un module de pronostics (à un rythme loin d'être soutenu comme tout bon side-project). Il a connu un début de version en Drupal 7, puis en Ruby on Rails, puis sur Symfony, puis enfin sur Drupal 8, il m'a permis de tester Drupal 8 à l'aube des premières versions alpha.
Entièrement open-source, le module est hébergé sur Github : https://github.com/mespronos/mespronos.
Depuis ce week-end, j'ai mis en production le module sur le site https://mespronos.net/ afin de pouvoir le tester en conditions réelles et récupérer suffisamment de données afin de continuer à travailler sur les templates et fonctionnalités à venir (classements...). Pour l'instant les pronostics sont possible sur la ligue 1 Française et le tournois des VI nations.
N'hésitez-pas à tester et me donner vos retours, tout en gardant à l'esprit que c'est une version alpha, et que le thème n'est pour l'instant pas du tout travailler (c'est celui de base de Drupal 8).
Pour suivre l'avancement, vous pouvez-vous rendre sur la page facebook dédiée : https://www.facebook.com/mespronos/.
Il y a quelques semaines, nous présentions l'appel à contribution, lançant un concours de logo pour l'association. L'idée est de mettre une coup de neuf sur l'identité visuelle de l'association.
Voici les propositions anonymes, sans annotations.
Les commentaires sont ouverts, et le bureau fera une sélection prochainement.
Il reste encore une semaine pour proposer vos contributions, à vos crayons.
1. | 1. |
2. | 2. |
3. | 3. |
4. | 4. |
5. | 6. |
7. | 8. |
9. | 10. |
11. | 12. |
13. | 13. bis |
14. |
Il y a quelques semaines, nous présentions l'appel à contribution, lançant un concours de logo pour l'association. L'idée est de mettre une coup de neuf sur l'identité visuelle de l'association.
Voici les propositions anonymes, sans annotations.
Les commentaires sont ouverts, et le bureau fera une sélection prochainement.
Il reste encore une semaine pour proposer vos contributions, à vos crayons.
1. | 1. |
2. | 2. |
3. | 3. |
4. | 4. |
5. | 6. |
7. | 8. |
9. | 10. |
11. | 12. |
13. | 13. bis |
14. |
Il y a quelques semaines, nous présentions l'appel à contribution, lançant un concours de logo pour l'association. L'idée est de mettre une coup de neuf sur l'identité visuelle de l'association.
Voici les propositions anonymes, sans annotations.
Les commentaires sont ouverts, et le bureau fera une sélection prochainement.
Il reste encore une semaine pour proposer vos contributions, à vos crayons.
1. | 1. |
2. | 2. |
3. | 3. |
4. | 4. |
5. | 6. |
7. | 8. |
9. | 10. |
11. | 12. |
13. | 13. bis |
14. |
De même que la création d’une page, l’API de Drupal 8 permet aussi de créer des blocs au sein d’un module.
De même que la création d’une page, l’API de Drupal 8 permet aussi de créer des blocs au sein d’un module.
Comme sur Symfony, Drupal 8 dispose maintenant de son outil Drupal Console. En complément de Drush, Drupal Console permet d’automatiser certaines tâches comme la génération de modules, de blocs, d’entités …
Comme sur Symfony, Drupal 8 dispose maintenant de son outil Drupal Console. En complément de Drush, Drupal Console permet d’automatiser certaines tâches comme la génération de modules, de blocs, d’entités …
Comme nous le verrons dans cet article, il peut être très rapide d'ajouter des fonctions de cartographie sur un site Drupal, avec quelques modules simples.
Nous allons ici travailler avec une poignée de modules : geolocation, ctools, views, ip_geoloc et libraries
Quelques étapes seulement sont nécessaires pour y arriver :
Avec drush le téléchargement et l'installation se font en deux lignes de commande :
drush dl geolocation drush en geolocation geolocation_googlemaps geolocation_html5
Ceci active le module principal, ainsi que le "widget" Google Maps et la possibilité de géolocaliser via HTML5.
Une fois le module activé, on peut ajouter un champ de type "Geolocation".
On choisit alors le type de "widget" pour la saisie : Google Map (une carte), Latitude / Longitude (2 cases pour la saisie) ou la géolocalisation HTML5.
Voyons le comportement de chacun en saisie...
Dans ce mode, il faut saisir directement la latitude et longitude. Cela peut être intéressant si on dispose déjà de ces informations.
Dans ce mode, lorsqu'on coche la case, le navigateur nous propose d'utiliser nos coordonnées.
Ceci n'est évidemment intéressant que dans certains cas, lorsqu'on veut par exemple établir une localisation d'utilisateurs, ou éventuellement avec un site affiché sur mobile.
Cette option est beaucoup plus visuelle. Elle s'appuie sur les API de Google Map pour réaliser un premier géocodage, à partir des informations saisies (via le bouton "Get location")
Dès lors, la carte s'affiche avec le marqueur, que l'on peut bouger (ceci se paramètre), afin d'affiner la position directement sur la carte.
De la même manière que pour la saisie, le module propose différents types de formateurs : simple texte, latitude ou longitude en text, carte google map statique, carte google map dynamique, html5 map.
Voyons donc les différents modes de rendu / affichage.
Pas très visuel, on affiche uniquement les données de longitude et latitude.
Par exemple, pour le mont Saint Michel on va trouver quelque chose comme
Geolocation is 48.63559154226376, -1.5108776092529297
Ceci affiche sous forme de texte la latitude OU la longitude selon le choix défini, de la même manière que précédemment.
Ce format d'afichage nous permet déjà de rentrer dans le monde de la cartographie, et d'afficher les coordonnées sur une carte. On dispose de quelques options : la taille de la carte, le format d'image (PNG 8 bits par défaut), le type (route, satellite, hybride) et le niveau de zoom.
Tout ceci est réglable. Par défaut on obtient une carte statique (pas de zoom ni de déplacement).
Nous allons ici un cran plus loin, avec une carte dynamique, sur laquelle on va pouvoir zoomer et scroller. De la même manière que précédemment, on pourra fixer la taille de la carte, le niveau de zoom par défaut et le type de carte (route, satellite).
C'est souvent ce type d'affichage que l'on utilisera avec ce module.
On y retrouve les possibiltiés offertes par Google Map : zoom, déplacement de la carte, choix de l'affichage en mode route ou satellite.
Cet affichage montre une planisphère, avec la localisation de manière très vague. Personnellement je ne vois pas trop l'intérêt ?
Pour le moment, nous n'avons pu afficher qu'un seul point sur la carte, celui qui correspond à notre contenu.
Si on veut aller plus loin, il faut passer par le module Views. Il faut cependant ajouter un module qui permettra de faire le lien entre Geolocation et Views : IP Geolocation Views and Maps. Sans cela, il ne sera pas possible d'afficher une seule carte avec tous les contenus.
Commençons par télécharge et activer ces modules (libraries est un pré-requis pour ip_geoloc):
drush dl ctools views ip_geoloc libraries drush en ctools views views_ui ip_geoloc libraries
Il faut alors créer une vue, qui va afficher les champs de nos contenus. On peut choisir un format "Map (Google API)" :
ainsi que le champ qui contient les données de géolocalisation, le type de marqueur, etc. :
On sauvegarde et on peut alors voir le résultat :
D'autres paramètres sont disponibles dans le module IP Geolocation : choix du marqueur, niveau de zoom et centre de la carte par défaut, etc. C'est un module très riche, et qui peut également s'interfacer avec d'autres modules tels que Leaflet, si l'on ne veut pas dépendre de Google Maps.
On peut aussi afficher des marqueurs différents, sur la base d'une taxonomie liée au contenu, par exemple
Nous avons vu qu'il est possible très rapidement d'ajouter des fonctions de cartographie dans Drupal. Nous verrons dans d'autres articles qu'il existe plusieurs modules permettant d'arriver au même résultat, avec plus ou moins de richesse et de souplesse.
L'avantage du module Geolocation est de proposer une approche tout en un : stockage des coordonnées, widget de saisie et modes d'affichage. Par contre, il n'est pas possible d'avoir une version textuelle de l'adresse en plus de la carte. C'est l'une des limitations de ce module.
Comme nous le verrons dans cet article, il peut être très rapide d'ajouter des fonctions de cartographie sur un site Drupal, avec quelques modules simples.
Nous allons ici travailler avec une poignée de modules : geolocation, ctools, views, ip_geoloc et libraries
Quelques étapes seulement sont nécessaires pour y arriver :
Avec drush le téléchargement et l'installation se font en deux lignes de commande :
drush dl geolocation drush en geolocation geolocation_googlemaps geolocation_html5
Ceci active le module principal, ainsi que le "widget" Google Maps et la possibilité de géolocaliser via HTML5.
Une fois le module activé, on peut ajouter un champ de type "Geolocation".
On choisit alors le type de "widget" pour la saisie : Google Map (une carte), Latitude / Longitude (2 cases pour la saisie) ou la géolocalisation HTML5.
Voyons le comportement de chacun en saisie...
Dans ce mode, il faut saisir directement la latitude et longitude. Cela peut être intéressant si on dispose déjà de ces informations.
Dans ce mode, lorsqu'on coche la case, le navigateur nous propose d'utiliser nos coordonnées.
Ceci n'est évidemment intéressant que dans certains cas, lorsqu'on veut par exemple établir une localisation d'utilisateurs, ou éventuellement avec un site affiché sur mobile.
Cette option est beaucoup plus visuelle. Elle s'appuie sur les API de Google Map pour réaliser un premier géocodage, à partir des informations saisies (via le bouton "Get location")
Dès lors, la carte s'affiche avec le marqueur, que l'on peut bouger (ceci se paramètre), afin d'affiner la position directement sur la carte.
De la même manière que pour la saisie, le module propose différents types de formateurs : simple texte, latitude ou longitude en text, carte google map statique, carte google map dynamique, html5 map.
Voyons donc les différents modes de rendu / affichage.
Pas très visuel, on affiche uniquement les données de longitude et latitude.
Par exemple, pour le mont Saint Michel on va trouver quelque chose comme
Geolocation is 48.63559154226376, -1.5108776092529297
Ceci affiche sous forme de texte la latitude OU la longitude selon le choix défini, de la même manière que précédemment.
Ce format d'afichage nous permet déjà de rentrer dans le monde de la cartographie, et d'afficher les coordonnées sur une carte. On dispose de quelques options : la taille de la carte, le format d'image (PNG 8 bits par défaut), le type (route, satellite, hybride) et le niveau de zoom.
Tout ceci est réglable. Par défaut on obtient une carte statique (pas de zoom ni de déplacement).
Nous allons ici un cran plus loin, avec une carte dynamique, sur laquelle on va pouvoir zoomer et scroller. De la même manière que précédemment, on pourra fixer la taille de la carte, le niveau de zoom par défaut et le type de carte (route, satellite).
C'est souvent ce type d'affichage que l'on utilisera avec ce module.
On y retrouve les possibiltiés offertes par Google Map : zoom, déplacement de la carte, choix de l'affichage en mode route ou satellite.
Cet affichage montre une planisphère, avec la localisation de manière très vague. Personnellement je ne vois pas trop l'intérêt ?
Pour le moment, nous n'avons pu afficher qu'un seul point sur la carte, celui qui correspond à notre contenu.
Si on veut aller plus loin, il faut passer par le module Views. Il faut cependant ajouter un module qui permettra de faire le lien entre Geolocation et Views : IP Geolocation Views and Maps. Sans cela, il ne sera pas possible d'afficher une seule carte avec tous les contenus.
Commençons par télécharge et activer ces modules (libraries est un pré-requis pour ip_geoloc):
drush dl ctools views ip_geoloc libraries drush en ctools views views_ui ip_geoloc libraries
Il faut alors créer une vue, qui va afficher les champs de nos contenus. On peut choisir un format "Map (Google API)" :
ainsi que le champ qui contient les données de géolocalisation, le type de marqueur, etc. :
On sauvegarde et on peut alors voir le résultat :
D'autres paramètres sont disponibles dans le module IP Geolocation : choix du marqueur, niveau de zoom et centre de la carte par défaut, etc. C'est un module très riche, et qui peut également s'interfacer avec d'autres modules tels que Leaflet, si l'on ne veut pas dépendre de Google Maps.
On peut aussi afficher des marqueurs différents, sur la base d'une taxonomie liée au contenu, par exemple
Nous avons vu qu'il est possible très rapidement d'ajouter des fonctions de cartographie dans Drupal. Nous verrons dans d'autres articles qu'il existe plusieurs modules permettant d'arriver au même résultat, avec plus ou moins de richesse et de souplesse.
L'avantage du module Geolocation est de proposer une approche tout en un : stockage des coordonnées, widget de saisie et modes d'affichage. Par contre, il n'est pas possible d'avoir une version textuelle de l'adresse en plus de la carte. C'est l'une des limitations de ce module.
Sortie depuis le 19 Novembre dernier, Drupal 8 va très certainement révolutionner le marché du CMS Open source. Mais cela n’est pas sans conséquence, la fin du support de Drupal 6 ( voir Drupal 6 end-of-life announcement) a aussi été annoncé à la date du 24 février 2016.
La problématique de migrer de Drupal 6 vers une version supérieure de Drupal doit donc se poser dès maintenant.
Sortie depuis le 19 Novembre dernier, Drupal 8 va très certainement révolutionner le marché du CMS Open source. Mais cela n’est pas sans conséquence, la fin du support de Drupal 6 ( voir Drupal 6 end-of-life announcement) a aussi été annoncé à la date du 24 février 2016.
La problématique de migrer de Drupal 6 vers une version supérieure de Drupal doit donc se poser dès maintenant.
Drupal 8 est maintenant disponible en version stable depuis le 19 novembre 2015. 2016 s’annonce être une année décisive pour toute la communauté Drupal avec cette nouvelle version. Afin de mieux comprendre ce changement avec l'arrivée de cette nouvelle version, vous trouverez dans cet article un résumé des 8 bonnes raisons pour lesquelles Drupal 8 s’annonce très prometteur pour la réalisation de vos projets digitaux, en offrant une expérience utilisateur plus aboutie.
Drupal 8 est là est avec lui de nombreux outils commencent à arriver, parmi eux : Drupal Console, qui est vise à intégrer l'outil console de Symfony avec Drupal.
La console ne remplace pas (encore?) drush, mais propose un paquet de fonction permettant par exemple de générer des modules, des blocs, des entités, des types de contenus...
Le développement autour de cet outil est très actif et vous pouvez suivre ou participer à son développement sur la page Github du projet : https://github.com/hechoendrupal/DrupalConsole.
Pour l'instant la Drupal Console ne fonctionne pas sous les système windows. Sous linux et Mac Os voila comment l'installer (à lancer dans un terminal)
# Téléchargement de l'outil curl https://drupalconsole.com/installer -L -o drupal.phar # On le déplace dans un dossier de binaires afin de pouvoir # le lancer depuis n'importe où # (à noter : on exécute la commande en tant qu'administrateur) sudo mv drupal.phar /usr/local/bin/drupal # Attention, c'est la ligne suivante qui défini le nom de la # commande que l'on utilisera : "drupal" par défaut # Si vous souhaitez un autre nom, comme par exemple # "drupal-console", lancez à la place : # sudo mv drupal.phar /usr/local/bin/drupal-console # On le rend exécutable : # (à noter : on exécute aussi la commande en tant qu'administrateur) sudo chmod +x /usr/local/bin/drupal
Pour vérifier que l'outil est bien disponible, lancez la commande "drupal" depuis un terminal, et vous devriez avoir quelque chose comme ça :
Via la commande
drupal init
Drupal console va stocker dans votre répertoire personnel des informations de configuration.
Cette partie n'est absolument pas obligatoire, mais elle vous permettra de modifier un peu son comportement, de passer l'outil en Français par exemple, mais aussi d'avoir de l'auto-complétion.
Dans mon cas la configuration se trouvera dans le fichier /home/kgaut/.console/config.yml dont voici le contenu :
application: environment: 'prod' language: en editor: vim temp: /tmp remote: user: root port: 22 console: /usr/local/bin/drupal options: --ansi arguments: keys: public: ~/.ssh/id_rsa.pub private: ~/.ssh/id_rsa passphrase: ~/.ssh/passphrase.txt disable: modules: # - module_name # - module_name default: commands: generate: controller: options: # module: module_name
Si vous souhaitez passer l'outil en Français, changez la ligne 3 de
language: en
à
language: fr
Si vous souhaitez bénéficier de l'auto-complétion suivez les retours de la commande et en fonction de votre interpréteur de terminal :
Bash or Zsh: Ajouter la ligne suivante à votre fichier .bashrc ou .zshrc :
source "$HOME/.console/console.rc" 2>/dev/null
Fish: Créez un lien symbolique
ln -s ~/.console/drupal.fish ~/.config/fish/completions/drupal.fish
La configuration est terminée, bravo vous allez pouvoir passer aux choses sérieuses !
L'objectif de Drupal Console est donc d’interagir avec un site / une application sous Drupal 8. Dans un terminal, déplacez-vous dans le dossier contenant votre instance du CMS.
Si vous n'avez pas encore installé de site Drupal, vous pouvez utiliser composer comme indiqué dans ce post.
À noter vous devrez être dans le dossier contenant les sources de drupal (exemple le dossier "Web" si vous avez installé Drupal via composer)
Maintenant si vous relancer la commande "drupal" vous devriez avoir un résultat un peu différent :
Pour voir la liste des commandes disponibles avec une explication lancez :
drupal list
Vous vous rendrez rapidement compte que la traduction en Français est loin d'être complète, n'hésitez-pas à participer sur la page du projet.
Le mieux étant d’expérimenter, essayez de générer un module :
la commande est drupal generate:module, mais vous pouvez aussi jouer avec l'auto-complétion :
Lancez la commande et laissez-vous guider :
drupal generate:module // Bienvenue sur le générateur de modules Drupal Entrez le nom du nouveau module: > Mon Module Entrez le nom de la machine du module [mon_module]: > Entrez le chemin du module [/modules/custom]: > Entrez la description du module [My Awesome Module]: > Mon super module de test Entrez le nom du paquet [Other]: > Kgaut Entrez la version core Drupal [8.x]: > Définir le module comme une fonctionnalité <em>feature</em> (yes/no) [no]: > no Voulez-vous ajouter un fichier composer.json file à votre module (yes/no) [yes]: > yes Voulez-vous ajouter des dépendances à votre module (yes/no) [no]: > no Confirmez-vous la génération (yes/no) [yes]: > yes Fichiers générés ou mis à jour Chemin du site: /media/vhosts/drupal8-test.dev/web 1 - modules/custom/mon_module/mon_module.info.yml 2 - modules/custom/mon_module/mon_module.module 3 - modules/custom/mon_module/composer.json
Et maintenant vous verrez effectivement le module généré dans votre dossier modules/custom/ :
Les modules ne sont pas les seules choses que vous puissiez générer à l'aide de Drupal Console : Types de contenu, Thèmes, Type d'entités...
Vous pouvez aussi générer du contenu factice pour populer vos types de contenus ou vocabulaires.
Le développement de Drupal Console est très actif, pour mettre à jour l'outil lancez la commande :
sudo drupal self-update