Planète

Par Artusamak
Julien Dubois

Nouvelle politique de gestion des versions

Nouvelle politique de gestion des versions

Artusamak
mar 27/09/2016 - 14:00

La semaine dernière est sortie la version 8.2.0-rc2 de Drupal, c'est l'occasion de revenir sur la nouvelle politique des cycles de release et ce que cela implique.

Bien avant la sortie de la version 8.0, la communauté s'est penchée sur les solutions qu'elle pouvait apporter au problème du manque de prédictibilité des dates de sortie. La politique depuis des années consiste à dire qu'une version majeure est publiée (une version majeure étant la 7.0 ou 8.0) lorsqu'elle est prête. L'adage consacré est le suivant : «Quand est ce que la version Drupal 8.0 sera prête ? Elle sera prête quand elle sera prête.». La définition de «prêt» étant liée au nombre de bugs critiques identifiés dans la listes des issues de Drupal. Tant que son total n'est pas égal à 0, une version majeure ne peut pas être envisagée. Plutôt aléatoire tout ça… autant dire que cela n'avance personne, et surtout pas le monde de l'entreprise.

Oui mais voilà, depuis la fin du cycle de Drupal 6 et l'avènement de Drupal 7, l'utilisation de Drupal a explosé, peu de sites qui nécessitaient un CMS et avec une taille de projet de plusieurs mois se lançaient avec autre chose que Drupal. Bonne nouvelle, me direz-vous, et vous aurez raison. Sauf que, comme le disait notre bon ami Spiderman : «avec de grands pouvoirs viennent de grandes responsabilités». Les années passant, l'usage de Drupal a continué de croître et la suite logique a été donc le lancement des développements de la branche 8.x.
Un cycle de développement d'une version majeure prenant plusieurs années, les choses ont démarré comme à l'époque de Drupal 7 : plusieurs mois ont passé puis l'impatience a monté en flèche dès les premières annonces de l'utilisation de composants de Symfony au sein de Drupal 8 braquant ainsi beaucoup de projecteurs notre CMS fétiche. Les mois passèrent et avec eux les dizaines de milliers de lignes de code se sont accumulées. Le problème avec Symfony étant qu'une fois que vous mettez le doigt dans l'engrenage, il fait sens d'utiliser toujours plus de ses composants, repoussant d'autant la ligne d'arrivée du travail de réécriture. Conscients du problème soulevé et déjà rencontré lors de la mise au monde de Drupal 7 (satané Overlay qui a repoussé la publication de Drupal 7 de plusieurs mois), Dries et quelques personnes clés de la communauté ont pris le problème à bras le corps. Fin 2013, le principe d'introduire des versions sémantiques pour Drupal a été acté, la première version de 8.x ne serait donc pas Drupal 8.0 mais Drupal 8.0.0.

Qu'est-ce que ça change concrètement ?

Le modèle de Drupal jusqu'à présent excluait tout ajout dans le cœur du système entre deux versions majeures. De fait, il a fallu attendre 5 ans la sortie de Drupal 8 pour que des fonctionnalités essentielles au web d'aujourd'hui soient intégrées. Or, le web évolue plus vite que jamais et les besoins et usage des clients progressent rapidement. Les versions sémantiques offrent une nouvelle souplesse en introduisant un nouvel échelon dans l'évolution du logiciel.

Une version sémantique est un code découpé en trois parties numériques, séparées par un point, par exemple 8.1.10. On appelle la première partie, celle de gauche, la version majeure. La partie centrale est appelée version mineure et la partie de droit version de patch. Pour faire le parallèle avec l'ancien système, nous n'avions que les versions majeures et les versions de patch.

En ce qui concerne le contenu de ces versions, les choses sont plus claires :

  • les versions majeures sont garantes de la compatibilité. Ainsi, quelle que soit la version mineure ou de patch de l'application, tant que vous conservez la même version majeure, le code que vous avez pu écrire doit toujours être compatible ;
  • les versions mineures représentent les évolutions fonctionnelles du cœur. Il est permis d'ajouter de nouvelles fonctionnalités, qu'elles soient expérimentales ou stables (nous en détaillerons quelques unes dans un prochain article) ;
  • les versions de patch corrigent des bugs ou des failles de sécurité a fil de l'eau.

La seule entorse acceptée à ce nouveau système est le cas où un correctif de sécurité venait à rompre la compatibilité avec les précédentes versions. Dans ce cas et uniquement dans celui-ci, une telle modification serait acceptée dans le cadre d'une version de patch mais tenterait d'être limitée au maximum en redoublant d'efforts de communication et en mettant en place des outils, lorsque cela est possible, pour amoindrir l'impact sur les sites existants.

