2010-04-29 5 views
2

J'essaie d'apprendre Drupal 6. Je veux enregistrer le chemin '/ topic' à un MENU_CALLBACK en utilisant hook_menu(). Voici ce que j'ai:Drupal - comment enregistrer un MENU_CALLBACK accessible à tous les utilisateurs (même anonymes)?

function mymodule_menu() { 
    $items = array() 
    $items['foo'] = array( 
     'page callback' => 'show_page_foo', 
     'access callback' => 'user_access', 
     'access arguments' => array('access foo content'), 
     'type'  => MENU_CALLBACK 
    ); 
} 
function show_page_foo() { 
    //show foo page 
} 

Cela fonctionne très bien pour un utilisateur connecté. Mais quand je visite le chemin en tant qu'utilisateur anonyme, il affiche le message 'Accès refusé'. Quelles doivent être les valeurs 'access callback' et 'access arguments' pour que cela soit accessible à tous les visiteurs?

Je me souviens que je fait ce travail en disant simplement 'access' => TRUE dans Drupal 5. Ne fonctionne plus dans Drupal 6.

+1

Je suis sûr que vous avez corrigé cela maintenant, mais regardez l'orthographe des 'arguments' ici. – lazysoundsystem

Répondre

5

Vous pouvez utiliser la permission comme vous montrer et de donner l'autorisation aux utilisateurs anonymes.

Vous pouvez également faire

'access callback' => TRUE 
1

'access callback' devrait être une fonction renvoyant une valeur booléenne et 'access callback' => TRUE fonctionnera bien. De toute façon je vous suggère de ne pas utiliser une valeur constante, pour un contrôle d'accès plus propre. Utilisez

'access callback' => 'user_access', 
'access arguments' => array('access content'), 

à la place, c'est une autorisation générique suffisante. Ou essayez la permission qui correspond le mieux à vos besoins. Vous pouvez omettre le rappel d'accès lui-même, puisque user_access est utilisé par défaut.

Questions connexes