Vous êtes sur la page 1sur 23

Présentation de Drupal 9

02/03/2021

Installation, Administration et Développement


1. Histoire
1.1 : Présentation
1.2 : Histoire et évolution

2. Installation
2.1 : Prérequis

Plan / Sommaire 2.2 : Environnement


2.3 : Processus

3. Administration
3.1 : Menu Structure
3.2 : Vocabulaire et termes
3.3 : Taxonomies
3.4 : Utilisateurs et rôles
3.5 : Vues

4. Développement
4.1 : Menu développement
4.2 : Module « custom »
4.3 : APIs Drupal
1- HISTOIRE
1.1 Présentation
En plus d’être un CMS, Drupal est aussi un CMF (Content Management Framework).

Son cœur est développé sous Symfony.

Il utilise Composer pour gérer les dépendances de ses bibliothèques et modules.

Drush (Drupal Shell) en est une de ces bibliothèques qui s’installe en mode développement, et facilite la réalisation de tâches de base du développeur
(Ajout/Suppression de modules, gestion du cache ...etc)

Les API Drupal constituent une vraie valeur ajoutée au développement spécifique, elles permettent l’encadrement des bonnes pratiques de codage pour
une maintenance de qualité.

Quelques sites français sous Drupal :

Drupal 9 Drupal 8 Drupal 7


1.2 Histoire et évolution
- Créé en 2000 par Dries Buytaert en Belgique
- Appelé « Dorp » au début, qui veut dire « village » en néerlandais
- Enregistré par erreur sous le nom de « drop.org » lors de l’hébergement, puis « Drupal » en 2001
- Ce nom définitif a été dérivé du mot néerlandais « druppel » qui veut dire « goûte d’eau »
- Devient populaire à partir de la version 4
- En 2018 Drupal devient le 3ème CMS le plus populaire au monde, derrière Joomla et Wordpress
2- INSTALLATION
2.1 Prérequis
- Ngnix : 0.7.x

- Apache : 2.4.7

- PHP : 7.3+ (version 8 supportée par Drupal 9)

- SGBD :

* MySQL : 5.7.8+
* MariaDB : 10.3.7+
* SQLite : 3.26+
* PostgreSQL : 10 (avec extension pg_trgm)

- Drush : 10+ (global ou dépendance du projet)

- Composer : 2+ (v.1 fonctionne mais déconseillée)


2.2 Environnement
Désactivation du cache

- Pour des raisons de performances, le cache doit être désactivé en local

1 - Accéder au conteneur PHP et exécuter $./drush cc pour avoir la liste des caches disponibles

2 - Copier sites/example.settings.local.php vers sites/default/settings.local.php

3 - Ouvrir sites/default/settings.php et dé-commenter la ligne pour la configuration locale

4 - Dans sites/development.services.yml ajouter une 5 - S’assurer que development.services.yml est bien activé dans
nouvelle clée twig.config comme ceci : settings.php

6 - Faire un « rebuild » du cache


2.2 Environnement
Activation du mode « debug »

- Sur Drupal, l’activation du mode « débogage » n’est pas automatique suite à l’installation

1 - Désactiver l'agrégation CSS et JS sur l'environnement


local en dé-commentant les lignes ci-contre

2 - Désactivez le cache de rendu et la mise en cache


dynamique des pages en dé-commentant les lignes
ci-contre dans settings.local.php

3 – Maintenant les noms système des templates sont visibles et


favorisent leur redéfinition
2.3 Processus d’installation
- Docker et Docker-compose doivent être installés sur Linux, ou WSL pour windows

- La commande « $ composer create-project drupal/recommended-project:9.x.x destination » permet de créer un fichier composer.json qui contient
toutes les dépendances nécessaires pour le « core »

- L’utilitaire « Drush » pour Drupal permet de réaliser proprement les actions récurrentes du développeur, les plus courante :

* Effacement ou re-build du cache


* import/export de la configuration du « core »
* Installation/désinstallation de modules ou thèmes
* Activation/désactivation des modules « contrib » ou « custom »
* D’autres actions sur les paramètres du site, la BD, les vues ...etc

- Par exemple, nous pouvons installer le site via la commande « Drush » suivante :

$ drush site-install standard \


--db-url='mysql://[DB_USER]:[DB_PASS]@[DB_HOST]:[DB_PORT]/[DB_NAME]' \
--account-name=ADMIN-NAME --account-pass=ADMIN-PASSWORD \
--site-name=WEBSITE-NAME \
--site-mail=WEBSITE@MAIL.COM \
3- ADMINISTRATION
3.1 Menu Structure
- Menu le plus important de l’administration, il permet de mettre en place l’architecture logique du site

- Nous pouvons configurer des modèles de formulaires de contact pour des sites volumineux

- Pareil pour les menus, avec une configuration des liens, navigations ou attachement à un contenu

- La présentation peut se faire sous forme de blocs dont la mise en page est encadrée par des régions

- Un bloc peut être soit relié à un module « contrib » installé ou bien personnalisé via l’interface

- Les commentaires, si on les autorise, peuvent être configurés selon le type de contenu ou la taxonomie

- Drupal nous permet de créer des vues, consultables soit via des pages avec des routes spécifiques, ou
bien incluses dans les blocs cités ci-dessus

- Le menu Types de paragraphes a été rajouté par le module « contrib » qu’on a installé précédemment