À quelle fréquence les versions vont-elles évoluer ?

L'autre avantage majeur de cette décision est qu'il permet de mettre en place un calendrier de publication des versions plus ouvert. La communauté a donc décidé qu'une nouvelle version mineure (8.1.0, 8.2.0, 8.3.0, etc.) sortirait tous les 6 mois. Les versions de patch (8.2.1, 8.2.2, 8.2,3 etc.) sont publiées quant à elles chaque premier et troisième mercredi du mois pourra être publiée respectivement pour les versions liées à des correctifs de sécurité ou de bugs.

Diagramme illustrant le cycle des releases de Drupal
Diagramme illustrant le cycle des releases de Drupal

Pour chaque version mineure, le cycle de release reste le même que pour une version majeure : la première version est une alpha, puis suivent les statuts beta, Release Canditate (rc) et la release officielle. Les développeurs peuvent donc maintenant savoir à l'avance quand réserver du temps dans leur calendrier pour préparer les montées de versions.

Diagramme illustrant le cycle des releases mineures de Drupal
Diagramme illustrant le cycle des releases mineures de Drupal

 

 

Crédits :

Par Artusamak
Julien Dubois

Nouvelle politique de gestion des versions

Nouvelle politique de gestion des versions

Artusamak
mar 27/09/2016 - 14:00

La semaine dernière est sortie la version 8.2.0-rc2 de Drupal, c'est l'occasion de revenir sur la nouvelle politique des cycles de release et ce que cela implique.

Bien avant la sortie de la version 8.0, la communauté s'est penchée sur les solutions qu'elle pouvait apporter au problème du manque de prédictibilité des dates de sortie. La politique depuis des années consiste à dire qu'une version majeure est publiée (une version majeure étant la 7.0 ou 8.0) lorsqu'elle est prête. L'adage consacré est le suivant : «Quand est ce que la version Drupal 8.0 sera prête ? Elle sera prête quand elle sera prête.». La définition de «prêt» étant liée au nombre de bugs critiques identifiés dans la listes des issues de Drupal. Tant que son total n'est pas égal à 0, une version majeure ne peut pas être envisagée. Plutôt aléatoire tout ça… autant dire que cela n'avance personne, et surtout pas le monde de l'entreprise.

Oui mais voilà, depuis la fin du cycle de Drupal 6 et l'avènement de Drupal 7, l'utilisation de Drupal a explosé, peu de sites qui nécessitaient un CMS et avec une taille de projet de plusieurs mois se lançaient avec autre chose que Drupal. Bonne nouvelle, me direz-vous, et vous aurez raison. Sauf que, comme le disait notre bon ami Spiderman : «avec de grands pouvoirs viennent de grandes responsabilités». Les années passant, l'usage de Drupal a continué de croître et la suite logique a été donc le lancement des développements de la branche 8.x.
Un cycle de développement d'une version majeure prenant plusieurs années, les choses ont démarré comme à l'époque de Drupal 7 : plusieurs mois ont passé puis l'impatience a monté en flèche dès les premières annonces de l'utilisation de composants de Symfony au sein de Drupal 8 braquant ainsi beaucoup de projecteurs notre CMS fétiche. Les mois passèrent et avec eux les dizaines de milliers de lignes de code se sont accumulées. Le problème avec Symfony étant qu'une fois que vous mettez le doigt dans l'engrenage, il fait sens d'utiliser toujours plus de ses composants, repoussant d'autant la ligne d'arrivée du travail de réécriture. Conscients du problème soulevé et déjà rencontré lors de la mise au monde de Drupal 7 (satané Overlay qui a repoussé la publication de Drupal 7 de plusieurs mois), Dries et quelques personnes clés de la communauté ont pris le problème à bras le corps. Fin 2013, le principe d'introduire des versions sémantiques pour Drupal a été acté, la première version de 8.x ne serait donc pas Drupal 8.0 mais Drupal 8.0.0.

Qu'est-ce que ça change concrètement ?

Le modèle de Drupal jusqu'à présent excluait tout ajout dans le cœur du système entre deux versions majeures. De fait, il a fallu attendre 5 ans la sortie de Drupal 8 pour que des fonctionnalités essentielles au web d'aujourd'hui soient intégrées. Or, le web évolue plus vite que jamais et les besoins et usage des clients progressent rapidement. Les versions sémantiques offrent une nouvelle souplesse en introduisant un nouvel échelon dans l'évolution du logiciel.

