Message d'avertissement

The subscription service is currently unavailable. Please try again later.

Planète

Par Christophe MOLLET
Christophe Mollet

Quel CMS choisir entre Wordpress et Drupal ?

Si vous souhaitez créer un site internet, il est important de bien évaluer vos besoins et vos objectifs afin de choisir, par la suite, le CMS le plus adapté à votre projet. Afin de vous aider à y voir plus clair, notre agence web vous présente, dans cet article, les 2 CMS les plus populaires, à savoir : Wordpress et Drupal.

Par Artusamak
Julien Dubois

Avez-vous anticipé la fin de vie de Drupal 7 et 8 ?

Avez-vous anticipé la fin de vie de Drupal 7 et 8 ?
stephanie@happyculture.coop
lun 02/08/2021 - 17:24

Alors que Drupal 8 cèdera sa place à Drupal 9 cette année, Drupal 7 quant à lui reste en sursis jusqu’en novembre 2022.
Alors n’attendez plus, passez à Drupal 9 !




Migrer de Drupal 7 ou 8 à Drupal 9
Corps

Que se passe-t-il ?

Dès 2019, la date de fin de vie de Drupal 7 et Drupal 8 a été annoncée. Ce sera pour le mois de novembre 2021.

La règle dans la communauté Drupal c’est 2 versions majeures maintenues en simultané (Drupal 7 et Drupal 8 à l’époque). L’arrivée de Drupal 9 devait pousser Drupal 7 vers la retraite mais papy fait de la résistance !

En effet, son utilisation importante chez de nombreux utilisateurs finaux, la migration complexe vers Drupal 8 et le COVID ont repoussé son arrêt de carrière de 12 mois, il jouera donc les prolongations jusqu’en novembre 2022

De son côté, Drupal 8 est toujours rangé au placard à la date prévue car c’est sa dépendance à Symfony 3 qui arrive en fin de vie et qui lui fera quitter les projecteurs en novembre 2021.


Drupal release cycle
@hugovk

 

Quels sont les risques ?

Avec le retrait de ces deux versions, votre système de gestion de contenu ne va pas arrêter de fonctionner du jour au lendemain.

Ce que signifie leur fin de vie c’est que les équipes officielles qui s’occupent de maintenir le logiciel ne le feront plus. Il n’y aura donc plus de mises à jour de correctif ou de sécurité. Votre site ne bénéficiera plus de la protection offerte par l’équipe de sécurité de drupal.org. Elle s’assure que tous les modules, thèmes, distributions et le cœur de Drupal sont sécurisés. Qu’aucune faille ne peut être exploitée par des pirates et le cas échéant, produit des patchs de sécurité pour que vous puissiez mettre à jour vos sites en toute sérénité. C’est cette partie là qui s’arrête au mois de novembre 2021 pour Drupal 8.

 

Que dois-je faire ?

Selon vos sites, vous êtes dans l’une des deux situations suivantes :

Mon site est sous Drupal 7

D’ici au mois de novembre 2022, vous devez lancer le chantier de montée de version de votre site. Vers Drupal 9 ou vers un autre CMS, vous devez vous posez la question de l’impact de cette échéance.
À l’instar de Drupal 6, quelques grosses sociétés expertes Drupal ont annoncé qu’elles contribueraient à la maintenance de correctifs de sécurité de Drupal 7. Si une faille de sécurité importante venait à être découverte, ils s’engagent à reverser à la communauté le patch de sécurité aussitôt qu’il sera disponible.
Bien que cela soit une bonne nouvelle, ils ne maintiendront pas tout l’écosystème des modules utilisés par Drupal 7. Vous devez tenir compte de cette échéance pour gérer la montée de version de votre site.

Si votre site n’est plus dynamique, vous pouvez envisager une statification pour ne pas vous engager dans une refonte.

Il vous reste 16 mois pour agir, la durée moyenne d’un projet de refonte est de plusieurs mois. Ne traînez pas, nous pouvons vous aider !

Mon site est sous Drupal 8

Si votre site est sous Drupal 8, l’échéance est dans 4 mois mais, la bonne nouvelle c’est que la route est bien plus droite. En effet, le principal reproche fait à Drupal 6 et 7 était la complexité des montées de versions majeures. Comme nous l’avons indiqué précédemment, passer de Drupal 7 à Drupal 9 est un coût non négligeable. Ce frein a été entendu par la communauté et la gestion des montées de version a été revue pour en tenir compte. Depuis Drupal 8, la montée de version est sans friction car pour peu que vous mainteniez votre site Drupal 8 à jour, le passage à Drupal 9 consiste à simplement retirer le code déprécié entre les deux versions. Ce qui est une quantité bien moindre que précédemment.

