Message d'avertissement

The subscription service is currently unavailable. Please try again later.

Faire des modiffications dans le bloc connection user

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 veux faire des modifications dans le bloc user et pour ca je veux avoire le nom de la page et son chemin, ou je trouve le code html de ce bloc.
et aussi les pages css qu'utilie se bloc ?
svp aidez moi :(
merci beaucoup ;)

Forum : 

Qu'est-ce que tu appelles le bloc "user" ? Le menu navigation ?

Au passage une astuce bête et conne pour savoir d'où vient un bloc. Tu vas dans le panneau d'admin des blocs, tu localises la ligne de celui qui t'intéresse et tu survoles son lien "configurer". L'URL visible dans la barre de statut se termine par /. Ensuite tu ouvres le code sources du module portant ce nom, et tu cherches la fonction hook_block (_block()). Et là dedans, tu suis le code en imaginant que le paramètre $op est égal à "view" et $delta au que tu as trouvé. Tu devrais aboutir à un bout de code ou une fonction qui renvoie un tableau associatif avec comme 1ier champ 'subject' pour le titre du bloc et le second 'content' pour son contenu.

Ceci étant dit, modifier le code des modules standard n'est pas une idée top car tu vas perdre la capacité de mise à jour. Vérifie toujours si tu ne peux pas passer par du css, une fonction de thème, et au pire duplique le code dans un module à toi que tu utiliseras à sa place.

merci de votre réponse :)
je viens de faire quelque modification (ajouter connexion utilisateur dans le header)
voici le code que je viens d'utiliser :

<?php
global $user;
if (
$user->uid) {
print
l("Deconnexion " . $user->name,"logout");
}
else {
print (
"<form id="user-login-form" method="post" accept-charset="UTF-8" action="/accueil?destination=accueil"><img src="http://www.site.com/themes/ability/images/user.png" /><input type="text" class="form-text required" value="" size="13" id="edit-name" name="name" maxlength="60"/><br /><img src="http://www.site.com/themes/ability/images/lock.png" /><input type="password" class="form-text required" size="13" maxlength="60" id="edit-pass" name="pass"/><br /><input type="submit" style="margin-left:17px" class="form-submit" value="Connexion" id="edit-submit-1" name="op"/><br /><a title="Créer un nouveau compte d'utilisateur." href="/user/register"><font color="#ffffff">Inscrivez-vous, c'est gratuit !</font></a><br /><a title="Demander un nouveau mot de passe par e-mail." href="/user/password"><font color="#ffffff">(mot de passe oubli&eacute;)</font></a><br /><input type="hidden" value="user_login_block" id="edit-user-login-block" name="form_id"/></form>");
}
?>

je viens de mètre ce formulaire en hot de page.
Le problème est que quand je veux me connecter sur ce formulaire il me dirige vers l'accueil et ne connecte pas, par contre si je met le même formulaire en bas de page il marche trés bien ???
pouvez vous m'aider ;(

Tu ne t'offenses pas si je dis que c'est horrible ce que tu as fait ? :-) Pourquoi faire un print alors que tu aurais pu encadre cela proprement dans un ?> <div... <?php ?

Sinon pour ton problème de redirection, tu ne peux pas copier le code d'un formulaire comme cela, essayer plutôt de remplacer ton code par

print drupal_get_form('user_login_block');

Merci
Donc c'est impossible d'utiliser un formulaire ? !!
si c'est impossible, peut tu m'expliquer pour quoi mon code ne fonctionne pas, question de curiosité !!
2- si je veux supprimé les

  • de :
  • Créer un nouveau compte
  • Demander un nouveau mot de passe
  • merci beaucoup ;)

    Mais non c'est pas impossible, la ligne "print drupal_get_form(...);" renvoie justement le formulaire de connexion prêt à l'usage.

    Pour supprimer des champs dans ce formulaire, tu peux 1/ utiliser css 2/ faire un hook_alter_form (je te conseille le 1/). Ceci dit la création de nouveau compte est configurable dans le paramétrage des utilisateurs, ça te fais un lien de moins.

    Enfin la raison pour laquelle ça ne marche pas est :
    1/ tu as fixé l'URL de l'attribut action de ta balise form, alors que par un drupal_get_form(..) tu aurais une URL différente en fonction de la page où tu te trouves. Ca c'est pour la redirection vers la home.
    2/ Drupal a besoin de préparer le formulaire lui-même pour correctement recevoir ses données, tu dois donc passer par drupal_get_form de sorte à ce qu'il prépare ses identifiants de formulaire pour proprement recevoir la connextion.

    Fais comme indique yoran puis créer un module (dans le dossier sites/all/modules, que tu dois créer si il n'existe pas) :
    - un dossier : mon_module
    - à l'intérieur un fichier mon_module.info (copie colle celui d'un autre module et change le nom pour "mon_module")
    - également dans le dossier mon_module : un fichier mon_module.module.

    dans ton fichier mon_module.module écrit :

    <?php
     
    /**
       * Implementation of hook_form_alter().
       */
    function mon_module_form_alter(&$form, $form_state, $form_id) {
        switch (
    $form_id) {
          case
    'user_login_block':
           
    $form['mon_nouvel_item'] = array (
             
    '#type' => 'item',
             
    '#value' => 'incrivez vous, c\'est gratuit !',
            );
            break;
      }
    }
    ?>

    Va dans l'admin puis active ton module.

    C'est la bonne démarche pour modifier un formulaire de Drupal ;-)

    Dans action tu mets l'URL de la page où tu te trouves. Mais une fois de plus, cela ne MARCHERA PAS. Tu ne peux pas créer un formulaire Drupal de cette manière. Si c'était le cas, ton code authentifierait l'utilisateur avec juste une mauvaise redirection. Or ce n'est pas le cas. Tout le monde te donne la bonne marche à suivre, maintenant si tu veux persister dans ta voie, tu en es bien évidement libre.