2010-11-16 3 views
0

info-файл прав, следующий код моего модуля. когда я обращаюсь к http://localhost/drupal/mymenu, почему он не может работать.drupal - hook_menu

<?php 
function mymenu(){ 
    $item = array(); 
    $item['mymenu'] = array(
     'description'=>'test1', 
     'page callback'=>'mymenu_test', 
     'access arguments' => array('access mymenu'), 
    'type'=>MENU_CALLBACK, 
); 
return $item; 
} 

    function mymenu_perm(){ 
    return array('access mymenu'); 
    } 

function mymenu_test() { 
$output = 'hello world'; 
return $output; 
} 

Я дал анонимное разрешение доступа «mymenu».

ответ

6

Это должно быть

function mymenu_menu() { ... }

Вам не нужно $ пункт = массив(); там также.

+0

Вы правы, спасибо. – runeveryday

1

всякий раз, когда вы видите функцию ИПН с hook_something, вы должны заменить «крючок» часть с именем модуля

в данном случае это действительно mymenu_menu

+0

понял, спасибо. – runeveryday

-2

вам нужно очистить кэш меню (в минимум два раза в drupal 7) после добавления пункта меню с помощью hook_menu.

1

Попробуйте следующее: используйте имя функции как modulename_menu и используйте 'access arguments' => array('access content').

<?php 
    function test_menu(){ 
    $item = array(); 
    $item['mymenu'] = array(
    'description'=>'test1', 
    'page callback'=>'mymenu_test', 
    'access arguments' => array('access content'), 
    'type'=>MENU_CALLBACK, 
); 
    return $item; 
    } 

    function mymenu_test() { 
    $output = 'hello world'; 
    return $output; 
    } 
Смежные вопросы