テーマの概観
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 についてはパッチが公開されていますが、公式リリースはされていないようです。
また、PHPTemplate エンジンをベースに、エンジンで定義されている内容も合わせてテンプレートに記述することで、プレーン PHP テンプレートとなる .theme ファイルを作成できます。
Drupal では、最初に .theme ファイルを検索し、なければ .engine ファイルを探すように設計されています。
テーマエンジンの構成ファイル
それぞれのテーマエンジンとその構成ファイルは以下の通りです。
| テーマエンジン | エンジン | 定義のオーバーライト用テンプレート | 各表示部分用テンプレート | スタイルシート | 参考テーマ |
|---|---|---|---|---|---|
| PHPTemplate | phptemplate.engine | template.php | .tpl.php | style.css | garland, bluemarine, Zen |
| PHPTAL | phptal.engine | template.php | .tal | style.css | Zental |
| Smarty | smarty.engine | smartytemplate.php | .tpl | style.css | Smarty port of the Garland theme, Bluemarine_smarty |
| wgSmarty | wgSmarty.engine | class_wgSmarty.php | .tpl | style.css | wgBluemarine theme |
| XTemplate | xtemplate.engine | xtemplate.inc | .xtmpl | style.css | Drupal 4.6x 以下の bluemarine |
| Zengine | zengine.engine | .zen.php | style.css | ZenZen | |
| プレーン PHP | .theme | style.css | chameleon | ||
テーマテンプレートへの入力書式
また、それぞれのエンジンを利用した場合のテンプレートでの基本的な記述方法は以下の通りです。(一部分です。)
(X)HTML ベースという部分はどれも同じですが、変数の呼び出し方法などが異なっています。
Garland, Zen, Bluemarine などのテーマは、それぞれのエンジンに対応したものがリリースされていますので、それらを比較することで詳細を確認できます。
| テーマエンジン | テンプレートへの入力書式(コード) |
|---|---|
| PHPTemplate |
|
| PHPTAL |
|
| Smarty |
|
| wgSmarty |
|
| XTemplate |
|
| Zengine |
|
| プレーン PHP | PHPTemplate ベースの書式で記述します。 |
このサイトでは、Drupal 5.x に標準で搭載されている PHPTemplate を使用したテーマの作成方法を紹介します。
トラックバック
トラックバックは承認後に表示されます。
URLから "-nospam" を削除してトラックバックを送信してください。