1

デフォルトのメインメニューに項目のリストがあります。テンプレートをオーバーライドしようとしているので、各項目とカスタム テンプレート/テーマをメニュー全体で反復処理できます。

echo theme('links', array('links' => menu_navigation_links('main-menu', 0)));

main-menu は、drupal が提供するデフォルトのメニュー ID です。テーマの最初のパラメーターは、デフォルトの「リンク」テンプレートを使用するように指示することです-これは私が理解していることです。mytheme ディレクトリにある MY mainmenu.tpl.php を使用するように指示するにはどうすればよいですか?

という名前のファイルを作成してmainmenu.tpl.php呼び出してみました

theme('links__mainmenu.tpl.php')

mainmenu.tpl.phpすべてが消えた場合に備えて、デフォルトのリンクへのフォールバックを提供するため。私はファイルの名前を間違っているか何かにしていますが、一生それを理解することはできません。ヘルプ :)

乾杯、アレックス

4

2 に答える 2

4

モジュールのデフォルトのテーマはhook_themeメソッドで定義されます。.tpl.phpこの関数を使用すると、テーマ ファイル ( ) とそれらに渡される変数を宣言できます。デフォルトのテーマ ファイルを宣言するには、templateフィールドを使用します。

function hook_theme($existing, $type, $theme, $path) {
  return array(
    'mymodule_display' => array(        /* displayable name */
      'template' => 'mymodule_display', /* template file, leave off .tpl.php */
      'variable' => array(...),         /* associative array of vars used */
    )
  );
}

このリンクには、より詳細な例が含まれています。

モジュールのデフォルト テーマを呼び出すにはtheme()、元の投稿に示されているように、メソッドを使用します。何かのようなもの:

<?php echo theme('mymodule_display', array(/* vars */));

二重下線は代替テーマを定義するために使用され、最後のテーマが優先されます。したがって、解決できない場合にのみtheme('links__mymodule_display', ...)Drupal がLinksモジュール テーマを使用することを意味します。mymodule_display

于 2011-01-20T18:14:30.280 に答える
0

基本的なものですが、テーマは基本テーマを実装しており、テーマはデフォルトに設定されていますか?

于 2011-01-20T18:02:20.983 に答える