Ошибка реализации Drupal 7 .10 hook_menu - PullRequest
1 голос
/ 27 января 2012

Я пытаюсь выяснить, почему реализация hook_menu больше не работает после обновления с 7.4 до 7.10 для пользовательского модуля. Ссылки на меню работали должным образом до обновления до последней версии. после обновления все пользовательские ссылки модуля удаляются из таблицы menu_links и menu_router.

После многих попыток я также установил свежую версию для D7.10 и создал простой пользовательский модуль только с одной ссылкой на элемент (см. Код ниже) только для целей тестирования. Ссылка не реализуется после включения модуля. Таблицы menu_links и menu_routers не обновляются. Я искал много возможных ошибок и решений без успеха. Действительно сложены сейчас. Что заставляет меня сомневаться в том, что я не вижу никого другого с такой же проблемой ... Есть предложения? Спасибо

function misite_menu() {
$items = array(); 
$items['a/main'] = array(
'title' => 'main',
 'page callback' => 'main',
 'description' => t('Main front page'),
 'access callback' => TRUE,
 );
return $items;  
}

function misite_theme() {
return array(
'main' => array
(
  'template' => 'main',
  'variables' => array('title' => NULL),
),

);  
}

function main() {

$path = drupal_get_path('module', 'a'); 
$title = t('');
$build['mainelement'] = array(
'#theme' => 'main',
'#title' => $title,
);
$output = drupal_render($build);
return $output;
}

1 Ответ

1 голос
/ 28 января 2012

По виду этой строки:

$path = drupal_get_path('module', 'a'); 

Ваш модуль называется a.

В Drupal соглашение по именованию хуков: MODULE_NAME_name_of_hook() (см. http://api.drupal.org/api/drupal/includes--module.inc/group/hooks/7).

Это верно как для hook_menu(), так и hook_theme(), поэтому в вашем случае, если модуль называется a вашими функциями должны быть имена a_menu() и a_theme().

Если вы вносите изменения в какие-либо хуки, убедитесь, что вы очищаете кеш Drupal, чтобы обновлять соответствующие реестры.

...