2010-08-16 20 views
1

Je suis en train d'ajouter un onglet à mon menu et utiliser cette drupal fonction, pour le tester:MENU_LOCAL_TASK Problème

function my_module_menu() { 
    $items['user/%user/classifieds'] = array(
    'title' => 'Action', 
    'type' => MENU_LOCAL_TASK, 
    'page callback' => 'my_module_page', 
    'page arguments' => array(1), 
    'weight' => 2, 
); 
    return $items; 
} 

Mais rien ne montre. Pourquoi?

Répondre

1

Vous avez besoin d'un access callback, ou à tout le moins, access arguments (access callback par défaut user_access() si non défini):

function my_module_menu() { 
    $items['user/%user/classifieds'] = array(
    'title' => 'Action', 
    'type' => MENU_LOCAL_TASK, 
    'page callback' => 'my_module_page', 
    'page arguments' => array(1), 
    'access arguments' => array('access content'), 
    'weight' => 2, 
); 
    return $items; 
} 

Assurez-vous aussi de reconstruire le menu ou effacer le cache lors de la modification hook_menu().

+0

hmmmm ... J'ai utilisé le code que vous avez posté, mais je ne peux toujours pas voir l'onglet ... :( – Lars

+0

J'ai également effacé le cache en emtying toutes les tables avec _cache dans le nom. – Lars

+1

La fonction 'my_module_page' est-elle définie et renvoie-t-elle une chaîne contenant la sortie de la page? La seule chose que vous devez reconstruire en changeant' hook_menu' est le menu. [Devel] (http: //drupal.org/project/devel) vous permet de le faire séparément, sinon, allez dans * Configuration du site * -> * Performance * et cliquez sur le bouton * Effacer les données mises en cache * –