Une version sémantique est un code découpé en trois parties numériques, séparées par un point, par exemple 8.1.10. On appelle la première partie, celle de gauche, la version majeure. La partie centrale est appelée version mineure et la partie de droit version de patch. Pour faire le parallèle avec l'ancien système, nous n'avions que les versions majeures et les versions de patch.

En ce qui concerne le contenu de ces versions, les choses sont plus claires :

  • les versions majeures sont garantes de la compatibilité. Ainsi, quelle que soit la version mineure ou de patch de l'application, tant que vous conservez la même version majeure, le code que vous avez pu écrire doit toujours être compatible ;
  • les versions mineures représentent les évolutions fonctionnelles du cœur. Il est permis d'ajouter de nouvelles fonctionnalités, qu'elles soient expérimentales ou stables (nous en détaillerons quelques unes dans un prochain article) ;
  • les versions de patch corrigent des bugs ou des failles de sécurité a fil de l'eau.

La seule entorse acceptée à ce nouveau système est le cas où un correctif de sécurité venait à rompre la compatibilité avec les précédentes versions. Dans ce cas et uniquement dans celui-ci, une telle modification serait acceptée dans le cadre d'une version de patch mais tenterait d'être limitée au maximum en redoublant d'efforts de communication et en mettant en place des outils, lorsque cela est possible, pour amoindrir l'impact sur les sites existants.

À quelle fréquence les versions vont-elles évoluer ?

L'autre avantage majeur de cette décision est qu'il permet de mettre en place un calendrier de publication des versions plus ouvert. La communauté a donc décidé qu'une nouvelle version mineure (8.1.0, 8.2.0, 8.3.0, etc.) sortirait tous les 6 mois. Les versions de patch (8.2.1, 8.2.2, 8.2,3 etc.) sont publiées quant à elles chaque premier et troisième mercredi du mois pourra être publiée respectivement pour les versions liées à des correctifs de sécurité ou de bugs.

Diagramme illustrant le cycle des releases de Drupal
Diagramme illustrant le cycle des releases de Drupal

Pour chaque version mineure, le cycle de release reste le même que pour une version majeure : la première version est une alpha, puis suivent les statuts beta, Release Canditate (rc) et la release officielle. Les développeurs peuvent donc maintenant savoir à l'avance quand réserver du temps dans leur calendrier pour préparer les montées de versions.

Diagramme illustrant le cycle des releases mineures de Drupal
Diagramme illustrant le cycle des releases mineures de Drupal

 

 

Crédits :

Par flocondetoile
Adhérent

Banalités de base sur le SEO

Le référencement naturel, ou le SEO pour Search Engine Optimization, est un ensemble de techniques et de recommandations visant à améliorer la visibilité d'un site Internet sur les moteurs de Recherche, en le positionnant sur les premiers résultats de recherches effectuées par les Internautes. Le référencement naturel peut être un sujet très complexe, surtout si on vise un positionnement sur des requêtes très concurrentielles, mais peut aussi relever parfois du respect de quelques bonnes pratiques, et d'un changement de perspective nécessaire. Abordons ici quelques banalités de base sur ce vaste sujet.

Par flocondetoile
Adhérent

Banalités de base sur le SEO

Le référencement naturel, ou le SEO pour Search Engine Optimization, est un ensemble de techniques et de recommandations visant à améliorer la visibilité d'un site Internet sur les moteurs de Recherche, en le positionnant sur les premiers résultats de recherches effectuées par les Internautes. Le référencement naturel peut être un sujet très complexe, surtout si on vise un positionnement sur des requêtes très concurrentielles, mais peut aussi relever parfois du respect de quelques bonnes pratiques, et d'un changement de perspective nécessaire. Abordons ici quelques banalités de base sur ce vaste sujet.

Par flocondetoile
Adhérent

Drupal 8 n'est pas parfait

Dix mois après la sortie d'une première version stable de Drupal 8, quel bilan peut-on en tirer ? Drupal 8 est-il prêt pour propulser votre projet ? Est-il temps de migrer votre site sur Drupal 8 ? Même si bien souvent une réponse, argumentée, à ces interrogations nécessitera une analyse plus approfondie de votre projet ou de votre site existant, nous vous proposons ici d'apporter quelques éclairages spécifiques à ces questions légitimes

Par flocondetoile
Adhérent

Drupal 8 n'est pas parfait

Dix mois après la sortie d'une première version stable de Drupal 8, quel bilan peut-on en tirer ? Drupal 8 est-il prêt pour propulser votre projet ? Est-il temps de migrer votre site sur Drupal 8 ? Même si bien souvent une réponse, argumentée, à ces interrogations nécessitera une analyse plus approfondie de votre projet ou de votre site existant, nous vous proposons ici d'apporter quelques éclairages spécifiques à ces questions légitimes

