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



Commentaires récents
il y a 2 semaines 2 jours
il y a 2 semaines 6 jours
il y a 3 semaines 5 jours
il y a 4 semaines 35 min
il y a 5 semaines 6 jours
il y a 13 semaines 19 heures
il y a 13 semaines 2 jours
il y a 13 semaines 2 jours
il y a 13 semaines 2 jours
il y a 13 semaines 2 jours