2012-01-27 9 views
1

私は、カスタムモジュールの7.4から7.10へのアップグレード後にhook_menuの実装がもう機能しない理由を理解しようとしています。最新のバージョンに更新するまで、メニューリンクは正常に動作していました。更新後、すべてのカスタムモジュールリンクがテーブルmenu_linksおよびmenu_routerから削除されます。Drupal 7 .10 hook_menu実装エラー

多くの試みの後で、D7.10用の新バージョンもインストールし、テスト目的でのみ、1つのアイテムリンクのみを持つ簡単なカスタムモジュールを作成しました(下記のコードを参照)。モジュールが有効になるとリンクは実装されません。テーブル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参照)。

モジュールaあなたの関数が名前a_menu()a_theme()あるべきと呼ばれるである場合、これはあなたのケースでそうhook_menu()hook_theme()の両方に当てはまります。

フックを変更する場合は、Drupalのキャッシュをクリアして、関連するレジストリが更新されるようにしてください。

+0

こんにちは、正しい!それは私の問題を解決しました。 しかし、私はまだコードがそれがあった理由を把握することができません、V 7.4で正常に動作していました。 ありがとうございます。 – arnaudom