Par flocondetoile
Adhérent

Présentation du module Permissions by field sur Drupal 8

Le puissant système de contrôle d'accès et de permissions de Drupal 8 peut s'avérer être un critère déterminant pour le choix de Drupal. Ce système est à la base de modules comme Organic Group ou Domain access, qui permettent respectivement d'implémenter des groupes au sein d'un même site et d'implémenter une architecture multi-site virtuelle.

Le module Permissions by field nous permet de contrôler les accès aux contenus d'un site Drupal selon plusieurs méthodes génériques, en s'appuyant sur la puissance d'Entity Reference et la Field API de Drupal 8, jusqu'à pouvoir déléguer une gestion complexe de droits d'accès vers les éditeurs de contenu selon leurs besoins.

Découvrons ce module et les différents cas d'usage possibles.

Par flocondetoile
Adhérent

Présentation du module Permissions by field sur Drupal 8

Le puissant système de contrôle d'accès et de permissions de Drupal 8 peut s'avérer être un critère déterminant pour le choix de Drupal. Le module Permissions by field nous permet de contrôler les accès aux contenus d'un site Drupal selon plusieurs méthodes génériques, en s'appuyant sur la puissance d'Entity Reference et la Field API de Drupal 8, jusqu'à pouvoir déléguer une gestion complexe de droits d'accès vers les éditeurs de contenu selon leurs besoins. Découvrons ce module et les différents cas d'usage possibles.

Par admin

Communauté - Aidez-nous à accueillir Eduardo

Vous le savez sans doute, la DrupalCon Dublin aura lieu lors de la dernière semaine de septembre. A la suite de cette semaine de conférences, Eduardo Garcia (enzo sur drupal.org), souhaiterait prolonger son séjour européen autour de Drupal Console.

Le projet d'Edouardo

Edouardo s'est lancé dans un projet, de tours du monde de Drupal en 120 jours. Les détails sur ce projet fou sont sur son blog.

Edouardo présentera une Keynote Communautaire à Dublin, où il parlera de son voyage à travers le monde et la communauté.

Son idée est de continuer son séjour en Europe, post DrupalCon, pour parle de Drupal Console, à Paris lors d'un meetup.

En venant ainsi à Paris, il aurait alors visité 16 pays en 168 jours.

Un meetup Drupal Console à Paris

Si le projet d'Edouardo vous intéresse et/ou si vous souhaitez assister au Meetup sur Drupal Console que organiserions avec son mainteneur, vous pouvez sans doute nous aider

Edouardo effectue son voyage sur ses fonds propres, alors si comme pour un Meetup parisien, nous sommes à la recherche d'un sponsor et d'une salle, cette fois ci, nous en appelons aussi à la solidarité de la communauté pour lui trouver un logement à moindre coût pendant sa présence sur Paris

Autres infos pratiques

  • Le meetup se déroulerait sur la semaine qui suit la DrupalCon, du 3 au 7 Octobre.
  • Edouardo, le mainteneur de Drupal Console parle anglais et espagnol.
  • Le meetup sera libre et annoncé comme pour tous les autres meetups, sur le groupe Meetups Drupal France et francophonie.
  • Edouardo sera aussi disponible pour parler de Drupal 8 en plus de Drupal Console :)
  • En fonction de son logement, il pourrait être là plusieurs jours

Comment nous aider ?

Si vous pouvez nous aider, en proposant un hébergement gracieux à Edouardo, ou en proposant un lieu pour ce meetup, merci d'envoyer un message à bureau[at]listes[point]drupalfr[point]org

N'oubliez pas de suivre les invitations de Meetups pour ne pas louper ce rendez-vous parisien unique !

Par admin

Communauté - Aidez-nous à accueillir Eduardo

Vous le savez sans doute, la DrupalCon Dublin aura lieu lors de la dernière semaine de septembre. A la suite de cette semaine de conférences, Eduardo Garcia (enzo sur drupal.org), souhaiterait prolonger son séjour européen autour de Drupal Console.

Le projet d'Edouardo

Edouardo s'est lancé dans un projet, de tours du monde de Drupal en 120 jours. Les détails sur ce projet fou sont sur son blog.

Edouardo présentera une Keynote Communautaire à Dublin, où il parlera de son voyage à travers le monde et la communauté.

Son idée est de continuer son séjour en Europe, post DrupalCon, pour parle de Drupal Console, à Paris lors d'un meetup.

En venant ainsi à Paris, il aurait alors visité 16 pays en 168 jours.

