node.tpl.php テンプレートファイル
node.tpl.php テンプレートファイルの命名規則とテンプレート内で使用可能なデフォルト変数についてまとめています。
テンプレートの命名規則
テンプレートには、node.tpl.php というベーステンプレートだけでなく、node-story.tpl.php や node-blog.tpl.php などのような、特定の場面にのみ適用するためのサジェスチョンテンプレートを作成・使用することができますが、それらのサジェスチョンテンプレートはベーステンプレートと同じディレクトリ内でのみ動作する仕組みになっていますので、テーマ内でサジェスチョンテンプレートを使用したい場合は、同時にベーステンプレートも作成しておく必要があります。
- ベーステンプレート: node.tpl.php
- 命名規則: node-[type].tpl.php
- サジェスチョンテンプレートのサンプル
-
- node-story.tpl.php -- "ストーリー" コンテンツタイプページ
- node-page.tpl.php -- "ページ" コンテンツタイプページ
- node-blog.tpl.php -- "ブログエントリ" コンテンツタイプページ
- node-book.tpl.php -- "ブックページ" コンテンツタイプページ
- node-forum.tpl.php -- "フォーラムトピック" コンテンツタイプページ
- "ストーリー" コンテンツタイプの場合に読み込まれるテンプレートの順序
-
- node-story.tpl.php
- node.tpl.php
テンプレート内で使用可能な変数
デフォルトのテーマ変数は includes/theme.inc 内などで定義されています。
- ノードの内容を表す変数
-
$title コンテンツのタイトルを返します。テキストのみでリンクはありません。 $content コンテンツの内容を返します。
ティーザーリストページではティーザー部分を、コンテンツ単一ページではコンテンツのすべての内容を返します。$picture ユーザアバターが有効になっている場合に、ユーザアバターの内容を返します。 $date コンテンツの投稿日時を返します。 $links $node->links の配列の内容をリストとして返します。
それぞれのリストには、内容に応じた class が割り当てられ、さらに最初と最後の項目には、それぞれ "first" "last" の class が割り当てられます。$name コンテンツの投稿者名をリンクを含めて返します。 $node_url コンテンツの URL を返します。
URL エイリアスが設定されている場合は、URL エイリアスを返します。$terms コンテンツが関連付けられているカテゴリの配列をリストとして返します。
カテゴリにはそのカテゴリを示す class が設定され、さらに最初と最後のカテゴリには、それぞれ "first" "last" の class が割り当てられます。
また、 リンク先のパスに URL エイリアスが設定されている場合は、URL エイリアスがパスとして設定されます。$submitted コンテンツの投稿者名および投稿日時を返します。
日付のフォーマットには、日付の表示形式(M) が適用されるようです。 - その他の変数
-
$node $node オブジェクトの内容を返します。 $type "story" "page" "blog" などのコンテンツタイプを返します。 $comment_count コンテンツに対して投稿されたコメントの数を返します。 $uid コンテンツ投稿者のユーザ ID を返します。 $created コンテンツが公開された日時を Unix のタイムスタンプで返します。 $zebra テンプレートが読み込まれるたびに読み込み回数が偶数回であるか奇数回であるかを判定し、"odd" または "even" を返します。 $id 1から始まり、テンプレートが読み込まれるたびに 1ずつ加算される数値を返します。 - ノードのステータスを表す変数
-
$teaser 表示しているページがティーザーリストであるかどうかを判定します。 $page 表示しているページがコンテンツの単一ページであるかどうかを判定します。 $promote コンテンツがフロントページへ掲載されているかどうかを判定します。 $sticky コンテンツがリスト上部に固定されているかどうかを判定します。 $status コンテンツが掲載されているかどうかを判定します。 $comment コンテンツへのコメントの設定状況を返します。 $readmore コンテンツにティーザー部分が存在しているかどうかを判定します。 $is_front 表示しているページがフロントページである場合、"TRUE" を返します。 $logged_in 閲覧しているユーザがログインユーザである場合、"TRUE" を返します。 $is_admin 閲覧しているユーザがサイトの管理者である場合、"TRUE" を返します。
このページで使用している「サジェスチョンテンプレート」というのは、drupal.org のドキュメント内に記載されている "Template suggestions" を意訳して作成した名称です。

