Planète

Par kgaut
Kevin Gautreau

Drupal 8 et Drupal 9 - EntityQuery - faire une condition sur un champ d'une entité liée

Petite découverte datant d'il y a quelques mois, il est possible via une EntityQuery d'ajouter une condition sur un champ d'une entité liée.

Petit exemple :

J'ai un type d'entité game (match), lié à un type d'entité day (journée), lui même lié à un type d'entité league (compétition)

(Match : OM - ASSE, journée : Journée 1, Compétition : Ligue 1 2020-2021)

Image

MPD MesPronos

 

Si je souhaite récupérer tous les matchs d'une compétition donnée (mettons la 12,) je peux me baser sur l'attribut days.league : 

$query = \Drupal::entityQuery('game');$query->condition('day.entity:day.league', 12);$ids = $query->execute();

 

Mais on peut aussi aller plus loin et remonter encore d'un niveau pour faire une condition sur un attribut de la compétition de la journée des matchs. Pour ainsi récupérer l'ensemble des matchs des compétitions active (attribut leagues.status) :

$query = \Drupal::entityQuery('game');$query->condition('day.entity:day.league.entity:league.status', 'active');$ids = $query->execute();

Source : https://www.drupaleasy.com/quicktips/drupal-8-entity-query-across-throu…, partagé sur le slack de l'association Drupal France

Par kgaut
Kevin Gautreau

Les forks et merge-requests arrivent (enfin) sur drupal.org !

Depuis la migration des dépôts du code de Drupal ainsi que de l'ensemble des modules tiers sur Gitlab, nous sommes nombreux à attendre que l'ensemble des possibilités offertes par ce changement soient accessibles.

Une d'entre elle qui simplifiera grandement la proposition de modification de code par les néophytes est la possibilité de faire des « merge requests », à l'image de ce qui se fait sur une instance gitlab ou bien des pull-requests sur github.com.

Actuellement pour proposer une modification sur le core de Drupal ou l'un de ses modules tiers, il faut cloner le dépôt sur sa machine, faire les modifications, générer un patch et enfin proposer le patch. Procédure qui n'est pas inaccessible, mais qui n'est pas simple pour les nouveaux venus. Surtout quand on veut corriger juste un petit truc.

Le nouveau fonctionnement sera beaucoup plus simple. Il faudra commencer par créer un issue sur le projet que l'on souhaite amender :

Image

Drupal create issue

 

Note : retrouvez le ticket ici : https://www.drupal.org/project/apidae_tourisme/issues/3160451

Une fois cette issue créé, l'issue tracker de drupal proposera de créer un fork (copie) du dépôt. Fork qui sera dédié uniquement au traitement de ce ticket. Si deux personnes veulent proposer deux approches pour un même problème, alors deux forks peuvent être créés.

Image

Drupal issue fork

 

L'adresse du fork en question : https://git.drupalcode.org/issue/apidae_tourisme-3160451

Une fois créé, le fork sera clonable et/ou éditable en ligne directement via le web IDE de Gitlab :

Image

Gitlab web ide

 

Au commit, l'IDE nous proposera de directement créer une merge request, fonctionnalité qui est aussi possible depuis l'interface de Gitlab si l'on fait nos modifications en local et pas dans le web IDE.

Image

gitlab drupal merge request

 

Voici l'écran de création d'une merge request :

Image

Drupal merge request creation

 

Une fois créée, la MR est visible dans le ticket :

Image

Drupal issue merge request

 

Image

Drupal issue merge request 2

 

Ensuite l'écran d'une merge request permet de voir les modifications, de faire des commentaires, et d'accepter ou non la modification (voir en ligne : https://git.drupalcode.org/project/apidae_tourisme/-/merge_requests/1)

Image

Drupal merge request changes

 

Image

Drupal merge request screen

 

Ainsi on peut se passer complètement de la procédure de patch, même pour des grosses modifications ! Je trouve personnellement la procédure plus simple mais surtout plus accessible pour un·e néophyte.

Actuellement la fonctionnalité est encore en beta, il faut demander l'activation pour un ou plusieurs de ses projets personnels sur ce ticket : https://www.drupal.org/project/drupalorg/issues/3152637.

Si vous voulez jouer un peu et tester la procédure, n'hésitez pas à le faire sur le dépôt pour lequel j'ai activé la fonctionnalité, je ferai le ménage plus tard : https://www.drupal.org/project/apidae_tourisme/issues/3160451 (vous prouvez créer de nouveaux tickets si besoin en mettant « test » dans le titre.