Le coût de la montée de version est donc quasiment le même que celui d’une montée intermédiaire. On parle de quelques jours tout au plus contre des semaines voire des mois précédemment (car on en profitait en général pour changer bien d’autres choses par la même occasion).

Votre équipe technique devra donc s’occuper de cela et ne devrait pas avoir de problèmes pour gérer cette montée de version. Les quelques freins qui peuvent exister étant des modules contribués non compatibles avec Drupal 9 mais ils sont minoritaires. 100% du top 200 des modules et 95% du top 1000 est compatible avec Drupal 9.

Vous souhaitez en savoir plus ? Vous souhaitez migrer votre site vers Drupal 9 ?
Contactez-nous !

Catégories
Drupal
Drupal 7
Drupal 8
Drupal 9
Tags
Drupal
Par Christophe MOLLET
Christophe Mollet

Les 10 modules Drupal 9 indispensables

Drupal possède déjà de nombreux modules de base, appelés module du cœur, extrêmement puissants et efficaces pour la construction de votre site web. Étant également un CMS très modulable et pouvant être personnalisé selon les besoins de chaque projet, il est important de connaître certains modules de la communauté, appelés module contrib, indispensables peu importe votre domaine. Un de nos experts Drupal vous présente, dans cet article, son TOP 10 des modules Drupal 9 les plus indispensables.

Par Christophe MOLLET
Christophe Mollet

Comment créer un module avec Drupal 8 ?

Un module est un ensemble de fichiers PHP, Javascript et/ou CSS qui étendent les fonctionnalités du site et en ajoutent de nouvelles

Nous allons voir dans cet article comment créer un module avec Drupal 8.

Par Christophe MOLLET
Christophe Mollet

Les nouveautés de la version 9 de Drupal

Construite et basée sur la version 8 de Drupal, la nouvelle version 9 de Drupal a été dévoilé au grand public en juin dernier. Une interface qui garantie une meilleure accessibilité, plus de stabilité et sécurité. Afin de vous aider à faire le bon choix pour votre site internet, nous vous expliquons toutes les nouveautés de cette nouvelle version.

Par Christophe MOLLET
Christophe Mollet

Choisir son CMS pour un projet web

Lorsque l'on souhaite réaliser un projet web, il n'est pas toujours facile de choisir le CMS le plus adapté à votre besoin. Pour vous aider à y voir plus clair pour votre projet, notre agence web vous explique les technologies web en détails.

Bien que nos gènes viennent et resterons dans le web, la barrière entre les applications mobiles et les sites web est de plus en plus flou. Technologie front, back, CMS, application native, hybride, PWA, on est vite perdu lorsque nous devons choisir une technologie ou la raison pour laquelle nous choisissons cette technologie.

Par Christophe MOLLET
Christophe Mollet

Les nouveautés de la version 9.1 de Drupal

Drupal est l’un des meilleurs systèmes de gestion de contenu libre open-source. En effet, ce CMS est notamment connu pour ses fonctionnalités importantes, telles que la fiabilité, la flexibilité, l’évolutivité, ou encore la performance. Lancé sur le marché en 2000, Drupal comprend plusieurs versions à son actif : Drupal 7, 8 et 9.

Par Christophe MOLLET
Christophe Mollet

Synchronisation configuration Drupal

Le système de configuration de Drupal 9 stock l’ensemble des informations du site (blocks, vues, types de champs et de contenus, taxonomie…) sans inclure les données (contenu des blocks, terme de taxonomie, valeur des champs, ...). Dans Drupal 7 le système de configuration était stockée dans la base de données, ce qui rendait difficile le transfert d’une copie du site, en particulier si des modules (extensions) modifiaient la configuration.

Par Christophe MOLLET
Christophe Mollet

Configuration d'un flux RSS sur Drupal

Un flux RSS regroupe l’ensemble des actualités (articles de blog, informations provenant de différents sites web, …) provenant de différentes sources d’informations sur une seule et même plateforme. Un flux RSS permet ainsi aux internautes de consulter en temps réel les dernières actualités de votre site. ITSS vous explique dans cet article, en quoi cela consiste, et vous propose son tutoriel pour aider les entreprises à mettre en place un flux RSS sur leur propre site internet Drupal.

