Drupal 7のサイトで、コンテンツタイプがイベントです。
5つのオプション(パーティー、会議、会議など)を持つ「イベントタイプ」と呼ばれる分類法があります。
スタンドアロンイベントノードのスタイルを設定するためのnode--event.tpl.phpという名前のテンプレートが1つあります。
テンプレートファイル内から特定のイベントノードに適用される分類用語を検出するにはどうすればよいですか?イベントに関連付けられた分類用語に基づいて、プレゼンテーションロジックの一部を変更する必要があります。
URLで分類法を使用していないため、イベントタイプを検出する別の方法を見つける必要があります。 Develで、分類基準の値を操作するための値が表示されないようです。
最初の回答で触れたように、前処理関数を使用する必要がありますが、おそらくノードテンプレート用です。
_node.tpl.php
_テンプレート(およびすべての導関数)の場合、関数は次のように定義されます。
_MYTHEME_preprocess_node(&$vars) {
}
_
テーマの_template.php
_ファイルが表示されます。
Drupalがこの関数を認識して実行するようにテーマレジストリをリセットするには、Drupalキャッシュをクリアする必要があります。
関数の_$vars
_引数は、後でtplファイルに現れるすべてのテンプレート変数を含む配列です(_$vars['foo']
_は、tplファイルでは_<?php print $foo; ?>
_として利用されます)。
これには、ネイティブの_$node
_オブジェクトも含まれます。これにより、_$node->taxonomy
_を検査し、それに応じて後続の変数を作成できます。これらはtplファイルで利用できます。
_$vars
_のコンポーネントを検査および発見する最良の方法は、Develモジュールのdpm()
関数を使用することです。この関数は、変数をテーマのメッセージボックスに適切に出力します。
したがって、develを有効にし、_template.php
_に以下を作成し、キャッシュをクリアし、ノードの表示を更新して、そこから作業します。
_MYTHEME_preprocess_node(&$vars) {
dpm($vars);
}
_
また、Drupalcon Copenhagenまたは Drupalハンドブックページ の Drupalプリプロセス関数のセッション にも興味があるかもしれません。