Par kgaut
Kevin Gautreau

Drupal 8 et Drupal 9 - Créer une commande drush personnalisée

Voici un exemple rapide de commande drush appelant une méthode d'un service avec une option lors de l'appel.

À noter : Drupal\mon_module\Service\Resalys est un service existant, je souhaite utiliser la méthode syncResalys de ce service qui accepte un paramètre optionnel : $force

Déclaration de la commande

modules/mon_module/drush.services.yml

services:  mon_module.drush.resalys: # clé du fichier de commande, à définir vous même    class: Drupal\mon_module\Command\ResalysCommand # Namespace de la classe contenant la commande    arguments:      - '@mon_module.resalys' # Service à injecter dans notre commande    tags:      -  { name: drush.command }

Définition de la commande

modules/mon_module/src/Command/ResalysCommand.php

resalys = $resalys;  }   /**   * Sync resalys cache   *   * @command resalys:sync   * @usage drush resalys:sync   * @usage drush resalys:sync --force   *   * @param int[] $options   */  public function sync($options = ['force' => FALSE]) {    $force = (bool) $options['force'];    $this->resalys->syncResalys($force);  } }

Utilisation

drush resalys:syncdrush resalys:sync --force

 

Par Q__nt_n
Quentin Fonteneau

Obtenir un objet URL à partir de l'alias

Obtenir un objet URL à partir de l'alias
Q__nt_n
jeu 25/06/2020 - 11:10

Dans le cadre d'un import où je devais remplir des données pour plusieurs types de contenu (node, taxo etc..), j'ai du me baser sur la seule entrée que j'avais : l'URL de la page.

// Morcellement de l'URL  
$url_parts = explode("/", parse_url($item['new'], PHP_URL_PATH));
// Suppression du langcode
unset($url_parts[1]);
// Reconstruction de l'alias sans le langcode
$alias = implode('/', $url_parts);


$url_object = \Drupal::service('path.validator')->getUrlIfValid($alias);
$route_name = $url_object->getRouteName();
$route_parameters = $url_object->getrouteParameters();

Suite à la récupération de l'objet 'URL', j'ai pu distinguer mes différents cas et faire les traitements adéquats.

Thématique

Par kgaut
Kevin Gautreau

Drupal 8 et Drupal 9 - Attacher une librairie CSS ou JS à une vue

Voici comment inclure des fichiers CSS ou JS sur une page contenant une vue.

Pour rappel les librairies peuvent être définies dans un thème ou un module.

Utilisation du hook HOOK_views_pre_render.

Dans le .module de votre module :

function MON_MODULE_views_pre_render(\Drupal\views\ViewExecutable $view) {  if ($view->storage->id() === 'front_blog') {    $view->element['#attached']['library'][] = 'theme/swiper-library';    $view->element['#attached']['library'][] = 'theme/univers-js';  }}

 

Par Q__nt_n
Quentin Fonteneau

Obtenir un objet URL à partir de l'alias

Obtenir un objet URL à partir de l'alias
Q__nt_n
lun 22/06/2020 - 10:33

Dans le cadre d'un import où je devais remplir des données pour plusieurs types de contenu (node, taxo etc..), j'ai du me baser sur la seule entrée que j'avais : l'URL de la page.

// Morcellement de l'URL  
$url_parts = explode("/", parse_url($item['new'], PHP_URL_PATH));
// Suppression du langcode
unset($url_parts[1]);
// Reconstruction de l'alias sans le langcode
$alias = implode('/', $url_parts);


$url_object = \Drupal::service('path.validator')->getUrlIfValid($alias);
$route_name = $url_object->getRouteName();
$route_parameters = $url_object->getrouteParameters();

Suite à la récupération de l'objet 'URL', j'ai pu distinguer mes différents cas et faire les traitements adéquats.

Par kgaut
Kevin Gautreau

Drupal 8 & Drupal 9 - Entity Query - Ajouter une condition sur une colonne spécifique

Dans le cadre d'une EntityQuery, il peut être nécessaire parfois de faire une requête sur une colonne spécifique de notre table, autre que le traditionnel « value ».

Rien de bien compliqué, il faut alors le spécifier dans le nom du champ sur lequel on ajoute une condition.

Exemple normal :

// Condition sur la colonne « value » du champ « field type »$query->condition('field_type', 'FETE_ET_MANIFESTATION');

Pour spécifier la colonne, on concatène le nom de la colonne avec le nom du champ avec un point :