Un meetup Drupal Console à Paris

Si le projet d'Edouardo vous intéresse et/ou si vous souhaitez assister au Meetup sur Drupal Console que organiserions avec son mainteneur, vous pouvez sans doute nous aider

Edouardo effectue son voyage sur ses fonds propres, alors si comme pour un Meetup parisien, nous sommes à la recherche d'un sponsor et d'une salle, cette fois ci, nous en appelons aussi à la solidarité de la communauté pour lui trouver un logement à moindre coût pendant sa présence sur Paris

Autres infos pratiques

  • Le meetup se déroulerait sur la semaine qui suit la DrupalCon, du 3 au 7 Octobre.
  • Edouardo, le mainteneur de Drupal Console parle anglais et espagnol.
  • Le meetup sera libre et annoncé comme pour tous les autres meetups, sur le groupe Meetups Drupal France et francophonie.
  • Edouardo sera aussi disponible pour parler de Drupal 8 en plus de Drupal Console :)
  • En fonction de son logement, il pourrait être là plusieurs jours

Comment nous aider ?

Si vous pouvez nous aider, en proposant un hébergement gracieux à Edouardo, ou en proposant un lieu pour ce meetup, merci d'envoyer un message à bureau[at]listes[point]drupalfr[point]org

N'oubliez pas de suivre les invitations de Meetups pour ne pas louper ce rendez-vous parisien unique !

Par admin

Communauté - Aidez-nous à accueillir Eduardo

Vous le savez sans doute, la DrupalCon Dublin aura lieu lors de la dernière semaine de septembre. A la suite de cette semaine de conférences, Eduardo Garcia (enzo sur drupal.org), souhaiterait prolonger son séjour européen autour de Drupal Console.

Le projet d'Edouardo

Edouardo s'est lancé dans un projet, de tours du monde de Drupal en 120 jours. Les détails sur ce projet fou sont sur son blog.

Edouardo présentera une Keynote Communautaire à Dublin, où il parlera de son voyage à travers le monde et la communauté.

Son idée est de continuer son séjour en Europe, post DrupalCon, pour parle de Drupal Console, à Paris lors d'un meetup.

En venant ainsi à Paris, il aurait alors visité 16 pays en 168 jours.

Un meetup Drupal Console à Paris

Si le projet d'Edouardo vous intéresse et/ou si vous souhaitez assister au Meetup sur Drupal Console que organiserions avec son mainteneur, vous pouvez sans doute nous aider

Edouardo effectue son voyage sur ses fonds propres, alors si comme pour un Meetup parisien, nous sommes à la recherche d'un sponsor et d'une salle, cette fois ci, nous en appelons aussi à la solidarité de la communauté pour lui trouver un logement à moindre coût pendant sa présence sur Paris

Autres infos pratiques

  • Le meetup se déroulerait sur la semaine qui suit la DrupalCon, du 3 au 7 Octobre.
  • Edouardo, le mainteneur de Drupal Console parle anglais et espagnol.
  • Le meetup sera libre et annoncé comme pour tous les autres meetups, sur le groupe Meetups Drupal France et francophonie.
  • Edouardo sera aussi disponible pour parler de Drupal 8 en plus de Drupal Console :)
  • En fonction de son logement, il pourrait être là plusieurs jours

Comment nous aider ?

Si vous pouvez nous aider, en proposant un hébergement gracieux à Edouardo, ou en proposant un lieu pour ce meetup, merci d'envoyer un message à bureau[at]listes[point]drupalfr[point]org

N'oubliez pas de suivre les invitations de Meetups pour ne pas louper ce rendez-vous parisien unique !

Par ftorregrosa
Adhérent
Florent Torregrosa

Monter un environnement autour de Drupal avec Docker

Voici un retour d'expérience sur ma première utilisation réelle de Docker où je l'ai utilisé pour monter facilement un environnement de développement pour la refonte sous Drupal 8 du site drupal.fr ainsi que le socle Drupalcamp.

Étant un utilisateur récent de Docker, n'hésitez pas à me contacter ou à poster un commentaire pour me corriger en cas de besoin.

L'environnement comprendra :

  • un serveur Apache avec PHP 7

  • un serveur MySQL

  • un serveur Redis

  • un serveur SolR (drupal.fr uniquement)

Tags: 
Par vincent59
Vincent Liefooghe

Créer une vue Drupal sur un type de contenu, pour tous les auteurs ou moi seulement

J'ai eu récemment un besoin qui semble assez simple à première vue : pour un type de contenu spécifique, je voulais ajouter dans Views un filtre exposé me permettant de sélectionner tous les contenus ou seulement ceux dont j'étais l'auteur.

