関数名のこれらの違いは何ですか?template.phpでそれぞれを上書きできるので?
MYMODULE_
代わりに、template_
またはtheme_
カスタムモジュール内で、作成したモジュールを使用できることです。したがって、基本的にはこれらのいずれかをhook_
モジュールのように扱うことができます。これは私が自分をしっかりと握っているものではありません。@kiamlalunoの応答をもう一度読む必要があると思います。興味深い質問です。
関数名のこれらの違いは何ですか?template.phpでそれぞれを上書きできるので?
MYMODULE_
代わりに、template_
またはtheme_
カスタムモジュール内で、作成したモジュールを使用できることです。したがって、基本的にはこれらのいずれかをhook_
モジュールのように扱うことができます。これは私が自分をしっかりと握っているものではありません。@kiamlalunoの応答をもう一度読む必要があると思います。興味深い質問です。
回答:
theme_で始まる名前の関数はテーマフックですが、template_で始まる名前の関数は、相対テーマフックを実装するモジュールによって実装される前処理および処理関数です。
たとえば、theme_image()は、イメージをレンダリングするテーマフックです。 template_preprocess_nodeは()モジュールが実装ノードモジュールによって実装前処理機能であるノードテーマフック。(node_theme()の最初のコード行、Nodeモジュールによって実行されるhook_theme()実装を参照してください。)ノードテーマフックの前処理関数を実装できる他のモジュールがありますが、これらのモジュールの場合、その前処理関数はMYMODULE_preprocess_node()
、ないtemplate_preprocess_node()
。
テーマは、テーマフック(bartik_menu_tree()を参照)とプリプロセス関数(bartik_preprocess_node()を参照)の両方を実装できます。違いは、現在のテーマがBartikテーマであるbartik_menu_tree()
場合、デフォルトの実装(theme_menu_tree())をbartik_preprocess_node()
オーバーライドしますがtemplate_preprocess_node()
、はオーバーライドしませんが、その後に実行されます。(theme()のドキュメントを参照してください。)
2つの接頭辞を使用する場合、その目的は関数の目的を文書化することです。theme_は例の両方で使用された場合であっても、違いtheme_image()
とはtheme_preprocess_node()
まだ明らかになり、それはあなたがtheme_を以下のものを読むために必要であろう。現在の実装では、関数名の最初の単語を読み取るだけです。
template_process_
/template_preprocess_
です。それが違いです-1つはテーマ関数、もう1つはテーマのプロセス/前処理関数です