// Condition sur la colonne « dateDebut » du champ « field_apidae_dates »$query->condition('field_apidae_dates.dateDebut', $now->format('Y-m-d'), '>');

 

Par kgaut
Kevin Gautreau

Accélérer l'administration de son site drupal avec Makefile

Un Makefile est un fichier contenant des rules, (des fonctions) permettant d’exécuter une suite d'action. Beaucoup utilisé dans les langages compilés pour permettre de gérer la compilation d'un programme, c'est aussi utilisable dans le cadre d'un projet php.

J'ai découvert les Makefile après avoir commencé à utiliser docker pour mes projets web.

Quand on utilise docker pour le php les binaires php (drush, composer, drupal-console...) sont à exécuter dans le container php et non pas sur notre machine hôte.

Ce qui donne des commandes ressemblant à :

docker-compose exec php drush crdocker-compose exec php composer install

au lieu de simples

drush crcomposer install

ça n'est pas la mort, mais un développeur est feignant.

L'ensemble d'images docker docker4drupal propose un Makefile avec des rules permettant d’exécuter drush ou composer plus simplement :

make drush crmake composer install

C'est très pratique, mais on peut aller encore plus loin et écrire nos propres rules en les ajoutant à la suite du fichier. Voici par exemple une rules pour supprimer la base de données et la recréer :

## db-empty	: drop and recreate database.PHONY: db-emptydb-empty:	@docker-compose exec -T $(DB_HOST) mysql -u"$(DB_USER)" -p"$(DB_PASSWORD)" -e "DROP DATABASE IF EXISTS $(DB_NAME)"	@echo Database $(DB_NAME) dropped	@docker-compose exec -T $(DB_HOST) mysql -u"$(DB_USER)" -p"$(DB_PASSWORD)" -e "CREATE DATABASE $(DB_NAME)"

Un autre exemple pour afficher en continu le contenu du fichier drupal_debug.txt (voir : Drupal - Découvrez la fonction ddm, pour débuguer même en aveugle) :

## dd-tail	: show the tail of drupal-debug.txt file.PHONY: dd-taildd-tail:	tail -f $(LOCAL_TMP_PATH)/drupal_debug.txt

Vous voyez ici l'utilisation de variables, comme $(DB_HOST) qui sont définies dans le fichier .env :

Image

.env variables

À force d'ajouter des rules au fur et a mesure, j'ai finis par en avoir pas mal. J'ai fais un petit boulot de généralisation et tout est maintenant sur un dépôt github : https://github.com/kgaut/drupal-makefile.

L'installation est relativement rapide est simple :

Ajoutez le package à vos dépendances

composer require kgaut/drupal-makefile

Modifiez votre fichier .env et ajoutez les variables nécessaires présentées ici : https://github.com/kgaut/drupal-makefile/blob/master/.env.example

Si vous n'avez pas d'environnement de prod ou de preprod, vous pouvez supprimer les variables correspondantes ou bien les garder pour plus tard.

Enfin, il faudra lier ce nouveau fichier makefile à votre fichier makefile principal, à la racine de votre projet, en ajoutant après la ligne include .env, la ligne suivante :

include vendor/kgaut/drupal-makefile/drupal.mk

Les différentes rules sont présentées ici : https://github.com/kgaut/drupal-makefile#availables-rules

Une que j'utilise régulièrement est : db-prod-import qui fait en fait appel à plein d'autres rules :

Suppression de la base de données local et récréation (via db-empty)
Récupération du dump de base de données le plus récent en prod (via db-prod-get)
Import de ce dump en local (db-import)
Vidage des cache, mises à jour de base de données, import de la configuration et affiche un lien de connexion en tant qu'utilisateur 1 (via db-post-import)

Évidement tout ça est très lié à mon organisation de projet, mais vous pouvez certainement en récupérer des idées ou de l'inspiration.

N'hésitez-pas à suggérer des modifications ou des améliorations !

Personnaliser un export CSV avec Entity Export CSV sur Drupal 8

Le module Entity Export CSV nous permet de mettre en place très rapidement des exports CSV pour n'importe quelle type d'entité de contenu de Drupal 8. Parfois, nous pouvons avoir besoin de personnaliser les exports réalisés, comme exporter 2 informations différentes d'un même champs Entity Reference par exemple. Nous allons découvrir comment procéder pour personnaliser nos exports CSV.

Par Iloofo
Iloofo

Fin de vie de Drupal 7 et 8, êtes-vous prêts ?