A priori, il suffit de créer une relation de type "Contenu: Auteur", et l'utiliser dans un filtre exposé sur l'utilisateur Actuel.

Sauf que... ceci me donne 2 options : les contenus de l'utilisateur actuel (les miens) ou les autres (pas les miens).

J'ai cherché pas mal de manière de faire, jusqu'à tomber sur une discussion qui parlait du module "Composite Views Filter", qui m'a finalement permis de faire ce que je voulais.

Création de la vue avec la relation Contenu : Auteur

Pour cela on crée une vue (Structure / Vue / Ajouter).

On lui donne un nom, et on va afficher les contenus de type "Signalement", puis on clique sur Continue & Edit. On ajoute les champs qui nous intéressent : pour la démo, ce sera le titre du contenu, l'UID de l'auteur et la date.

Puis on va ajouter une relation. Pour cela déplier "Avancé", et choisir Ajouter sur les Relations.

On choisit alors la relation Contenu / Auteur : c'est celle qui nous intéresse.

On modifie l'identiiant (par défaut c'est "author", je vais mettre Auteur). Puis on confirme en cliquant sur "Appliquer (tous les affichages).

A ce stade, la preview donne le tableau avec tous les auteurs :

Première tentative avec un filtre exposé sur l'auteur

On ajoute un filtre exposé (FILTER CRITERIA / Ajouter). On va sélectionner "Utilisateur : Actuel" :

Dans l'écran suivant, on choisit la relation que l'on a défini auparavant. On définit le filtre comme exposé, afin de laisser l'utilisateur choisir sa valeur.

Remarque : j'utilise Better Exposed Filter, qui ajoute une valeur "-Tous-", mais qui ne peut pas être sélectionnée par défaut.

Au final, les options sont réduites à Oui et Non :

Pas possible donc dans ce cas d'avoir mes contenus (correspondant à UID = 1) ou tous. Lorsqu'on sélectionne l'option Non, on a les autres contenus, mais pas le sien...

J'ai donc commencé à regarder du côté du développement Views, avant d'avoir vent du module Composite Views Filter.

Deuxième essai avec le module Composite Views Filter

Ce module nécessite d'être téléchargé et activé. Comme d'habitude, je fais cela avec Drush :

drush dl composite_views_filter
drush en -y composite_views_filter

Ensuite, il faut ajouter un filtre exposé de type "Global : Composite Filter".

On va ensuite donner les propriétés de ce filtre : une étiquette, et une description (optionnelle).  Ensuite, dans Groups, une liste de champs de type clé|valeur, qui seront utilisés par la suite.

Pour terminer, on donne un libellé pour "Tous". Dans l'option "Plus", il faut aussi donner un ID au filtre.

A ce stade, on a un nouveau filtre exposé, mais qui n'est pas actif. Il reste une étape : créer un filtre qui utilise ce filtre global. Pour cela, on ajoute un nouveau filtre, sur l'utilisateur Actuel :

On valide via le bouton "Appliquer (tous les affichages)". C'est à ce niveau que le groupe défini auparavant peut être utilisé. On sélectionne la valeur correspondant au libellé saisi.

Le filtre exposé est alors actif. Si on sélectionne l'option "Mes contenus uniquement", on a bien les contenus de l'UID = 1 :

Si on sélectionne "Tous les utilisateurs" on a la totalité des UID :

On sauvegarde la vue, et le tour est joué.

 

Catégorie: 


Tag: 

Par vincent59
Vincent Liefooghe

Importer et tenir à jour les traductions Drupal avec Drush

Lorsqu'on utilise Drupal, drush est un outil qui permet de gagner beaucoup de temps.Par exemple, pour mettre à jour les traductions des différents modules d'un site, on peut passer par l'interface, mais ceci suppose d'aller télécharger chaque fichier de traduction.Avec drush, quelques lignes de commandes suffisent :
# Telechargement du module drush_language (c'est une fonctionnalité additionnelle de drush)
drush dl drush_language
# Téléchargement du module Drupal l10n_update
drush dl l10n_update
# Activation de ce module
drush en -y l10n_update
# Ajout du langage "fr" pour le Français
drush language-add fr
# Activation de la langue fr
drush language-enable fr
# On nettoie le cache
drush clear-cache drush
# On fait une vérification des traductions
drush l10n-update-refresh
# On lance la mise à jour des traductions
drush l10n-update

La dernière commande va télécharger les fichiers de traduction, et les importer dans la foulée.Exemple sur un site réel :

