Démarrer un thème Drupal 8 en 10 minutes
Un thème Drupal 8 à télécharger pour être opérationnel immédiatement.
Un thème Drupal 8 à télécharger pour être opérationnel immédiatement.
Un thème Drupal à télécharger pour être opérationnel immédiatement.
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.
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 :
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.
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é.
# 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 !
Avec la publication en version stable de la suite Media Entity, Drupal 8 dispose désormais d'une solution robuste et extensible pour offrir à ses utilisateurs une gestion des médias sur mesure. Découvrons ensemble comment mettre en place un gestion de médias sur Drupal 8 avec la suite Media Entity.
Avec la publication en version stable de la suite Media Entity, Drupal 8 dispose désormais d'une solution robuste et extensible pour offrir à ses utilisateurs une gestion des médias sur mesure. Découvrons ensemble comment mettre en place un gestion de médias sur Drupal 8 avec la suite Media Entity.
Ce n'est pas vraiment du Drupal mais ça peut servir à tous les drupalistes ! Pour le meetup Drupal Lyon de juillet 2016 j'ai voulu parler des containers mais surtout de l'orchestration. Que ce soit LXC, ou Docker, peu importe en fait. Tout dépend de vos besoins. Mais pour l'orchestration, ma préférence va clairement à Ansible qui est facile d'apprentissage et si pratique au quotidien, que ce soit pour vos environnements de dév ou prod.
Présentation des modules disponibles pour construire des formulaires en Drupal 8.
Présentation des modules disponibles pour construire des formulaires en Drupal 8.
Ce billet est une petite compilation de snippet permettant de générer des entités de configuration ou encore des contenus de façon programmatique.
Ce billet est une petite compilation de snippet permettant de générer des entités de configuration ou encore des contenus de façon programmatique.
Convert Simpletest to PHPUnit
The historical test tool of Drupal Simpletest is deprecated with Drupal 8 and will be removed from Drupal 9. So tests should be converted from simpletest to PHPUnit.
It's hard to find replacements for old asserts or specials tests with PHPUnit. Solutions can be found in existing tests in modules and issues, but now issue group all replacements.
GoZ
mer 29/06/2016 - 19:16
Présentation rapide de ma méthode pour construire un site web avec Drupal, quelle que soit la version.
Présentation rapide de ma méthode pour construire un site web avec Drupal, quelle que soit la version.
Création d'une API avec Drupal 7 pour MK2
Lors du Drupal Camp 2016 à Nantes, j'ai présenté un retour d'expérience sur la création de webservices et d'une api REST + JSON sous Drupal 7 pour les cinémas MK2.
Les slides de cette présentation sont disponibles sur github et la présentation sur youtube.
Super moments passés avec la communauté, à la prochaine !
GoZ
dim 19/06/2016 - 17:56
Mon compte-rendu du DrupalCamp Nantes 2016