page.tpl.php テンプレートファイル
page.tpl.php テンプレートファイルの命名規則とテンプレート内で使用可能なデフォルト変数についてまとめています。
テンプレートの命名規則
テンプレートには、page.tpl.php というベーステンプレートだけでなく、page-front.tpl.php や page-node.tpl.php などのような、特定の場面にのみ適用するためのサジェスチョンテンプレートを作成・使用することができますが、それらのサジェスチョンテンプレートはベーステンプレートと同じディレクトリ内でのみ動作する仕組みになっていますので、テーマ内でサジェスチョンテンプレートを使用したい場合は、同時にベーステンプレートも作成しておく必要があります。
- ベーステンプレート: page.tpl.php
- 命名規則: page-[front|internal/path].tpl.php
- サジェスチョンテンプレートのサンプル
-
- page-front.tpl.php -- フロントページ
- page-admin.tpl.php -- "adomin" を内部パスの一部に持つすべてのページ(管理ページ)
- page-node.tpl.php -- "node" を内部パスの一部に持つすべてのページ
- page-node-1.tpl.php -- "node" および "1" を内部パスの一部に持つすべてのページ
- page-node-edit.tpl.php -- "node" および "edit" を内部パスの一部に持つすべてのページ
- "http://www.example.com/node/1/edit" という URL の場合に読み込まれるテンプレートの順序
-
- page-node-edit.tpl.php
- page-node-1.tpl.php
- page-node.tpl.php
- page.tpl.php
※ 内部パスを使用したテンプレート名は、パスに含まれるアーギュメントをハイフン(-)で区切った形式となります。
テンプレート内で使用可能なテーマ変数
デフォルトのテーマ変数は includes/theme.inc 内などで定義されています。
- 全般的なユーティリティ変数
-
$base_path ベースとなる URL を内部パスで返します。 通常 "/" が返されます。 $css 現在のページの CSS ファイルを配列で返します。 $directory "sites/all/themes/mytheme" のような現在のテーマまでのパスを返します。 $is_front 表示しているページがフロントページである場合、"TRUE" を返します。 $logged_in 閲覧しているユーザがログインユーザである場合、"TRUE" を返します。 $is_admin 閲覧しているユーザがサイトの管理者である場合、"TRUE" を返します。 - ページのメタデータとして使用される変数
-
$language 言語情報を "language" オブジェクトとして返します。 $language->language <html> タグの lang 属性の値などに使用される "ja" のような言語コードを返します。 $language->dir <html> タグの dir 属性の値として使用される "ltr" または "rtl" の文字方向を返します。 $head_title "コンテンツタイトル | サイト名" のような、通常、<title> タグ内で使用される文字列を返します。 $head <meta> タグや <link> タグなどにセットされた内容があれば、その内容を返します。 $styles <style> タグにセットされた内容があれば、その内容を返します。 $scripts <script> タグにセットされた内容があれば、その内容を返します。 $body_classes 以下の内容を半角スペース(" ")で区切って返します。 - 表示しているページがフロントページであれば "front"、そうでなければ "not-front"
- 閲覧しているユーザがログインユーザであれば "logged-in" そうでなければ "not-logged-in"
- 表示しているページのアーギュメントに応じて "page-arg(0)"
- 表示しているページのコンテンツタイプに応じて "node-type-type"
- サイドバーの有無に応じて "no-sidebars", "one-sidebar sidebar-left", "one-sidebar sidebar-right", "two-sidebars" のいずれか
- ページの情報を表す変数
-
$front_page フロントページの URL を内部パスで返します。 $logo ロゴのパスを返します。 <img> タグなどは含みません。 $site_name サイト名を返します。 $site_slogan スローガンの内容が入力されていれば、その内容を返します。 $mission ミッションの内容が入力されていれば、その内容を返します。 - ページのナビゲーションに使用される変数
-
$search_box 検索ボックスの表示が有効になっている場合に、検索ボックスの内容を返します。 $primary_links プライマリリンクが設定されている場合、その内容を配列として返します。 $secondary_links セカンダリリンクが設定されている場合、その内容を配列として返します。 - ページのコンテンツに使用される変数
-
$header ヘッダに表示するブロックが設定されていれば、そのブロックの内容を返します。 $footer フッタに表示するブロックが設定されていれば、そのブロックの内容を返します。 $left 左サイドバーに表示するブロックが設定されていれば、そのブロックの内容を返します。 $right 右サイドバーに表示するブロックが設定されていれば、そのブロックの内容を返します。 $breadcrumb パンくずリストとして取得できる内容があれば、その内容を返します。 $title コンテンツの単一ページに表示される <a> タグを含まないタイトルを返します。
ティーザーリストなどで使用される <a> タグを含むタイトルは、node.tpl.php で指定します。$help ヘルプテキストを返します。
ヘルプテキストは、管理セクションなどで表示される、設定内容などに関する説明です。$messages システムメッセージを返します。
返されたメッセージには、種類に応じた class が割り当てられています。$tabs コンテンツの「表示」「編集」タブや、管理セクションで表示されるタブの内容などを返します。 $content コンテンツ(node.tpl.php)や管理セクションでの内容を返します。 - フッタおよびページの終了部分で使用される変数
-
$feed_icons フィードアイコンとフィードページへのリンクを返します。 $footer_message フッタメッセージの内容が入力されていれば、その内容を返します。 $closure JavaScript のコードなどセットされた内容があれば、その内容を返します。
通常は </body> タグの直前にセットします。
このページで使用している「サジェスチョンテンプレート」というのは、drupal.org のドキュメント内に記載されている "Template suggestions" を意訳して作成した名称です。