Par Christophe MOLLET
Christophe Mollet

Installer Drupal 9 avec Composer

Si vous vous lancez dans la création de site web personnalisé, et souhaitez posséder d'un processus de création le plus professionnel possible, notre agence web vous recommande d'installer Drupal avec Composer. Cela vous permettra entre autres d'avoir le contrôle sur le versionning de la base de données et des extensions contrib de Drupal. Afin de vous accompagner au mieux dans votre projet web, un de nos experts Drupal vous a préparé un tutoriel.

Par Christophe MOLLET
Christophe Mollet

Quelques sites internet créés sous Drupal

Si vous avez comme projet de créer un site internet pour votre activité, il faut savoir que le choix du CMS a un impact direct sur ce que vous souhaitez faire. En effet, il est important d’avoir à l’esprit que l’on ne choisit pas un CMS par hasard, mais parce qu’il correspond au besoin envisagé. Ici, nous allons vous parler de Drupal, un CMS open-source à la fois puissant et flexible.

Par Christophe MOLLET
Christophe Mollet

Les fonctionnalités apportées par Drupal 9.2

Drupal est un CMS qui ne cesse d'évoluer afin de répondre aux besoins du marché. Pour se faire, Drupal met à jour régulièrement ses versions, toujours plus performantes et sécurisantes les unes que les autres. La dernière mise à jour prévue est la sortie de Drupal 9.2 pour ce mois-ci. Notre agence web vous dévoile dans cet article toutes les modifications que pourra apporter cette nouvelle version sur votre site internet.

Par Christophe MOLLET
Christophe Mollet

Les fonctionnalités apportées par Drupal 9.2

Drupal est un CMS qui ne cesse d'évoluer afin de répondre aux besoins du marché. Pour se faire, Drupal met à jour régulièrement ses versions, toujours plus performantes et sécurisantes les unes que les autres. La dernière mise à jour prévue est la sortie de Drupal 9.2 pour ce mois-ci. Notre agence web vous dévoile dans cet article toutes les modifications que pourra apporter cette nouvelle version sur votre site internet.

Par FMB
Adhérent
Philippe Mané

Exploiter les données de biodiversité en PHP et avec Drupal grâce à la bibliothèque PHP GBIF

Exploiter les données de biodiversité en PHP et avec Drupal grâce à la bibliothèque PHP GBIF

Le projet Musa in situ, mené conjointement par le CIRAD et Bioversity, recueille des données sur les Musacées1 de par le monde, en conditions naturelles ou s'en approchant. L'objectif principal est d'obtenir une image la plus précise possible de la diversité géographique naturelle des Musacées. Il s'appuyait initialement sur un projet sur iNaturalist, mais par la suite il s'est ouvert à d'autres sources de données, notamment le GBIF (Global Biodiversity Information Facility), qui a pour but de mettre à disposition toute l'information connue sur la biodiversité. En particulier, ces données sont accessibles à travers une interface REST.

Le GBIF permet un accès à ces données via une interface web qui utilise en interne cette interface REST. Cependant, dans le cadre du travail effectué pour MGIS, il était souhaitable de pouvoir interroger ces données directement depuis ce site, idéalement au moyen d'une vue, afin de choisir quelles données importer en base, et assurer une cohérence avec ce qui avait déjà été importé, ou ce que l'on s'interdit d'importer.

Il se trouve que le langage R dispose d'une mise en œuvre de référence, rgbif. Ce client constitue une abstraction permettant d'interroger la base du GBIF sans avoir à entrer dans le détail des requêtes à effectuer en service web. Il a été porté de manière plus ou moins exhaustive en Python (pygbif) et Ruby (gbifrb). Il faut désormais compter avec PHP GBIF, développé dans le cadre de ce projet. Notre espoir est que ce projet libre2 puisse être utile à d'autres acteurs souhaitant interagir avec ce catalogue central de la biodiversité mondiale.

L'installer est aussi simple qu'un composer require restelae/php-gbif. Cette bibliothèque requiert la version 7.2 de PHP ou toute version supérieure. Vous trouverez sur sa page d'accueil toutes les informations nécessaires à son utilisation, complétées par une documentation générée automatiquement avec Doxygen.

