ゾーン/リージョンまたはセクション(オメガテーマを使用)テンプレートファイルからノードタイプを取得するにはどうすればよいですか。特定のコンテンツタイプのページ/ノードレベルでテンプレートを上書きする方法を知っていますが、現在表示されている単一のノードページコンテンツタイプのタイプを指す変数や何かを見つけることができません。
ノードにアクセスしている場合、arg(1)
を呼び出すとノードIDが返されます。
$nid = arg(1);
$node = node_load($nid);
$node->type
サブテーマのプリプロセステンプレートで、ゾーンまたはリージョンのプリプロセスファイルを作成します。ファイルを作成する地域の例を見てみましょう(Omega 3テーマの例):
{サブテーマディレクトリ} /preprocess/preprocess-region.inc
そのファイルで、ノードを取得して$ varsにタイプを追加する前処理関数を作成します。
<?php
function {theme_name}_alpha_preprocess_region(&$vars) {
// get the node
$menu_object = menu_get_object();
if (isset($menu_object->type)) {
$vars['node_type'] = $menu_object->type;
}
}
?>
{theme_name}はサブテーマの名前です。この時点で、region--content.tpl.phpファイルの変数node_typeにアクセスできます。