Les versions 7 et 8 de Drupal arriveront en fin de vie en novembre 2021.

Qu’entend-on par fin de vie ?

La "fin de vie" annonce qu’il n’y aura plus de mise à jour de sécurité pour les versions en question.
À partir de cette date (novembre 2021), les failles qui seront découvertes et corrigées sur la version 9 ne le seront plus sur les versions 7 et 8.

Votre site sera donc vulnérable aux attaques.

Par Iloofo
Iloofo

Fin de vie de Drupal 7 et 8, êtes-vous prêts ?

Les versions 7 et 8 de Drupal arriveront en fin de vie en novembre 2021.

Qu’entend-on par fin de vie ?

La "fin de vie" annonce qu’il n’y aura plus de mise à jour de sécurité pour les versions en question.
À partir de cette date (novembre 2021), les failles qui seront découvertes et corrigées sur la version 9 ne le seront plus sur les versions 7 et 8.

Votre site sera donc vulnérable aux attaques.

Par kgaut
Kevin Gautreau

Drupal 8 & 9 - Hook Update - Tester si une table existe, la supprimer et la recréer

Pour un projet drupal, j'avais besoin de créer deux tables identiques dans une base de données séparée sur un serveur différent, afin de servir de cache pour un webservice.

Voici le code que j'ai utilisé pour créer ces tables avec un test si les tables existe avant de les récréer (si j'ai besoin de mettre à jour le modèle par exemple).

Définition du schéma de ma table dans le fichier MODULE.install :

# Le nom de cette fonction est personnel, je n'utilise pas le HOOK_schema() icifunction MODULE_schema_db_cache() {  $schema['proposals'] = [    'description' => 'distribProposal',    'fields' => [],    'primary key' => ['id'],    'indexes' => [      'id' => ['id'],      'room_type_code' => ['room_type_code'],    ],  ];   $schema['proposals']['fields']['id'] = [    'description' => 'id',    'type' => 'serial',    'not null' => TRUE,    'unsigned' => TRUE,  ];   $schema['proposals']['fields']['name'] = [    'type' => 'varchar',    'length' => 255,  ];  //Ajout des champs supplémentaires ici}

Création des tables via un hook_update() :

