Personnaliser le bloc de login

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

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

Version de Drupal : 

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ù 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 é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 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 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 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";
}