Afficher «se connecter» dans le menu utilisateur lorsqu'il n'est pas connecté


8

Je me demande, où est le code qui cache "Mon compte" & "Déconnexion" dans le menu utilisateur? Juste curieux, d'apprendre de ce code. Une façon de savoir où chercher si vous voulez savoir quelque chose comme ça?

J'ai ajouté un lien "Connexion" à ce menu et je souhaite le masquer lorsque personne n'est connecté.

Réponses:


13

Lorsque vous rencontrez un problème avec un lien, vous devez rechercher dans le code a hook_menu(). Ensuite, vous devez deviner dans quel module il se trouve. Dans ce cas, jetez un œil au module utilisateur de base:

function user_menu() {
  $items['user/login'] = array(
    'title' => 'Log in',
    'access callback' => 'user_is_anonymous',
    'type' => MENU_DEFAULT_LOCAL_TASK,
  );

  return $items;
}

Notez la 'access callback' => 'user_is_anonymous',ligne. Cela signifie que vous ne pouvez le faire que si vous êtes anonyme (c'est-à-dire non connecté). Cela signifie que vous devriez simplement pouvoir faire une entrée de menu avec "utilisateur / connexion" comme chemin, et le lien ne s'affichera que lorsque vous serez déconnecté.


16

Vous pouvez ajouter un lien de menu vers user/login, le rappel d'accès qui vérifie qu'il n'est affiché qu'aux utilisateurs anonymes. Tout comme user/logoutn'est visible que pour les utilisateurs connectés.

La définition de ces rappels () sont, comme mentionné dans l'autre réponse, dans user_menu()


+1 et la même chose est vraie pour user/register- créez le lien de la manière habituelle dans l'interface utilisateur du menu, et il n'apparaît que pour les utilisateurs qui ne sont pas connectés automatiquement.
user56reinstatemonica8

1

Vérifiez les définitions de menu user_menu()dans le module utilisateur. Le rappel d'accès détermine quand l'élément de menu sera affiché.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.