- Les deux menus Taxonomie et Types de contenu permettent de gérer la catégorisation décrite dans la
partie « Contenu »
3.2 Vocabulaire et termes
- Pour catégoriser chaque type de contenu, nous devons créer un vocabulaire

- Par exemple, pour le contenu de type « Documentation », le vocabulaire sera « Catégories »

- On peut créer ensuite des termes correspondants et leurs contenus possibles, par exemple :

- Langages : PHP, Java, Javascript, Go ...etc


- CMS : Wordpress, Shopify
- CMF : Drupal, Magento, Pimcore
- Frameworks Backend : Symfony, Laravel, Spring, Hibernate, Struts ...etc
- Frameworks Frontend : Angular, React et Vue.js
- SGBD : MySQL, PostgreSQL, MariaDB
- CI/CD : Git, Gitlab, Docker
- Tests : PhpUnit, JUnit
- Webservices : REST, SOAP
3.3 Taxonomies
- Le contenu d’un site Drupal est représenté techniquement sous forme de « noeuds »

- Le fait de pouvoir croiser les informations par sujet s’appelle la taxonomie

- Les termes sur lesquels est possible de taguer les nœuds sont rangés dans des vocabulaires

- Un vocabulaire est rattaché à un ou plusieurs types de contenu

- Dans le schéma ci-contre, le « nœud 1 » et le « nœud 2 » appartiennent au


même type de contenu,

- Mais le premier est tagué grâce aux 2 termes « Terme 2 » et « Terme 3 »,
alors que le deuxième est tagué par le « Terme 1 » du même vocabulaire

- Ceci permet de classifier le contenu selon des types, puis selon des termes
de Taxonomie

- Nous allons créer les types de contenu nécessaires avec leurs taxonomies,
puis nous ajoutons à cela notre vue dynamique « Documentation »
accessible via la route /documentation
3.4 Utilisateurs et rôles
- L’utilisateur « Admin » pourrait créer d’autres utilisateurs avec possibilité de les classifier selon des rôles

- Lors de chaque création, on a la possibilité de lui attribuer un rôle et/ou un formulaire de contact personnalisé

- 4 rôles sont installés par défaut dans « Drupal » dont la description est la suivante :

- Chaque description entre crochets est


réalisable avec l’attribution d’un ou
plusieurs droits

- Nous pouvons comparer cela à la notion


d’« autorisations » par exemple

- Chaque droit peut être activé pour un ou


plusieurs rôles
3.5 Vues
- Drupal permet, via le module du coeur Views, la création et l’administration d’entités spécifiques appelées « Vues »

- Une vue s’attache à un type de contenu, de taxonomie, un bloc personnalisé ...etc

- Son intégration peut être faite sous forme de bloc dans une page, ou bien sous forme de page dynamique du site

- Dans ce 2ème cas, une route spécifique lui sera attribuée, avec possibilité de sélectionner du contenu dynamiquement

- Des opérations avancées de sélection sont possibles (conditions, filtres, agrégation ...etc)

- Un affichage formaté, une pagination paramétrable est des fonctions de tri sont aussi disponibles

- Pour notre site d’exemple, nous allons créer la vue « Documentation » dont la route est /documentation

- Cette vue accueillera toutes les catégories de la documentation (Langages, frameworks ...etc)

- Un clic sur une de ces catégories affichera le contenu correspondant


4- DÉVELOPPEMENT
4.1 Menu « Développement »
- Drupal consacre un menu spécialement pour le développement, ceci permet la mise en évidence des tâches de maintenance et de configuration.

NB :

- Le dernier lien permet l’import et l’export de la


configuration, chose que fait très bien « Drush »

- En plus de l’export et l’import, « Drush » permet en mode


console, de lister le détail des modifications effectuées dans le
backoffice

- Si une opération se passe mal, un détail de l’erreur s’affiche


à la console ou dans les logs, ce qui permet le ciblage rapide
du problème, et de faire les corrections nécessaires par la suite
4.2 Custom module
- Sous le dossier « web/modules/custom », créer le dossier « zymphonies_theme_override » de notre module

- Le nom choisi ne doit pas commencer par des lettres majuscules, et ne doit pas contenir d'espace

- Puis nous créons le dossier « templates » dans lequel nous mettrons tous nos fichier « twig » qu’on veut redéfinir en respectant l’arborescence du thème
de base « Zymphonies »

- Dans le dossier « css » nous mettrons notre script « zymphonies_custom_style.css »

- Nous aurons besoin de 3 fichiers à la racine du module :

zymphonies_theme_override.info.yml zymphonies_theme_override.libraries.yml
4.2 Custom module
- Nous utilisons le fichier « zymphonies_theme_override.module » pour surcharger les fichiers de template « twig » et attacher notre fichier de style.
4.2 Custom module
- Installons maintenant notre module via « Drush » :

- $ ./drush en zymphonies_theme_override -y

- L’arborescence de notre module devrait ressemble à :

- Pour désinstaller le module exécuter :

- $ ./drush pm:uninstall zymphonies_theme_override


4.3 APIs Drupal
- Chaque version de Drupal introduit de nouvelles API et conserve quelques unes des anciennes

- Le lien https://www.drupal.org/docs/drupal-apis liste toutes les APIs Drupal ajoutées ou mises à jour depuis la version 8
Merci !

Vous aimerez peut-être aussi