ホームページ >ウェブフロントエンド >htmlチュートリアル >Drupal 7 モジュール開発 モジュール作成 最初のページ (hook_menu)_html/css_WEB-ITnose
モジュールを作成するには、「Drupal 7 モジュールの開発と作成」を参照してください
中国語をサポートしたい場合は、ファイル形式を UTF-8、NO BOM として保存する必要があります
---------- ----------------------- ---------------
hook_menu はメニュー項目とページのフィードバックを定義します。
フックを独自のモジュール名に置き換える必要があります。ここでは、my_first_module.module ファイルに my_first_module_menu() を作成します
<?phpfunction my_first_module_menu() { $items = array(); $items['mypage'] = array( 'title' => '第一个模块 ?? 页面', //菜单项的名称 'description' => '我的第一个模块页面', //当鼠标移动到菜单项,显示菜单的说明 'page callback' => 'my_page_view', //产生页面内容 'access callback' => TRUE, //所有人都能访问 'type' => MENU_NORMAL_ITEM, //菜单项显示类型 ); return $items;}function my_page_view() { $output = t('这是模块做的第一个页面。'); return $output;}
注: ?>
とは書かないでくださいキャッシュをクリアしてから http://www.mysite.com/?q=mypage にアクセスしてください。下の図を参照してください
(実際には、http://www.mysite.com/?q=mypage/aaa/bbb にアクセスすると、このページにアクセスします)
$items[] パス
各 $items は [ ] で記述されたパスに対応します。項目が同じパスを使用する場合は、呼び出しの後に $items を記述します。 (一部の記事では、これが $items のパラメーターの重みに関係していると書かれています。重みが順序に影響しないことをテストしました)
[ ] ワイルドカードも使用できます (例: [node/%/edit])。詳細については、次を参照してください: パスのワイルドカード関数hook_menuのセクション
title 必須
未翻訳のテーマ
titleコールバック
テーマを生成する関数。デフォルトは t() です。翻訳したくない場合は、FALSE を設定してください ('title' => t('First Form') と書く必要はありません)
title 引数
t() または の引数に渡します。カスタム関数。パスコンポーネントと組み合わせることができます
参考: メニュー項目のタイトルと説明のコールバック、ローカリゼーション
説明
未翻訳の説明。
ページ コールバック
ユーザーがページ パスにアクセスすると、Web ページを表示する関数を呼び出します。
書かれていない場合は、親メニューのコールバック関数が代わりに実行されます。つまり、$items['mypage'] と $items['mypage/child'] は同じコンテンツを実行します。
フォーム (Form) を作成、検証、送信するための特別なコールバック関数 drupal_get_form() が後で Drupal 7 モジュールで開発されます。具体的には
ページ引数
ページのコールバック関数に渡されます。 上記の例では文字列パラメーターの配列は使用されていません。少し変更してみましょう:
変更後の完全なコードは次のとおりです:
<?phpfunction my_first_module_menu() { $items = array(); $items['mypage/%/edit'] = array( //修改路径 'title' => '第一个模块 ?? 页面', 'description' => '我的第一个模块页面', 'page callback' => 'my_page_view', 'page arguments' => array('hello', 1), //添加参数 'access callback' => TRUE, 'type' => MENU_NORMAL_ITEM, ); return $items;}function my_page_view($arg1, $arg2) { //添加参数传递 $output = t('这是模块做的第一个页面。'); $output .= '<br />' . $arg1 . ' ' . $arg2; //打印参数 return $output;}
キャッシュをクリアし、http://www.mysite.com/?q=mypage/world/edit にアクセスします。次の画像
アクセスコールバック
このページへのアクセス権がある場合はTRUEを返す必要があり、それ以外の場合はFALSEを返します(書かれていない場合、デフォルトはFALSEです)。 false の場合、ページに アクセスが拒否されました プロンプトが表示されます。
type
メニュー項目のプロパティを説明するコード。多くのショートカット コード定数が menu.inc にあります。
ここではデフォルトの項目 MENU_NORMAL_ITEM を使用するため、$items => MENU_NORMAL_ITEM,
に 'type' を記述する必要はありません一般的に使用されるもの:
menu_name
このメニュー項目をナビゲーションの下に置きたくない場合は、ここで指定できます。例: 'menu_name' => 'main-menu'、これはホームとともにメイン メニューに表示されます (パラメータは徐々に改善されます)