Drupal 開発者ガイド
テーマ変数(box.tpl.php)
テンプレート内で動的な内容を表示するためには、変数を用いて <?php print $variable; ?> のように、PHP コードで記述する必要があります。
また、if 条件式などを使うことで、表示内容をコントロールすることも可能です。
box.tpl.php で使用可能な変数と返される内容は以下の通りです。
変数が返す値は、導入しているモジュールや適用している日本語翻ファイルなどの環境によって異なる場合もあるかもしれません。
テーマ変数(block.tpl.php)
テンプレート内で動的な内容を表示するためには、変数を用いて <?php print $variable; ?> のように、PHP コードで記述する必要があります。
また、if 条件式などを使うことで、表示内容をコントロールすることも可能です。
block.tpl.php で使用可能な変数と返される内容は以下の通りです。
変数が返す値は、導入しているモジュールや適用している日本語翻ファイルなどの環境によって異なる場合もあるかもしれません。
テーマ変数(comment.tpl.php)
テンプレート内で動的な内容を表示するためには、変数を用いて <?php print $variable; ?> のように、PHP コードで記述する必要があります。
また、if 条件式などを使うことで、表示内容をコントロールすることも可能です。
comment.tpl.php で使用可能な変数と返される内容は以下の通りです。
変数が返す値は、導入しているモジュールや適用している日本語翻ファイルなどの環境によって異なる場合もあるかもしれません。
テーマ変数(node.tpl.php)
テンプレート内で動的な内容を表示するためには、変数を用いて <?php print $variable; ?> のように、PHP コードで記述する必要があります。
また、if 条件式などを使うことで、表示内容をコントロールすることも可能です。
node.tpl.php で使用可能な変数と返される内容は以下の通りです。
変数が返す値は、導入しているモジュールや適用している日本語翻ファイルなどの環境によって異なる場合もあるかもしれません。
テーマ変数(page.tpl.php)
各テンプレートファイルでは、動的な内容を表示するために $variable のような変数を使用することができます。
変数にセットされた内容を出力するためには、該当する箇所に <?php print $variable; ?> と、PHP コードで記述する必要があります。
また、if 条件式などを使うことで、表示内容をコントロールすることも可能です。
以下が page.tpl.php で使用可能な変数と返される内容になります。
変数が返す値は、導入しているモジュールや適用している日本語翻ファイルなどの環境によって異なる場合もあるかもしれません。
テンプレートファイルの命名規則
テンプレートファイルは、そのファイル名から読み取られる条件が詳細なものから順に探され、ない場合にはデフォルトのテンプレートが使用される仕組みになっています。
この機能を利用することで、コンテンツタイプやカテゴリなどに応じた複数のテンプレートを使い分けることができます。
PHPTemplate テンプレートファイル
PHPTemplate エンジンを利用した Drupal テーマの構成は以下の通りです。
日本語での使用を前提とした foo テーマを新規作成する場合に必要だと思われるものを記載しています。
- foo/style.css --- *必須* デフォルトで読み込まれるスタイルシートです。
- foo/page.tpl.php --- *必須*
theme('page')で呼び出されるページ全体のテンプレートです。 - foo/node.tpl.php ---
theme('node')で呼び出されるコンテンツ部分のテンプレートです。 - foo/comment.tpl.php ---
theme('comment')で呼び出されるコメント部分のテンプレートです。 - foo/block.tpl.php ---
theme('block')で呼び出されるブロックのテンプレートです。 - foo/box.tpl.php ---
theme('box')で呼び出されるメインエリアを構成するコンテナのテンプレートです。 - foo/template.php --- phptemplate.engine で定義された内容のオーバーライトや、新しい定義を追加する場合に必要です。
- foo/screenshot.png --- テーマのリストにスクリーンショットを表示する場合に必要です。ない場合は "スクリーンショットなし" と表示されます。
- foo/foo.info --- Drupal 6.x から必要になるファイルで、現在リリースされているテーマファイルにも同梱されている場合があります。
テーマの概観
Drupal では、テーマエンジンによって出力する内容を定義し、テーマエンジンで定義された内容を出力する場所をテンプレートで指定するという方法がとられています。
5.x のデフォルトのテーマエンジンには PHPTemplate が利用されていますが、他にも PHPTAL theme engine, Smarty theme engine, wgSmarty theme engine, XTemplate, Zengine などのテーマエンジンがあり、それぞれにテンプレートへの記述方法が異なります。
このうち、Drupal 5.x に対応したエンジンとしてリリースされているものは PHPTemplate および PHPTAL theme engine, Zengine の 3種類のみで、Smarty theme engine についてはパッチが公開されていますが、公式リリースはされていないようです。
テーマ開発ガイド
テーマを作成するための概要として Drupal handbook の Theme developer's guide や PHPTemplate Theme Snippets に記載してある内容を自分なりにまとめていく予定です。
カスタマイズの段階としては、簡単な方から順に以下のような選択肢がありますが、詳細なカスタマイズを行うためには Drupal API を含めた PHP などの知識が必要になります。
モジュールの構成ファイル
Drupal のモジュールの構成は以下の通りです。
日本語での使用を前提とした foo モジュールを作成する場合に必要なものを記載しています。
- foo/foo.info --- *必須* admin/build/module でモジュールの一覧に表示するために必要です。
- foo/foo.module --- *必須* モジュールの本体となるファイルです。
- foo/foo.css --- モジュールにデフォルトスタイルを定義する場合に必要です。
- foo/foo.install --- データベーステーブルの作成、再構築、削除を行なう場合などに必要です。
- foo/po/ja.po --- 日本語翻訳ファイルです。個人的にこれも同梱していただければ...と。
モジュール開発ガイド
モジュールを作成するための概要として Drupal handbook の Module developer's guide に記載してある内容を自分なりにまとめていく予定です。
なお、Module developer's guide の対象ユーザは以下の要件を満たすことが想定されているようです。
Drupal API リファレンス
Drupal API reference の内容について勉強しながら整理していくためのブックです。
すべての内容をまとめることはできませんが、概要がつかめる程度の情報は整理したいと思っています。
Drupal 開発者ガイド
Drupal のテーマやモジュールを作成するための参考になりそうな内容をまとめていく予定です。
私自身が開発者と呼ぶには程遠いスキルしか持っていないので、自分自身のメモがわり程度のものになります。
また、情報の多くは Drupal handbooks を参考にしたものになりますので、正確な情報はそちらでご確認ください。