Nous avons également écrit un module pour Drupal3 s'appuyant sur cette bibliothèque pour permettre d'afficher les occurrences du GBIF avec Views, uniquement en site building, par appels en service web, sans passer par la base locale ! Couplé avec Views Bulk Operations, on peut tout à fait s'en servir pour traiter en local les données du GBIF sélectionnées, par exemple les importer localement avec le module Migrate.

À l'heure actuelle, le projet permet uniquement de récupérer ou de rechercher des occurrences ou des espèces. Nous sommes à la recherche de sponsors et de contributeurs pour mettre en œuvre l'ensemble de l'API du GBIF, et de la sorte faciliter grandement l'accès à l'ensemble des données du GBIF à tous les projets écrits en PHP. N'hésitez pas à nous contacter si cela vous intéresse !


  1. La famille des Musacées regroupe notamment les genres Musa (bananiers) et Ensete↩︎

  2. Sous licence GPLv3. ↩︎

  3. Actuellement Drupal 7, en attendant que MGIS soit porté en Drupal 9. ↩︎

felip
01/06/2021

Par FMB
Adhérent
Philippe Mané

Exploiter les données de biodiversité en PHP et avec Drupal grâce à la bibliothèque PHP GBIF

Exploiter les données de biodiversité en PHP et avec Drupal grâce à la bibliothèque PHP GBIF

Le projet Musa in situ, mené conjointement par le CIRAD et Bioversity, recueille des données sur les Musacées1 de par le monde, en conditions naturelles ou s'en approchant. L'objectif principal est d'obtenir une image la plus précise possible de la diversité géographique naturelle des Musacées. Il s'appuyait initialement sur un projet sur iNaturalist, mais par la suite il s'est ouvert à d'autres sources de données, notamment le GBIF (Global Biodiversity Information Facility), qui a pour but de mettre à disposition toute l'information connue sur la biodiversité. En particulier, ces données sont accessibles à travers une interface REST.

Le GBIF permet un accès à ces données via une interface web qui utilise en interne cette interface REST. Cependant, dans le cadre du travail effectué pour MGIS, il était souhaitable de pouvoir interroger ces données directement depuis ce site, idéalement au moyen d'une vue, afin de choisir quelles données importer en base, et assurer une cohérence avec ce qui avait déjà été importé, ou ce que l'on s'interdit d'importer.

Il se trouve que le langage R dispose d'une mise en œuvre de référence, rgbif. Ce client constitue une abstraction permettant d'interroger la base du GBIF sans avoir à entrer dans le détail des requêtes à effectuer en service web. Il a été porté de manière plus ou moins exhaustive en Python (pygbif) et Ruby (gbifrb). Il faut désormais compter avec PHP GBIF, développé dans le cadre de ce projet. Notre espoir est que ce projet libre2 puisse être utile à d'autres acteurs souhaitant interagir avec ce catalogue central de la biodiversité mondiale.

L'installer est aussi simple qu'un composer require restelae/php-gbif. Cette bibliothèque requiert la version 7.2 de PHP ou toute version supérieure. Vous trouverez sur sa page d'accueil toutes les informations nécessaires à son utilisation, complétées par une documentation générée automatiquement avec Doxygen.

Nous avons également écrit un module pour Drupal3 s'appuyant sur cette bibliothèque pour permettre d'afficher les occurrences du GBIF avec Views, uniquement en site building, par appels en service web, sans passer par la base locale ! Couplé avec Views Bulk Operations, on peut tout à fait s'en servir pour traiter en local les données du GBIF sélectionnées, par exemple les importer localement avec le module Migrate.

À l'heure actuelle, le projet permet uniquement de récupérer ou de rechercher des occurrences ou des espèces. Nous sommes à la recherche de sponsors et de contributeurs pour mettre en œuvre l'ensemble de l'API du GBIF, et de la sorte faciliter grandement l'accès à l'ensemble des données du GBIF à tous les projets écrits en PHP. N'hésitez pas à nous contacter si cela vous intéresse !


  1. La famille des Musacées regroupe notamment les genres Musa (bananiers) et Ensete↩︎

  2. Sous licence GPLv3. ↩︎

  3. Actuellement Drupal 7, en attendant que MGIS soit porté en Drupal 9. ↩︎

felip
01/06/2021

Par Christophe MOLLET
Christophe Mollet

Quel site internet pouvons-nous créer sous Drupal ?

