Personnalisation et surcharge du Login Utilisateur, enregistrement et réinitialisation du mot de passe
Traduction de la page http://drupal.org/node/350634
publiée / actualisée le 1 Mars 2011 sur drupal.org
Personnaliser le login Utilisateur, l'enregistrement et la réinitialisation du mot de passe est assez simple et utilise les concepts suivants :
- pré-traitement pour initialiser les variables
- dépôt des fonctions dans le registre de thèmes
- création d'un ou plusieurs gabarits de thèmes.
Étape 1
Dans le dossier principal de votre thème, créez ou éditez votre fichier template.php.
Étape 2
Recherchez une fonction appelée yourtheme_theme() et modifiez-la pour lui ajouter ces valeurs retour ou, si elle n'existe pas, ajoutez le code suivant :
<?php
/**
* Registers overrides for various functions.
*
* In this case, overrides three user functions
*/
function yourtheme_theme() {
return array(
'user_login' => array(
'template' => 'user-login',
'arguments' => array('form' => NULL),
),
'user_register' => array(
'template' => 'user-register',
'arguments' => array('form' => NULL),
),
'user_pass' => array(
'template' => 'user-pass',
'arguments' => array('form' => NULL),
),
);
}
?>
Remarques sur ce code :
- Modifiez le nom de la fonction : remplaçez « yourtheme » par le nom de votre thème.
- La valeur de template peut être la même pour les trois items. Dans cet exemple, on utilise un gabarit différent pour chaque cas : user-login, user-register et user-pass.
- Le nom du gabarit doit utiliser un tiret et non un signe souligné.
- C'est bien user_pass et non user_password.
Étape 3
Maintenant, implémentez trois fonctions de pré-traitement (pre-process functions). Il y a de meilleures façons de coder ce qui suit, mais ça marche aussi très bien comme ça, alors n'hésitons pas !
<?php
function yourtheme_preprocess_user_login(&$variables) {
$variables['intro_text'] = t('This is my awesome login form');
$variables['rendered'] = drupal_render($variables['form']);
}
function yourtheme_preprocess_user_register(&$variables) {
$variables['intro_text'] = t('This is my super awesome reg form');
$variables['rendered'] = drupal_render($variables['form']);
}
function yourtheme_preprocess_user_pass(&$variables) {
$variables['intro_text'] = t('This is my super awesome insane password form');
$variables['rendered'] = drupal_render($variables['form']);
}
?>
Remarques sur ce code :
- Modifiez le nom de la fonction : remplaçez « yourtheme » par le nom de votre thème.
- La ligne $variables['intro_text'] place le texte qui la suit dans la variable $variables, qui est, par la suite, acheminée au gabarit via la variable $intro_text.
- La deuxième ligne façonne le formulaire et ajoute le code dans le tableau $variables, qui est passé au gabarit via la variable $rendered.
Étape 4
Créez les gabarits dont les noms correspondront aux valeurs passées à l'item template. Dans cet exemple nous n'avons besoin que de deux fichiers : user-login.tpl.php et user-register.tpl.php (veillez à taper un tiret et non un signe souligné)
Étape 5
Copiez le code suivant dans le fichier user-login.tpl.php. Modifiez-le si besoin pour user-login.tpl.php et user-register.tpl.php:
<?php print $intro_text ; ?> </p>
<div class="my-form-wrapper">
<?php print $rendered ; ?>
</div>
?>
Étape 6
Sauvegardez ces fichiers dans le dossier principal de votre thème.
Étape 7
Reconstruisez le cache : menu Administrer » Configuration du site » Performance » clic sur « Supprimer les données du cache » en bas de la page.
Maintenant, votre page de connexion Utilisateur contiendra le nouveau texte issu de la fonction de pré-traitement, et les fichiers tpl.php pourront être modifiés pour répondre aux besoins de votre site.
- Version imprimable
- 12180 lectures
-