drush l10n-update
Fetching update information for all projects / all languages.                                      [status]
Found 19 projects to update.                                                                       [status]
Mise à jour des traductions                                                                       [status]
                                                                                                   [status]
Traduction de better_exposed_filters vérifiée.                                                   [ok]
Traduction de colorbox vérifiée.                                                                 [ok]
Traduction de colorbox_node vérifiée.                                                            [ok]
Traduction de ctools vérifiée.                                                                   [ok]
Traduction de date vérifiée.                                                                     [ok]
Traduction de drupal vérifiée.                                                                   [ok]
Traduction de email vérifiée.                                                                    [ok]
Traduction de entity vérifiée.                                                                   [ok]
Traduction de entityreference vérifiée.                                                          [ok]
Traduction de eu_cookie_compliance vérifiée.                                                     [ok]
Traduction de field_formatter_settings vérifiée.                                                 [ok]
Traduction de field_group vérifiée.                                                              [ok]
Traduction de field_permissions vérifiée.                                                        [ok]
Traduction de geocoder vérifiée.                                                                 [ok]
Traduction de geofield vérifiée.                                                                 [ok]
Traduction de geofield_gmap vérifiée.                                                            [ok]
Traduction de geophp vérifiée.                                                                   [ok]
Traduction de hybridauth vérifiée.                                                               [ok]
Traduction de ip_geoloc vérifiée.                                                                [ok]
Traduction de l10n_update vérifiée.                                                              [ok]
Traduction de leaflet vérifiée.                                                                  [ok]
Traduction de leaflet_markercluster vérifiée.                                                    [ok]
Traduction de leaflet_more_maps vérifiée.                                                        [ok]
Traduction de libraries vérifiée.                                                                [ok]
Traduction de media vérifiée.                                                                    [ok]
Traduction de memcache_storage vérifiée.                                                         [ok]
Traduction de pathauto vérifiée.                                                                 [ok]
Traduction de role_delegation vérifiée.                                                          [ok]
Traduction de select_or_other vérifiée.                                                          [ok]
Traduction de services vérifiée.                                                                 [ok]
Traduction de token vérifiée.                                                                    [ok]
Traduction de views vérifiée.                                                                    [ok]
Traduction de views_data_export vérifiée.                                                        [ok]
Traduction de wysiwyg vérifiée.                                                                  [ok]
Traduction du module colorbox_node téléchargée.                                                 [ok]
Traduction de colorbox_node importée.                                                             [ok]
Traduction du module ctools téléchargée.                                                        [ok]
Importation de la traduction de ctools. (6%).                                                      [ok]
Importation de la traduction de ctools. (16%).                                                     [ok]
Importation de la traduction de ctools. (35%).                                                     [ok]
Importation de la traduction de ctools. (54%).                                                     [ok]
Importation de la traduction de ctools. (75%).                                                     [ok]
Importation de la traduction de ctools. (88%).                                                     [ok]
Traduction de ctools importée.                                                                    [ok]
Traduction du module date téléchargée.                                                          [ok]
Importation de la traduction de date. (28%).                                                       [ok]
Importation de la traduction de date. (72%).                                                       [ok]
Traduction de date importée.                                                                      [ok]
Traduction du module drupal téléchargée.                                                        [ok]
Importation de la traduction de drupal. (1%).                                                      [ok]
Importation de la traduction de drupal. (2%).                                                      [ok]
Importation de la traduction de drupal. (3%).                                                      [ok]
Importation de la traduction de drupal. (5%).                                                      [ok]
Importation de la traduction de drupal. (7%).                                                      [ok]
Importation de la traduction de drupal. (9%).                                                      [ok]
Importation de la traduction de drupal. (12%).                                                     [ok]
Importation de la traduction de drupal. (15%).                                                     [ok]
Importation de la traduction de drupal. (18%).                                                     [ok]
Importation de la traduction de drupal. (20%).                                                     [ok]
Importation de la traduction de drupal. (25%).                                                     [ok]
Importation de la traduction de drupal. (30%).                                                     [ok]
Importation de la traduction de drupal. (33%).                                                     [ok]
Importation de la traduction de drupal. (39%).                                                     [ok]
Importation de la traduction de drupal. (46%).                                                     [ok]
Importation de la traduction de drupal. (52%).                                                     [ok]
Importation de la traduction de drupal. (59%).                                                     [ok]
Importation de la traduction de drupal. (66%).                                                     [ok]
Importation de la traduction de drupal. (73%).                                                     [ok]
Importation de la traduction de drupal. (79%).                                                     [ok]
Importation de la traduction de drupal. (86%).                                                     [ok]
Importation de la traduction de drupal. (92%).                                                     [ok]
Importation de la traduction de drupal. (95%).                                                     [ok]
Traduction de drupal importée.                                                                    [ok]
Traduction du module entity téléchargée.                                                        [ok]
Importation de la traduction de entity. (58%).                                                     [ok]
Traduction de entity importée.                                                                    [ok]
Traduction du module entityreference téléchargée.                                               [ok]
Traduction de entityreference importée.                                                           [ok]
Traduction du module eu_cookie_compliance téléchargée.                                          [ok]
Traduction de eu_cookie_compliance importée.                                                      [ok]
Traduction du module field_formatter_settings téléchargée.                                      [ok]
Traduction de field_formatter_settings importée.                                                  [ok]
Traduction du module field_group téléchargée.                                                   [ok]
Traduction de field_group importée.                                                               [ok]
Traduction du module field_permissions téléchargée.                                             [ok]
Traduction de field_permissions importée.                                                         [ok]
Traduction du module geofield téléchargée.                                                      [ok]
Traduction de geofield importée.                                                                  [ok]
Traduction du module ip_geoloc téléchargée.                                                     [ok]
Traduction de ip_geoloc importée.                                                                 [ok]
Traduction du module l10n_update téléchargée.                                                   [ok]
Traduction de l10n_update importée.                                                               [ok]
Traduction du module leaflet téléchargée.                                                       [ok]
Traduction de leaflet importée.                                                                   [ok]
Traduction du module media téléchargée.                                                         [ok]
WD l10n_update: Import of string "Ce processus est requis lors de l'installation de media sur un   [error]
site existant. Media nécessite de scanner les fichiers existants et d'identifier le type de
fichier. Mettre à jour les types de fichier pour les fichiers @file ?>" was skipped because of
disallowed or malformed HTML.
Importation de la traduction de media. (95%).                                                      [ok]
Traduction de media importée.                                                                     [ok]
Traduction du module memcache_storage téléchargée.                                              [ok]
Traduction de memcache_storage importée.                                                          [ok]
Traduction du module select_or_other téléchargée.                                               [ok]
Traduction de select_or_other importée.                                                           [ok]
Traduction du module views téléchargée.                                                         [ok]
Importation de la traduction de views. (3%).                                                       [ok]
Importation de la traduction de views. (7%).                                                       [ok]
Importation de la traduction de views. (16%).                                                      [ok]
Importation de la traduction de views. (25%).                                                      [ok]
Importation de la traduction de views. (39%).                                                      [ok]
Importation de la traduction de views. (50%).                                                      [ok]
Importation de la traduction de views. (64%).                                                      [ok]
Importation de la traduction de views. (76%).                                                      [ok]
Importation de la traduction de views. (90%).                                                      [ok]
Traduction de views importée.                                                                     [ok]
Traduction du module views_data_export téléchargée.                                             [ok]
Traduction de views_data_export importée.                                                         [ok]
WD l10n_update: 1 disallowed HTML string(s) in files: translations://media-7.x-1.4.fr_0.po.        [warning]
19 translation files imported. 1732 translations were added, 0 translations were updated and 0     [status]
translations were removed.
One translation string was skipped because of disallowed or malformed HTML. See the log for        [warning]
details.