Si vous avez comme projet de créer un site internet pour votre activité, il faut savoir que le choix du CMS a un impact direct sur ce que vous souhaitez faire. En effet, il est important d’avoir à l’esprit que l’on ne choisit pas un CMS par hasard, mais parce qu’il correspond au besoin envisagé. Ici, nous allons vous parler de Drupal, un CMS open-source à la fois puissant et flexible.

Par kgaut
Adhérent
Kevin Gautreau

Drupal - Utiliser Devel Generate pour générer des entités personnalisées

Devel Generate est un sous module de Devel permettant de générer du contenu de test pour son site drupal, que cela soit des nœuds, des termes de taxonomy, des utilisateurs ou encore des éléments de menu.

Il est aussi possible de développer un petit plugin permettant de générer des entités d'un type custom, en renseignant ses champs mais aussi ses propriétés (basefield).

Voici le code du plugin de mon module me permettant de générer des entités de type « cadeau ». Attention, c'est fonctionnel, mais c'est du rapidos, la propreté du code est perfectible !

Fichier : modules/mon_module/src/Plugin/DevelGenerate/CadeauDevelGenerate.php

<?php
namespace Drupal\mon_module\Plugin\DevelGenerate;

use Drupal\Core\Field\Plugin\Field\FieldType\UriItem;
use Drupal\Core\Form\FormStateInterface;
use Drupal\devel_generate\DevelGenerateBase;
use Drupal\image\Plugin\Field\FieldType\ImageItem;
use Drupal\kebrina\Entity\Cadeau;
use Drupal\text\Plugin\Field\FieldType\TextLongItem;

/**
* Provides a ContentDevelGenerate plugin.
*
* @DevelGenerate(
*   id = "cadeau", // Le nom machine de mon type d'entité
*   label = @Translation("Cadeau"),
*   description = @Translation("Génère des cadeaux"),
*   url = "cadeau",
*   permission = "administer devel_generate",
*   settings = { // Les paramètres par défaut
*     "num" = 50,
*     "kill" = FALSE,
*   }
* )
*/
class CadeauDevelGenerate extends DevelGenerateBase {

  /**
   * Le formulaire à renseigner avant la génération du contenu
   */
  public function settingsForm(array $form, FormStateInterface $form_state) {

    $form['num'] = [
      '#type' => 'textfield',
      '#title' => $this->t('Combien de cadeaux voulez-vous générer ?'),
      '#default_value' => $this->getSetting('num'),
      '#size' => 10,
    ];

    $form['kill'] = [
      '#type' => 'checkbox',
      '#title' => $this->t('Supprimer tous les cadeaux en base avant la génération ?'),
      '#default_value' => $this->getSetting('kill'),
    ];

    return $form;
  }
  protected function generateElements(array $values) {
    $num = $values['num'];
    $kill = $values['kill'];

    if ($kill) {
      $nbDeletedItems = 0;
      // Suppression des contenus existants
      foreach (Cadeau::loadMultiple() as $cadeau) {
        $cadeau->delete();
        $nbDeletedItems++;
      }
      $this->setMessage($this->formatPlural($nbDeletedItems, '1 cadeau a été supprimé', '@count cadeaux supprimés'));
    }

    $definition_update_manager = \Drupal::entityDefinitionUpdateManager();
    $entity_type = $definition_update_manager->getEntityType('cadeau'); // À modifier en fonction du nom machine de votre type d'entité
    for ($i = 1; $i <= $num; $i++) {
      // Création de l'entité avec des valeurs générée aléatoirement en fonction de leur type
      // ImageItem, TextLongItem, UriItem sont a adapter en fonction des types de vos propriétés
      $cadeau = Cadeau::create([
        'title' => $this->getRandom()->word(mt_rand(2, 50)),
        'photo' => ImageItem::generateSampleValue(Cadeau::baseFieldDefinitions($entity_type)['photo']),
        'description' => TextLongItem::generateSampleValue(Cadeau::baseFieldDefinitions($entity_type)['description']),
        'url' => UriItem::generateSampleValue(Cadeau::baseFieldDefinitions($entity_type)['url']),
      ]);
      // On renseigne aussi les champs s'il y'en a.
      $this->populateFields($cadeau);
      // Et on sauvegarde notre contenu
      $cadeau->save();
    }
  }

  public function validateDrushParams(array $args, array $options = []) {
    return [
      'num' => $options['num'],
      'kill' => $options['kill'],
    ];
  }
}

 

Un petit coup de vidage de cache, puis sur l'uri /admin/config/development/generate, vous aurez maintenant une nouvelle option :

Image

Devel Generate

Pages