web-dev-qa-db-ja.com

ゾーン/リージョンのtplファイルのコンテンツタイプを取得するにはどうすればよいですか?

ゾーン/リージョンまたはセクション(オメガテーマを使用)テンプレートファイルからノードタイプを取得するにはどうすればよいですか。特定のコンテンツタイプのページ/ノードレベルでテンプレートを上書きする方法を知っていますが、現在表示されている単一のノードページコンテンツタイプのタイプを指す変数や何かを見つけることができません。

1
Duane

ノードにアクセスしている場合、arg(1)を呼び出すとノードIDが返されます。

$nid = arg(1);
$node = node_load($nid);
$node->type
1
Shoaib Nawaz

サブテーマのプリプロセステンプレートで、ゾーンまたはリージョンのプリプロセスファイルを作成します。ファイルを作成する地域の例を見てみましょう(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にアクセスできます。

1
Evil E