Introduction
- Présentation de Drupal (node, taxonomie...).
- Présentation, installation des outils de développement.
- Installation de Drupal.
- Les outils du développeur : firebug, module "devel".
- Les concepts objet (classes, interfaces, injection de dépendance, PSR-4...).
Travaux pratiques
Installation de Drupal et de WAMP.
Création d'un module
- Les fichiers nécessaires.
- Structures des fichiers (autoloading).
- PSR-0 et PSR-4.
- Container, services et injection de dépendance.
Travaux pratiques
Installer et créer des modules.
Le système de routing
- La gestion du routing.
- Faire correspondre une URL à une page.
- Usage des méthodes create() et __construct().
- Créer des URL dynamiques.
- Ajout de liens de menu, contextuels, d'action et d'onglet.
Travaux pratiques
Afficher une page avec arguments.
Le système de bloc
- Gestion des blocs avec Drupal version courante.
- Introduction aux types de blocs.
- Comment créer un bloc avec bloc plug-in ?
Travaux pratiques
Afficher un bloc, en protéger l'accès.
Les nœuds
- Qu'est-ce qu'un nœud ? Créer un "node module".
- Manipuler les nœuds par programmation.
- Intercepter les actions effectuées sur les nœuds.
- Ajout d'onglet sur chaque page de nœud.
Travaux pratiques
Créer un historique de mise à jour.
Les formulaires
- Créer des formulaires par programmation (form API).
- Gérer la validation et la soumission d'un formulaire.
- Formulaires AJAX.
- Changer la présentation d'un formulaire.
- Modifier un formulaire Drupal sans toucher à son code source (hook_form_alter).
Travaux pratiques
Créer un formulaire.
Config API
- Configuration management : fichiers YAML, import/export.
- Créer un formulaire dans le back-office de Drupal.
- Ajouter sa propre configuration : l'objet Config.
- Traduction de configuration.
Travaux pratiques
Route dynamique. Utiliser la schema API. Créer une mise à jour.
Sécurité
- Protéger l'accès à un bloc.
- Protéger l'accès à une page.
- Créer son propre système de contrôle d'accès.
Travaux pratiques
Protéger l'accès à un bloc. Protéger l'accès à une page. Contrôle d'accès custom.