template.php

Le fichier template.php

template.php est un fichier PHP spécial qui permet d'apporter des personnalisations avancées au thème (design) d'un site Drupal en redéfinissant des fonctions. Ce fichier n'existe pas par défaut, il faut le créer si besoin.

A noter que ce fichier doit commencer par un tag php ouvrant < ?php mais il n’est pas nécessaire d’y inclure le tag fermant. En réalité, il est même recommander de ne pas le mettre.

Surcharger des fonctions

Différentes mises en page dans un même thême.

Quand on commence à s'amuser avec Drupal, on se pose rapidement des petites questions sur la manière dont on va s'y prendre pour se faire son petit thème préféré.

Jusque là, normalement, rien de trop dur. Mais si on commence a vouloir avoir des mises en pages différente en fonction de l'endroit où l'on se trouve, les choses peuvent se compliquer quelque peu.

Mise en "form" - le formulaire du login

Première étape : Surcharge du formulaire de login

Une surcharge s'effectue toujours dans le fichier template.php, si vous n'avez pas ce fichier, il suffit de le créer.
Avant de surcharger quelque chose, il faut bien savoir ce que l'on veux surcharger.

Dans notre cas, la fonction à surcharger se trouve dans le module "user" :

modules/user.module ligne 868

<?php
function user_login($msg = '') {
//…(plen de code pas joli)
  return drupal_get_form('user_login', $form);
}
?>

Changer l’affichage des terms sur un nœud

Par défaut, Drupal affiche les termes de taxonomie un après les autres

Exemple
[img]http://www.web-42.com/files/01.png[/img]

Il pourrait être sympa de vouloir changer un peu cela. (ou au moins pour comprendre un peu comment ça marche).

Déclarer des nouvelles régions

La première étape consiste à déclarer les nouvelles régions en créant une fonction appelée montheme_regions() dans le fichier template.php. Note : le fichier template.php est un simple fichier PHP que vous devez créer et enregistrer dans le répertoire de votre thème ; il sert à stocker les différentes personnalisations apportées à votre thème.