0

モジュールからの実装でテンプレートファイルを提案してhook_preprocess_page()いますが、提案されたテンプレートファイルは使用されていないようです。

テンプレート ファイルは、モジュールを含むディレクトリにある page--terminal-template.tpl.php であり、これは の実装ですhook_preprocess_page()

function terminal_preprocess_page(&$variables) {
  if (arg(0) == "terminal") {
    $variables['theme_hook_suggestions'][] = "page__terminal_template";
  }
}

誰でも私を助けてもらえますか?

4

2 に答える 2

0

前処理および処理機能は、モジュールによって実装できます。実際、 theme()のドキュメントには、これらの関数が呼び出される順序が示されているときに、それらがリストされています。

実際のところ、Drupal はテーマ ディレクトリで提案されたテンプレート ファイルを探します。次の選択肢があります。

  1. モジュールが提案しているテンプレート ファイルを、現在使用されているテーマを含むディレクトリに配置します。
  2. モジュールのアクティブ化時にビュー テンプレートを読み込むで報告された内容に従って、モジュール ディレクトリからテンプレート ファイルを読み込みます。
  3. テーマによって実装される前処理機能で使用するテンプレート ファイルを提案する

他の質問で報告された内容に従って、モジュール ディレクトリにあるテンプレート ファイルを使用できます。唯一の問題は、現在有効になっているテーマで使用されているデフォルトのページ テンプレートとは異なる汎用テンプレートを使用することです。

現在有効になっているテーマのテンプレート ファイルを追加する場合は、新しいテンプレート ファイルをテーマに追加した後で、drupal_theme_rebuild()を呼び出して、テンプレート ファイルを含むディレクトリを Drupal に再スキャンさせる必要があります。

于 2013-05-19T08:49:25.960 に答える