2012-01-27 53 views
1

我想弄清楚爲什麼hook_menu實現不再工作後,從7.4升級到7.10自定義模塊菜單鏈接正常工作,直到更新到最新版本。更新後,所有自定義模塊鏈接將從表menu_links和menu_router中刪除。Drupal 7 .10 hook_menu執行錯誤

經過多次嘗試,我還爲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

從這一行的樣子:

$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的緩存,以便更新相關的註冊表。

+0

嗨,對!這解決了我的問題。 但是,我仍然無法弄清楚爲什麼代碼是這樣的,在V 7.4中工作正常,沒有任何註冊問題。 非常感謝。 – arnaudom 2012-01-31 07:12:54