Répondre au commentaire

Modifier (theming) le formulaire de commentaire en Drupal 6.x

Aujourd’hui je recevais un message d’une lectrice me demandant d’ajouter dans le formulaire de commentaire la phrase suivante : "Nous vous prions de ne pas inclure de demandes pour des prescriptions dans vos commentaires". Ceci était du au fait que beaucoup de visiteurs confondaient le site avec un site de prescriptions médicales en ligne.

Etant donné que nous ne sommes pas au niveau de la logique, mais bien au niveau de la présentation, nous allons donc chercher à modifier la présentation du formulaire nous permettant d'introduire un nouveau commentaire.

L’ID de ce formulaire est "comment-form", mais comme vous le savez, pour tout formulaire, les fonctions s’écrivent avec un tiret bas (_) au lieu d’un tiret du milieu (-). Dans le Theme Registry j’ai donc chercher l’élement (themeable element) comment_form et je ne l’ai pas trouvée. C’est normal, il n’existe pas par défaut (sauf si votre thème l’implémente déjà). Il faudra donc le créer dans le Theme Registry et ensuite créer soit une fonction preprocess soit un fichier du type .tpl.php

Je préfère toujours travailler le theming avec des fichiers .tpl.php car ils sont plus simples à lire et à utiliser par les designers.

Nous allons d’abord déclarer notre nouvel élément (themeable element) au Theme Registry. Pour cela, nous allons ajouter la fonction suivante dans notre fichier template.php:

<?php
/**
* Implementation of hook_theme().
* Allow themable form: comment_form. Registers the function comment_form() with the Drupal Theme registry
* comment_form is the ID of the form - <form id="comment-form" method="post" accept-charset="UTF-8" action="/comment/reply/1">
*/

function myTheme_theme(){
  return array(
   
'comment_form' => array(
     
'arguments' => array('form' => NULL),
     
'template' => 'comment-form',
    ),
  );
}
?>

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

Cette fonction déclare que le formulaire avec l’ID 'comment-form' sera personnalisé par le fichier template 'comment-form.tpl.php', qui recevra comme argument le vecteur (array) $form qui contient toute les informations de notre formulaire.

Nous allons ensuite créer dans le répertoire de notre thème le fichier comment-form.tpl.php comme suit:

<?php
/**
* @file comment-form.tpl.php
*
* Theme implementation to display a comment form.
* @param $form
*   The form that  is to be themed.
*/

?>

<div class="comment-guideline">
  <?php print t('<h4>Please do not ask for prescriptions with this form. Just comments for the article above</h4>'); ?>
</div>

<?php
 
print drupal_render($form);
?>

N’oubliez pas le render de votre formulaire à la fin de votre fichier tpl.

N’hésitez pas à poser vos questions ou de poster un commentaire.

Pour plus d’infos :

http://api.drupal.org/api/drupal/developer--hooks--core.php/function/hoo...
http://systemseed.com/blog/how-customise-comment-form-drupal-6
http://www.digett.com/2010/06/29/how-theme-comment-form-drupal-6
http://1013.fi/cms/drupal-comment-form-theming
http://data.agaric.com/node/2398
Super pour les développeurs: http://www.lullabot.com/articles/overriding-theme-functions-in-modules

Tags:

Répondre

Le contenu de ce champ sera maintenu privé et ne sera pas affiché publiquement.
  • Les adresses de pages web et de messagerie électronique sont transformées en liens automatiquement.
  • Tags HTML autorisés : <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd><img>
  • Vous pouvez publier du code en utilisant les balises <code>...</code> (generic) ou bien <?php ... ?> (PHP colorié).
  • Les lignes et les paragraphes vont à la ligne automatiquement.

Plus d'informations sur les options de formatage

By submitting this form, you accept the Mollom privacy policy.

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