Engagements

  • En respect de nos valeurs de Proximité, nous travaillons uniquement dans la Zone : Paris-Lille-Bruxelles
  • Un travail exclusivement sur le CMS DRUPAL et sur aucune autre technologie
  • Une assistance téléphone 5j/7 de 9h à 18h
voir tous

Publications

  • Le contrôleur d'entité Dans le hook entity_info, nous avons déclaré que nous utiliserions notre propre classe contrôleur. Autrement dit, nous devons à présent en fournir une. Toutefois, une classe contrôleur n'est pas nécessairement petite et, si elle n'est utilisée qu'à de rares occasions, il n'est pas souhaitable d'analyser ce code sur toutes les pages.

DRUPAL : Création de thème

Blog

DRUPAL : Création de thème 6 janvier 2012

Zen

Pour démarrer dans la création de thème sur Drupal, il est toujours plus simple de commencer par un thème existant et de le retoucher ensuite. Le thème ZEN reprend l’ensemble des fichiers nécessaires pour créer un thème et les différents fichiers sont commentés.

 

Pour le télécharger : http://drupal.org/project/zen

Le répertoire des thèmes

L’ensemble des thèmes que l’on ajoute à Drupal doit se trouver dans le répertoire suivant : site/all/themes. Ensuite, le nom du dossier correspond au nom du thème.

 

Figure 1 : Répertoire des thèmes

 

Une fois le thème ajouté dans ce répertoire, il faut simplement l’activer dans la partie administration (menu apparence) pour qu’il s’affiche.

Figure 2 : Activation du thème ZEN

 

Création du fichier .info

Nous allons tout d’abord nous intéresser au fichier zen.info qui reprend les éléments essentiels du thème.

 


name        = Zen
description = Zen sub-themes are the ultimate starting themes for Drupal 7. Read the online docs or the included README-FIRST.txt on how to create a theme with Zen.
screenshot  = zen-internals/screenshot.png

core        = 7.x
engine      = phptemplate

regions[help]           = Help
regions[sidebar_first]  = First sidebar
regions[sidebar_second] = Second sidebar
regions[navigation]     = Navigation bar
regions[highlighted]    = Highlighted
regions[content]        = Content

regions[header]         = Header
regions[footer]         = Footer
regions[bottom]         = Page bottom
regions[page_top]       = Page top
regions[page_bottom]    = Page bottom

settings[zen_breadcrumb]           = yes
settings[zen_breadcrumb_separator] = ' › '
settings[zen_breadcrumb_home]      = 1
settings[zen_breadcrumb_trailing]  = 1
settings[zen_breadcrumb_title]     = 0
settings[zen_layout]               = zen-columns-liquid
settings[zen_jump_link_target]     = main-menu
settings[zen_rebuild_registry]     = 0
settings[zen_wireframes]           = 0

; Information added by drupal.org packaging script on 2011-04-25
version = "7.x-3.1"
core = "7.x"
project = "zen"
datestamp = "1303759317"

Au travers de ce fichier, nous allons pouvoir définir les paramètres principaux du thème. Nous allons aussi définir les positions qui seront présentes dans le thème. Dans chaque position, il sera possible de placer des blocs. Les autres informations présentes servent à définir les paramètres de base du thème.

 

Dans ce fichier, il est aussi possible d’ajouter des fichiers CSS ainsi que des fichiers Javascript. Il faut utiliser la syntaxe suivante :

 

stylesheets[all][] = css/style.css
scripts[] = my_script.js

Création de la page principale

La page principale qui dirige le thème est la suivante : page.tpl.php.

Figure 3 : Le fichier page.tpl.php

 

Lorsque l’on ouvre ce fichier, on comprend tout de suite l’intérêt de travailler avec le thème ZEN car les différentes variables du fichier sont toutes commentées. On retrouve ainsi les variables correspondantes aux positions définies dans le zen.info mais aussi les variables pour récupérer le menu, le titre du site ...

 

Je vous conseille de vous familiariser avec ces variables car elles vous feront gagner beaucoup de temps dans le développement de votre thème. Nous avons donc vu les aspects principaux qui caractérisent un thème. Cependant, un thème va aussi nous permettre d’influer sur la présentation des modules.

 

Création de template de node

Nous allons maintenant nous intéresser à l’ensemble des fichiers se trouvant dans le répertoire template. Nous allons prendre comme exemple le fichier node.tpl.php.

Figure 4 : Le fichier node.tpl.php

 

Ce fichier générique permet la mise en forme des différents nodes du site. Dans le fichier, les différentes variable sont aussi commentées. Il est donc très facile de retrouver n’importe quel champ d’un node. En effet, la variable objet $node contient l’ensemble des valeurs du node.

 

Cependant, il est possible d’aller encore plus loin dans les thèmes de node. En effet, il va être possible de créer un thème pour un type de node. Pour cela, il suffit de nommer son fichier de la manière suivante : node-nomdutypedenode.tpl.php.

 

Exemple : node-stories.tpl.php permet de créer un thème pour le contenu de type stories.

 

Création du fichier template.php

Ce fichier permet de créer des actions spécifiques avant le chargement de certains éléments. Dans le jargon Drupal, nous appelons cela des Hooks.

 

Nous allons donc retrouver les fonctions suivantes :

Figure 5 : Liste des fonctions présentes dans le fichier template.php

 

Le thème ZEN reprend les principales fonctions que l’on utilise couramment dans ce fichier. Il est alors très simple de rentrer une action spécifique si besoin.

Pour aller plus loin

Nous avons pu parcourir les éléments essentiels d’un thème sur Drupal au travers du thème ZEN. De part sa communauté mondiale, il existe évidemment de nombreux autres thèmes qui sont directement accessibles via le site de Drupal : http://drupal.org/project/Themes.

 

Il existe aussi une documentation complète (en anglais) qui reprend les aspects que nous avons vu en allant un peu plus loin : http://drupal.org/documentation/theme.

 

Conclusion

 

Au travers de cet article, nous avons vu qu’il est très facile de comprendre le fonctionnement d’un thème sur Drupal et de le customiser pour obtenir ce que nous souhaitons.

 

Le thème ZEN simplifie grandement la tâche car l’ensemble du code est commenté. Pour créer un thème, il est donc plus facile de partir de celui-ci plutôt que de zéro.

 

La communauté de Drupal a mis à disposition un certain nombre de thèmes mais qui reste limité. En effet, par comparaison, Wordpress et Joomla disposent d’un nombre plus conséquent de templates. Cependant, la rapidité et la simplicité pour créer un thème convaincront les intégrateurs de choisir le CMS Drupal.

 

A propos de l'auteur

Aline Dugardin

Aline est une développeuse Drupal et une passionnée de ce CMS. Elle dispose d'une maitrise complète de la création de thème sur Drupal. Les hooks n'ont plus de secrets!

Ajouter un commentaire
CAPTCHA
Cette question permet de tester si vous êtes un visiteur humain et évite les soumissions automatisées (spam).
2 + 6 =
Résolvez ce simple problème de math et entrez le résultat. Ex : pour 1 + 3 entrez 4
Ils nous font confiance ! agence drupal nord paris
Aller vers le haut
Rencontrer l'agence Akabia
Contacter l'agence Akabia
Aller vers le bas
Quitter la fenêtre

Se rencontrer

Agence AKABIA
43,rue du Nouveau Monde
59100 Roubaix (NORD)
09 54 88 92 61
contact@akabia.fr