Blog

Drupal 8 - création d'une page

14.01.2015
developpement-drupal-8

Drupal 8 instaure des changements importants au niveau de son API et donc de sa manière de créer des nouveaux modules. La programmation procédurale est abandonnée au profit d’une programmation orientée objet (OOP) qui est devenu un standart dans beaucoup de framework notamment Symfony2 dont certains bundle sont intégrés à Drupal 8.

Nous allons donc voir les différentes étapes pour créer un module “d8_example_module” qui affichera une page.

1 - Définir son module

Le fichier .info de Drupal 7 est remplacé par un fichier YAML. Celui-ci se nommera de la sorte : 

/modules/d8_example_module/d8_example_module.info.yml

name: D8 Test Module
description: D8 Test Module
type: module
core: 8.x
package: Custom

Ce fichier YAML est suffisant pour activer le module via l’interface Drupal.

2- Création du controller

Le controller nous permet de faire le lien entre l’action demandée (=route) et retourne le résultat. En programmation orientée objet, on étend donc le controller de base : 

/modules/d8_example_module/src/Controller/D8ExampleModuleController.php

namespace Drupal\d8_example_module\Controller;

use Drupal\Core\Controller\ControllerBase;

class D8ExampleModuleController extends ControllerBase {

  public function test_page($from, $to) {
    return [
      '#theme' => 'd8_example_module_page_theme',
      '#from' => $from,
      '#to' => $to,
    ];
  }
}

3 - Création de la route

Les hook_menu de Drupal 7 sont remplacés par le système de route de Symfony2. Les routes sont donc placées dans un fichier YAML comme cela : 

/modules/d8_example_module/d8_example_module.routing.yml

d8_example_module.test_page:
  path: '/test-page/{from}/{to}'
  defaults:
    _controller: 'Drupal\d8_example_module\Controller\D8ExampleModuleController::test_page'
    _title: 'Test Page!'
  requirements:
    _permission: 'access content'

4 - Création du thème avec Twig

Sur Drupal, le système de hook_theme est gardé avec un changement majeur qui est l’arrivée du moteur de template Twig. Le hook se présente ainsi comme cela : 

/modules/d8_example_module/d8_example_module.module

/**
 * Implements hook_theme().
 */
function d8_example_module_theme() {
  $theme['d8_example_module_page_theme'] = [
    'variables' => ['from' => NULL, 'to' => NULL],
    'template' => 'd8-theme-page',
  ];

  return $theme;
}

Le fichier de thème associé : 
/modules/d8_example_module/templates/d8-theme-page.html.twig

<section>
  {% trans %}
    <strong>{{ from }}</strong> to <em>{{ to }}</em>
  {% endtrans %}
</section>

5- Le résultat

Notre page s'affiche à l'appel de cet URL : 

http://localhost/test-page/foo/bar

 

Un projet ? Parlons-en

En tant qu'agence web experte Drupal, nous sommes à votre écoute pour étudier vos besoins
et vous proposer les meilleures solutions.

Autres articles

Drupal est réputé pour sa robustesse et sa sécurité. Cependant, dans le paysage numérique actuel, la sécurité d'un CMS ne dépend pas uniquement de son noyau. Le trafic, les modules contribués et les nouvelles techniques d'attaque créent des menaces constantes. Pour les chefs de projet, les DevOps et les hébergeurs, garantir l'intégrité, la disponibilité et la performance d'un site Drupal est une priorité absolue. C'est ici qu'intervient le pare-feu applicatif web, ou WAF (Web Application Firewall). Loin d'être un gadget technique, c'est une composante stratégique de tout hébergement moderne.

Dans un monde où les performances web et l'expérience utilisateur dictent le succès des projets numériques, combiner Drupal avec des frameworks modernes comme Vue.js devient un choix stratégique. Que vous soyez une agence spécialisée, un développeur ou une entreprise cherchant à moderniser vos outils, comprendre les avantages et les subtilités de cette intégration peut faire la différence. Cet article explore comment allier Drupal et Vue.js, les avantages de cette combinaison, et les meilleures pratiques pour exploiter leur potentiel.

Dans un monde numérique en constante évolution, la simplicité, l’accessibilité et l’efficacité sont devenues des priorités pour les entreprises cherchant à créer des expériences utilisateur optimales. Drupal CMS se distingue comme une solution novatrice, conjuguant modularité, intelligence artificielle et approche low-code. Cet article décrypte les atouts de Drupal CMS pour les professionnels souhaitant optimiser leur présence en ligne.