Submitted by jeanguy on
Bonjour,
je souhaiterais modifier mon bloc de login en faisant ceci :
- mettre les termes "identifiant" et "mot de passe" dans les zones de saisie
- modifier le texte du bouton "Se connecter"
J'ai réussi à modifier l'apparence graphique sans problème avec la CSS mais là il me semble que l'on rentre plus en profondeur en voulant modifier les "values" et autres "label".
Mais je n'ai pas trouvé où faire ça ?
Pour le bloc de recherche il existe un module qui permet de le personnaliser très facilement, peut-être qu'il existe une version pour le bloc de login ?
Merci !
Jean-Guy
Hello, je sais pas si y'a un
Permalien Soumis par steeff le 31 Mars, 2010 - 17:38
Hello,
je sais pas si y'a un module qui te permet de faire ça d'office mais tu peux le faire en utilisant le hook_form_alter dans un module que tu crées.
dans cette fonction, il faut mettre ce code (valable pour le formulaire de la page "user" et du block login)
if($form_id=="user_login" || $form_id=="user_login_block") {
$form['name']['#value'] = "salut";
$form['submit']['#value'] = "on y va";
}
pour pré-remplir le nom d'utilisateur et changer le label du bouton. c'est + chaud pour modifier le mot de passe vu que c'est un champ password...
sinon, tu peux aussi passer par du javascript
$('input#edit-name').attr('value','salut');
Hey, merci steeff Tu sais où
Permalien Soumis par jeanguy le 31 Mars, 2010 - 18:09
Hey, merci steeff
Tu sais où je peux trouver une doc compréhensible sur la manière de créer un module comme tu le proposes ?
J'espérais que ce serait plus simple mais si ta méthode permet d'obtenir ce dont j'ai besoin alors je vais me lancer :)
salut, alors voici les
Permalien Soumis par steeff le 31 Mars, 2010 - 19:28
salut,
alors voici les étapes minimales pour créer un module.
créer l'arborescence de répertoire suivante : sites/all/modules/monmodule
dans le répertoire monmodule crée un fichier nommé monmodule.info
avec le contenu
name = mon module
description = ma description
package = custom
core = 6.x
crée ensuite dans le même répertoire un autre fichier appelé monmudule.module
dans celui-ci tu mets
<?php
function monmodule_form_alter(&$form, &$form_state, $form_id) {
if($form_id=="user_login" || $form_id=="user_login_block") {
$form['name']['#value'] = "salut";
$form['submit']['#value'] = "on y va";
}
}
active monmodule et tu verras le formulaire de login se modifier.
merci steeff ! Ca marche
Permalien Soumis par jeanguy le 1 Avril, 2010 - 18:37
merci steeff !
Ca marche nickel, merci pour la petite explication je peux me vanter d'avoir créer un module perso ! et ça me sera bien utile dans la suite de mon apprentissage.
Au cas où, j'ai encore une petite question ...
Avec le module "custom_search" cela place le mot "rechercher" dans la zone de saisie pour la recherche et quand je clique dessus le mot "rechercher" disparait automatiquement.
Avec mon nouveau module, j'ai réussi à mettre "identifiant" dans la zone de saisie du login mais quand je clique dessus "identifiant" ne disparait pas ... ce qui serait mieux :)
Est-ce juste une question de CSS ? Je vais étudier le module "custom_search" dès que j'ai un peu de temps pour voir comment ça marche là-dedans mais si tu avais une idée sur la question ...
EDIT : en fait, il y a un problème avec le mot "identifiant" passé comme value au champ de login ... je ne pouvais me reconnecter au site ensuite car j'imagine qu'il prenait "identifiant" comme nom d'utilisateur (même si je tapais autre chose). J'ai supprimé ça et ça remarche. J'aimerai toujours avoir "identifiant" et "mot de passe" dans mes champs par contre ... si une idée passe par là :)
JG
salut, je me suis un peu
Permalien Soumis par steeff le 2 Avril, 2010 - 11:54
salut,
je me suis un peu planté dans le code du module, c'est pas value qu'il faut mettre mais default_value.
sinon comme tu l'as expérimenté, il prend "identifiant" quoique tu mettes dans le champs...
voici donc le bon code
<?php
function monmodule_form_alter(&$form, &$form_state, $form_id) {
if($form_id=="user_login" || $form_id=="user_login_block") {
$form['name']['#default_value'] = "salut";
$form['submit']['#value'] = "on y va";
}
}
pour faire en sorte qu'il disparaisse quand tu cliques dans le champs, il faut utiliser du javascript...
Salut, Je suis confronté au
Permalien Soumis par FFFFFFFab le 2 Juin, 2010 - 16:36
Salut,
Je suis confronté au même besoin. Par contre est-ce nécessaire d'implémenter cette fonction dans un module ?
J'ai essayé de l'implémenter tout simplement dans le template.php de mon thème, en utilisant "user" à la place de "monmodule" et ça a l'air de fonctionner sans problème :
function user_form_alter(&$form, &$form_state, $form_id) {
$form['name']['#default_value'] = "salut";
$form['submit']['#value'] = "on y va";
}