alainericgauthier.com

Drupal 7 et HTML5 -- L'introduction

Drupal

Problématique

Drupal 7 est configuré, par défaut, pour générer du code en XHTML. Considérant tous les efforts pour rendre HTML5 compatible avec les navigateurs présentement utilisés sur le web il est important de considérer la possibilité de développer son site en HTML5, particulièrement s'il s'agit d'un nouveau site ou même d'une re-conception. Vous pouvez aller voir comment h5bp fonctionne pour mieux comprendre comment il est possible de faire un site avec HTML5 aujourd'hui.

Je présente ici le survol d'une méthode (il y en a sûrement d'autres) pour que Drupal 7 génère des pages en HTML5.

Override

Pour faciliter les mises à jour du noyau de Drupal tout en conservant la possibilité de faire des modifications sur mesure, les concepteurs de Drupal suggèrent fortement d'utiliser les overrides. En résumé, tout ce qui permet à Drupal de générer du code peut être remplacé (overridé) par une fonction sur mesure qui prend sa place.

Avec cette approche, les mises à jours du coeur n'effacent pas le modifications propres à chaque site, ce qui réduit énormément les efforts requis pour faire une mise à jour. Si chaque site construit sur mesure devait modifier le noyau, chaque mise à jour effacerait les modifications faites pour chaque site.

Deux façons de faire les choses :

Tout ce que Drupal génère provient soit d'une fonction PHP, soit d'un fichier modèle (dont le suffixe est .tpl.php).

  1. Le fichier template.php contient des fonctions PHP qui génèrent du HTML.
  2. Les fichiers modèles (dont le suffixe est toujours .tpl.php) contiennent du HTML et du code PHP plutôt simple.

Le fichier template.php

Certains éléments de Drupal sont générés par des fonctions PHP. Dans le cas d'un thème Drupal, toute ces fonctions se trouvent dans un fichier nommé template.php.

Les fichiers modèles (template)

Ces fichiers contiennent un mélange de HTML et de PHP. Le HTML permet de générer le code qui ne change jamais (comme par exemple l'entête d'un site avec son logo) et d'utiliser du code PHP pour générer les éléments en fonction du contexte (soit la page qui est demandé, soit des blocs particuliers en fonction du type de contenu, etc.).

Le fichier html.tpl.php

C'est le premier fichier qui est utilisé par Drupal pour générer le code de la page demandée. Il contient toutes les informations de la section <head> et la structure de très haut niveau de la section <body>.

Le fichier page.tpl.php

C'est le deuxième fichier utilisé par Drupal pour générer une page en HTML. Ce fichier défini, avec un peu plus de détails, le contenu de la section <body>.

Avec ces deux fichiers, il est déjà possible de contrôler comment une grande partie du code sera généré par Drupal.

Les sources d'informations

Certains éléments d'une page générée par Drupal peuvent être modifiés (overridés) par le fichier template.php ou en utilisant les modèles (*.tpl.php). D'autres éléments ne peuvent être modifiés que par une fonction PHP (dans un fichier template.php). D'autres encores, ne sont modifiables que par les fichiers modèles.

Comment s'y retrouver?

Il y a deux sources principales :

  1. api.drupal.org : essentiellement la documentation de tout le code de Drupal
  2. les modules devel et devel_themer : des outils pour voir en détail ce qui se passe dans une page générée par Drupal

Mon expérience de programmeur novice m'a appris que la deuxième approche est plus conviviale pour moi et que le API de Drupal est un très bon complément.

Vous voulez en apprendre encore plus?

Obtenez le guide Comment créer un thème sous Drupal 7 maintenant.

Je veux ce guide.