Afficher les variables disponibles de notre theme en Drupal 7.x

Lorsque nous travaillons au niveau du theme layer, par exemple sur notre node.tpl.php, nous nous demandons parfois quelles sont les variables dont nous disposons, c’est à dire quelles sont les variables qui ont été envoyées vers notre fichier .tpl.php

Dans ce post nous verrons qu’en fait les fichiers .tpl.php de notre installation par défaut de Drupal sont en réalité très bien documentés, mais nous verrons aussi une manière plus simple et plus dynamique en utilisant la fonction get_defined_vars().

Tags:

Theming: Déplacer les liens Addthis au dessus de nos nodes en Drupal 6.x

Le module Addthis de Drupal permet à l’utilisateur de notre site de partager le contenu sur différents réseaux sociaux (FaceBook, Twitter…). Par défaut, ce module place les liens sociaux au bas de notre node, juste en dessous du contenu.

Mais comment pourrions-nous placer ces liens au dessus du contenu, comme cela se fait plus généralement?

Tags:

Changer le label dans un formulaire du module Location en Drupal 6.x

Un de mes clients me demandait cette semaine de changer le label (ou le titre) d’un champ localisation dans un formulaire d’édition d’un node sur son site Drupal. Il voulait en particulier que les noms de champ 'Rue' et 'Additional' soient remplacés par 'Adresse 1' et 'Adresse 2' respectivement.

Comme vous le savez sans doute les module Location et Gmap de Drupal nous permettent de (géo) localiser des nodes avec de jolies cartes de Google Maps.

Nous allons donc, dans module propre, utiliser le hook_form_alter() mais avec deux manières distinctes si nous avons utilisé le sous module Location CCK ou le sous module Node Locations.

Dans les deux cas nous allons utiliser la fonction #after_build qui nous permet d’appeler une fonction une fois que notre formulaire a été construit mais avant qu’il soit renderisé (rendered). C'est là que nous allons changer nos labels ou titres de nos champs.

Node Locations

<?php
/**
   * Implementation of hook_form_alter().
   *
   * The function is named modulename_form_alter.
   */
function MYMODULE_form_alter(&$form, &$form_state, $form_id){
  switch (
$form_id){
    case
'MYNODE_node_form':
     
$form['#after_build'][] = 'change_location_label';
    break;
  }
}

function
change_location_label(&$form) {
 
$form['locations'][0]['street']['#title'] = t('Adress 1');
 
$form['locations'][0]['additional']['#title'] = t('Adress 2');

  return
$form;
}
?>

Tags:

Templates pour nos pages basées sur un type de node

Nous avons parfois besoin d’une template page.tpl.php pour chaque type de node (page-[type].tpl.php). Par exemple une template différente pour nos nodes de type ‘Blog’ (page-blog.tpl.php) et une autre pour nos nodes de type ‘montype’ (page-montype.tpl.php).

Si Drupal nous propose par défaut (Template Suggestion) des templates node-[type].tpl.php, il n’en va pas de même pour les templates des pages.

Pour ajouter (ou suggérer) des templates pour nos pages, il nous suffit d’insérer le code suivant dans notre fichier template.php de notre thème.

N’oubliez pas de remplacer themeNom par le nom de votre thème.

Drupal 6

<?php
function themeNom_preprocess_page(&$vars, $hook) {
  if (isset(
$vars['node'])) {
  
// Si le type de node est "blog" la template proposée sera "page-blog.tpl.php".
  
$vars['template_files'][] = 'page-'. str_replace('_', '-', $vars['node']->type);
  }
}
?>

Tags:

Dans cette vidéo nous allons voir comment modifier le formulaire des filtres exposés dans une vue avec Drupal 6.x

Pour cela nous allons utiliser la fonction hook _form_alter() de l'API de Drupal qui nous permettra de modifier apparence de certains champs du formulaire. Je vous montrerai aussi brièvement comment le faire avec une fonction preprocess dans le fichier template.php

Toutes les langues

A propos

En savoir plus... Karim Boudjema. Un développeur belge dans les Andes boliviennes.

Voir mon profil sur LinkedInVoir mon profil sur Twitter

>> En savoir plus...

Commentaires récents