La commande drush a pris quelques minutes à peine, pour importer 19 fichiers...Quand je vous dis que c'est un outil magique ! 

Catégorie: 


Tag: 

Par flocondetoile
Adhérent

Alerte de sécurité Drupal PSA-2016-001

L'équipe de sécurité Drupal a annoncé hier mardi 12 juillet la publication ce jour d'un bulletin de sécurité hautement critique, PSA-2016-001, concernant plusieurs modules contribués. Les attaques potentielles sont attendues dans les heures qui suivront la publication de ce bulletin de sécurité. Tous les sites Drupal ne seront pas affectés. Selon qu'ils utiliseront ou pas les modules contribués mentionnés dans ce bulletin de sécurité. Soyez prêt à mettre à jour vos modules.

Par flocondetoile
Adhérent

Alerte de sécurité Drupal PSA-2016-001

L'équipe de sécurité Drupal a annoncé hier mardi 12 juillet la publication ce jour d'un bulletin de sécurité hautement critique, PSA-2016-001, concernant plusieurs modules contribués. Les attaques potentielles sont attendues dans les heures qui suivront la publication de ce bulletin de sécurité. Tous les sites Drupal ne seront pas affectés. Selon qu'ils utiliseront ou pas les modules contribués mentionnés dans ce bulletin de sécurité. Soyez prêt à mettre à jour vos modules.

Pages