/** * DB cache ws - Creation tables */function MODULE_core_update_8005() {  try {    // Je passe sur une autre base de données définis dans mes settings     // ici : $databases['cache_ws']['default']    Database::setActiveConnection('cache_ws');    // Je récupère le schéma    $db = MODULE_schema_db_cache();    if($schema = Database::getConnection()->schema()) {      // Je veux avoir deux fois la même table afin de passer sur la seconde quand je met à jour la première      $tables = ['proposals_a', 'proposals_b'];      foreach ($tables as $table) {        // Si la table existe déjà je la supprime        if ($schema->tableExists($table)) {          $schema->dropTable($table);        }        // Puis je la recrée        $schema->createTable($table, $db['proposals']);      }    }  }  catch (Exception $e) {    // En cas de soucis je commence par basculer sur la base de donnée par défaut    Database::setActiveConnection();     // Puis je lance une erreur    throw new \Drupal\Core\Utility\UpdateException(t('vacanceole_core_update_8005 error : @message', ['@message' => $e->getMessage()]));  }    // Si tout s'est bien passé je repasse sur la base de données par défaut.  Database::setActiveConnection();  return t('Tables proposals_a and proposals_b successfully created');}

Pour bien faire je devrais ajouter l'installation de mes tables dans un hook install, en faisant appel à la fonction que je viens de définir :

function MODULE_install() {  MODULE_update_8005();}

 

Par admin

Drupal 9 est là !

Logo Drupal

5 ans après la version 8, Drupal 9 est sorti en version stable ce mercredi 3 juin 2020.

Les nouveautés sont nombreuses depuis Drupal 8.0 : gestion des médias, éditeur de mise en page, gestion des flux de publication, intégration avec Composer...

Une évolution dans la continuité...

...plutôt qu'une révolution.

Drupal 7 -> Drupal 8 & Drupal 8 -> Drupal 9 -> Drupal 10

Contrairement au passage de Drupal 7 à Drupal 8, le passage de Drupal 8 à Drupal 9 sera très simple.

En effet, depuis Drupal 8.0.0, la gestion du code a changé :

  • De nouvelles fonctionnalités sont ajoutées entre les versions intermédiaires (8.1.* => 8.2.*)
  • Entre ces mêmes versions intermédiaires, certaines fonctions ou méthodes de l'API Drupal peuvent être signalées comme « dépréciées » (deprecated) mais restent fonctionnelles.
  • Ce sont ces dépréciations qui sont aujourd'hui supprimées dans Drupal 9

Pour faire simple : Drupal 9.0 = Drupal 8.9 - Toutes les fonctions dépréciées.

API Drupal 8.9 et API Drupal 9.0

De nombreux modules sont déjà compatibles et de nombreux outils existent pour rendre vos modules personnalisés compatibles avec la nouvelle version du CMS.

Questions / Réponses

Quels sont les prérequis pour Drupal 9 ?

  • PHP 7.3 minimum
  • MySQL 5.7.8 minimum
  • Drush 10
  • Composer grandement recommandé !

Je viens de commencer un projet sous Drupal 8. Faut-il que je recommence tout sous Drupal 9 ?

Non, vous pourrez facilement mettre à jour le core de Drupal vers la version 9 une fois que tous les modules tiers que vous utilisez seront compatibles.

Comment tester Drupal 9 ?

Avec composer c'est très simple et cela se fait en deux lignes :

composer create-project drupal/recommended-project:9.0.0 drupal9<br />php drupal9/web/core/scripts/drupal quick-start demo_umami

Cela vous lancera l'installation d'un drupal 9 avec un site de démo présentant des recettes de cuisite.

Comment migrer mon site Drupal 8 vers Drupal 9 ?

  1. Assurez-vous que votre hébergeur / serveur répond bien aux prérequis pour Drupal 9 (voir plus haut)
  2. Faites les mises à jour du core, la migration vers Drupal 9 ne sera possible que pour les version 8.8.* et supérieures.
  3. Faites les mises à jour des modules tiers en vous assurant que les modules sont compatibles avec Drupal 9.
  4. Mettez votre code custom en conformité avec l'API de Drupal en supprimant les appels dépréciés.
  5. Mettez le core à jour.

« et voila ! »

Comment savoir si un module est compatible avec Drupal 9 ?

Cela peut-être vérifié de plusieurs manière. Pour commencer sur la page du projet sur drupal.org, dans les informations de téléchargement :

Drupal 9 project

Aussi vous pourrez trouver l'information équivalente sur le fichier .info.yml du projet.

Enfin, vous pouvez faire des recherche directement sur le site https://dev.acquia.com/drupal9/deprecation_status

J'ai un site Drupal 7, dois-je passer par Drupal 8 avant de migrer sous Drupal 9 ?

Pas forcement, via l'API de migration (Migrate API) il est possible de migrer un Drupal 7 directement sous Drupal 9.

Quand s'arrêtera le support de Drupal 7 ? De Drupal 8 ?

Le support de Drupal 7 devait s'arrêter aujourd'hui, il a finalement été étendu à la fin 2021, le support de Drupal 8 s’arrêtera aussi au même moment.

J'ai un site Drupal 7 qui ne peut pas être mis à jour, que se passera-t-il à la fin du support ?

Vous ne recevrez plus de mise à jour de sécurité pour votre site, il sera donc vulnérable.

Un programme de support payant, assuré par des entreprises tierces sera mis en place.

Quand Drupal 9.1 sortira-t-il ?

Drupal devrait garder les cycles de 6 mois mis en place depuis la version 8.0, théoriquement la version 9.1 devrait sortir le 2 décembre 2020.

Quand Drupal 10 sortira-t-il ?

Toujours en théorie, Drupal 10 sortira au deuxième trimestre 2022.

Plus d'informations

Toutes les informations sur Drupal 9 : https://www.drupal.org/9

Migrer de Drupal 8 à Drupal 9 : https://www.drupal.org/about/9/from-8

Statut des modules : https://dev.acquia.com/drupal9/deprecation_status


Vous avez des questions ? N'hésitez-pas à les poser sur le Slack de la communauté francophone ou sur Twitter avec le hashtag : #drupal9FR. Nous les ajouterons à cet article si nous pouvons y répondre.

Par admin

Drupal 9 est là !

Logo Drupal

5 ans après la version 8, Drupal 9 est sorti en version stable ce mercredi 3 juin 2020.

Les nouveautés sont nombreuses depuis Drupal 8.0 : gestion des médias, éditeur de mise en page, gestion des flux de publication, intégration avec Composer...

Une évolution dans la continuité...

...plutôt qu'une révolution.

Drupal 7 -> Drupal 8 & Drupal 8 -> Drupal 9 -> Drupal 10

Contrairement au passage de Drupal 7 à Drupal 8, le passage de Drupal 8 à Drupal 9 sera très simple.

En effet, depuis Drupal 8.0.0, la gestion du code a changé :

  • De nouvelles fonctionnalités sont ajoutées entre les versions intermédiaires (8.1.* => 8.2.*)
  • Entre ces mêmes versions intermédiaires, certaines fonctions ou méthodes de l'API Drupal peuvent être signalées comme « dépréciées » (deprecated) mais restent fonctionnelles.
  • Ce sont ces dépréciations qui sont aujourd'hui supprimées dans Drupal 9

Pour faire simple : Drupal 9.0 = Drupal 8.9 - Toutes les fonctions dépréciées.

API Drupal 8.9 et API Drupal 9.0

De nombreux modules sont déjà compatibles et de nombreux outils existent pour rendre vos modules personnalisés compatibles avec la nouvelle version du CMS.

Questions / Réponses

Quels sont les prérequis pour Drupal 9 ?

  • PHP 7.3 minimum
  • MySQL 5.7.8 minimum
  • Drush 10
  • Composer grandement recommandé !

Je viens de commencer un projet sous Drupal 8. Faut-il que je recommence tout sous Drupal 9 ?

Non, vous pourrez facilement mettre à jour le core de Drupal vers la version 9 une fois que tous les modules tiers que vous utilisez seront compatibles.

Comment tester Drupal 9 ?

Avec composer c'est très simple et cela se fait en deux lignes :

composer create-project drupal/recommended-project:9.0.0 drupal9<br />php drupal9/web/core/scripts/drupal quick-start demo_umami

Cela vous lancera l'installation d'un drupal 9 avec un site de démo présentant des recettes de cuisite.

Comment migrer mon site Drupal 8 vers Drupal 9 ?

  1. Assurez-vous que votre hébergeur / serveur répond bien aux prérequis pour Drupal 9 (voir plus haut)
  2. Faites les mises à jour du core, la migration vers Drupal 9 ne sera possible que pour les version 8.8.* et supérieures.
  3. Faites les mises à jour des modules tiers en vous assurant que les modules sont compatibles avec Drupal 9.
  4. Mettez votre code custom en conformité avec l'API de Drupal en supprimant les appels dépréciés.
  5. Mettez le core à jour.

« et voila ! »

Comment savoir si un module est compatible avec Drupal 9 ?

Cela peut-être vérifié de plusieurs manière. Pour commencer sur la page du projet sur drupal.org, dans les informations de téléchargement :

Drupal 9 project

Aussi vous pourrez trouver l'information équivalente sur le fichier .info.yml du projet.

Enfin, vous pouvez faire des recherche directement sur le site https://dev.acquia.com/drupal9/deprecation_status

J'ai un site Drupal 7, dois-je passer par Drupal 8 avant de migrer sous Drupal 9 ?

Pas forcement, via l'API de migration (Migrate API) il est possible de migrer un Drupal 7 directement sous Drupal 9.

Quand s'arrêtera le support de Drupal 7 ? De Drupal 8 ?

Le support de Drupal 7 devait s'arrêter aujourd'hui, il a finalement été étendu à la fin 2021, le support de Drupal 8 s’arrêtera aussi au même moment.

J'ai un site Drupal 7 qui ne peut pas être mis à jour, que se passera-t-il à la fin du support ?

Vous ne recevrez plus de mise à jour de sécurité pour votre site, il sera donc vulnérable.

Un programme de support payant, assuré par des entreprises tierces sera mis en place.

Quand Drupal 9.1 sortira-t-il ?

Drupal devrait garder les cycles de 6 mois mis en place depuis la version 8.0, théoriquement la version 9.1 devrait sortir le 2 décembre 2020.

Quand Drupal 10 sortira-t-il ?

Toujours en théorie, Drupal 10 sortira au deuxième trimestre 2022.

Plus d'informations

Toutes les informations sur Drupal 9 : https://www.drupal.org/9

Migrer de Drupal 8 à Drupal 9 : https://www.drupal.org/about/9/from-8

Statut des modules : https://dev.acquia.com/drupal9/deprecation_status


Vous avez des questions ? N'hésitez-pas à les poser sur le Slack de la communauté francophone ou sur Twitter avec le hashtag : #drupal9FR. Nous les ajouterons à cet article si nous pouvons y répondre.

Revue de presse

Mais également sur

Pages