.info ファイルの構造

本文は Drupal 公式サイト の内容を Utano Schell が意訳したものです。内容に関してあいまいな部分がある場合は必ず原文を参照してください。

.infoファイルはテーマの基本的な設定を記述した静的なテキストファイルで、その書式はINIファイルに似ています。ファイルの各行にはキー項目と値が書いてあり、キー項目左に、値を右に、それらを等号で結びます(例:Key = value)。
行頭にセミコロンがある場合その行はコメントとして扱われます。
一部のキーは関連する値のリスト(配列)を構築するために、角括弧をつかった構文を使用します。配列についてよくわからない場合は、Drupal に含まれるデフォルトの.infoファイルを参考にするか、以下の説明文を読んで、十分に理解する必要があります。

Drupal が理解できるキーは以下の通りです。
省略可能なキーが.infoファイルに記述されていない場合 Drupal はデフォルトの値を使用します。例としてコアテーマの設定の仕方を参照してください。

name (必須)

システムが理解できる内部名とは別に、人間にとってわかりやすい名前をつけることができます。使用可能な文字に対する制限もゆるくなっています。

name = 人間に分かりやすいテーマ名

 

description (推奨)

テーマについての概要。この概要は "管理セクション>サイト構築>テーマ" にあるテーマ選択画面に表示されます。

description = ブログ用のテーブルを使用しない複数カラムのテーマです。

 

screenshot

オプションの screenshot キーは、テーマ選択のページ(admin/build/themes)に表示されるテーマのサムネイル画像がどこにあるかを Drupal に通知します。このキーが省略されている場合、Drupal はデフォルト値として"screenshot.png"を使用します(テーマのディレクトリの直下に、"screenshot.png"が存在すればそのファイルを使用することになります)。
このキーを使用するのはサムネイル画像のファイル名が"screenshot.png"以外のときか、またはテーマディレクトリの外から画像を呼び出したい時です(例えばscreenshot = images/screenshot.pngといった場合)。

screenshot = screenshot.png

 

version (非推奨)

バージョン文字列は drupal.org が圧縮パッケージをリリースする時に自動的に追加されますので投稿する場合は省略してください。しかしながら、drupal.org に寄稿しないのであれば独自のテーマバージョン番号として使用できます。

version = 1.0

 

core (必須)

Drupal 6 以降では、全てのモジュールやテーマの情報ファイルは Drupal コアのメジャーバージョンとの互換性を示す必要がありますDRUPAL_CORE_COMPATIBILITY 定数と比較される値を設定してください。この値がコアのバージョンと一致しない場合、テーマは無効となります。

core = 6.x

drupal.org のパッケージングスクリプトは、Drupal コアの各リリースノードでの互換性に基づいて、この値を自動的に設定します。そうすることでユーザーは常に正常なテーマパッケージを drupal.org からダウンロードできることになります。しかしながら、サイトにCVSから直接展開する場合、独自テーマの.infoファイルに変更を書き込むほうが有効かもしれません。各テーマがどの時点のバージョンのコアと互換性があるのかCVSのHEADでユーザーに示すのも、良い手法です。

 

engine (ほぼ必須)

テーマエンジンはテーマ毎に使用されています。この値を省略した場合、このテーマは独立しているとみなされます(つまり、".theme"ファイルを実装していると判断されます)。ほとんどのテーマはデフォルトエンジンである "phptemplate" を使う必要があります。

"phptemplate"の仕事はテーマ関数を発見することとテーマを動作させるためのテンプレートになることです。この値を省略してよいのはテーマ製作者が何をどうすればいいのか理解している時だけです。

engine = phptemplate

 

base theme

サブテーマはベーステーマを宣言することでテーマの継承が可能になります。これはベーステーマのリソースを接続したサブテーマ内で再利用できることを意味します。サブテーマは他のサブテーマをベーステーマとして宣言することができます。これにより多段階の継承が可能になります。指定する値はベースとなるテーマの内部名(.infoファイル名)を指定してください。

以下は Garland のサブテーマである Minnelli で使われている設定です

base theme = garland

さらに詳しい内容はサブテーマの構造と継承を参照してください。

 

regions

regions ではテーマで利用可能な表示領域をregionsキーのあとにシステムが理解できる名前を角括弧で宣言し、人間にわかりやすい名前を値として指定します。(例:regions[theRegion] = The region name

表示領域の宣言がなかった場合、以下の値がデフォルトで使用されます。同じ表示領域の宣言を記述し値を指定すれば上書きすることができます。

regions[left] = Left sidebar
regions[right] = Right sidebar
regions[content] = Content
regions[header] = Header
regions[footer] = Footer

さらに詳しい内容はRegionへのコンテンツの割当てを参照してください。

 

features

テーマ内のさまざまなページ要素の出力は、テーマの設定ページで有効、無効を切り替えることができます。"features" キーはテーマの設定ページでの要素別チェックボックスの表示、非表示をコントロールします。チェックボックスの制御は簡単で、要素を宣言するか、またはしないかです。チェックボックスを非表示にするには宣言を省略します。なお、すべての要素が省略された場合、システムはデフォルト状態(全ての要素用チェックボックスが表示)で表示します。

以下の例では全ての要素が"features"キーでコントロールされます。primary_linkssecondary_links要素をコメントアウトしたので、テーマの設定画面ではこの二つの要素のチェックボックスは表示されなくなります。

features[] = logo
features[] = name
features[] = slogan
features[] = mission
features[] = node_user_picture
features[] = comment_user_picture
features[] = search
features[] = favicon
; これら2つは無効になります。上記のように必要なものだけ再定義します。
; features[] = primary_links
; features[] = secondary_links

さらに詳しい内容はCustom theme settingsを参照してください。

 

stylesheets

従来のテーマはデフォルトで style.css を自動的に使用し、その他の追加スタイルシートはtemplate.php上でdrupal_add_css()関数をを呼び出すことによって使用していました。Drupal 6 からは、これらスタイルシートの追加も.infoファイルによって行います。

stylesheets[all][] = theStyle.css

さらに詳しい内容はstyle sheetsを参照してください。

 

scripts

従来のテーマはtemplate.php上でdrupal_add_js()関数を呼び出してjavascriptsを追加していました。Drupal 6 からはテーマディレクトリ内に script.js という名前のファイルが存在する場合自動的に読み込まれるようになりました。.infoファイルでも javascript ファイルを指定することで追加することができます。

scripts[] = myscript.js

さらに詳しい内容はJavaScript & jQueryを参照してください。

 

php

テーマがサポートする最低限のPHP バージョンを定義します。デフォルトの値はDRUPAL_MINIMUM_PHP定数に由来し、Drupal コアが稼動するために最低限必要なバージョンです。これは、必要に応じて新しいバージョンを再定義することができます。ほとんどのテーマでは、この設定を追加してはいけません

php = 4.3.3

 

.info ファイルの例

コアテーマ Garland の場合:

Core theme Garland

; $Id: garland.info,v 1.5 2007/07/01 23:27:32 goba Exp $
name = Garland
description = Tableless, recolorable, multi-column, fluid width theme (default).
version = VERSION
core = 6.x
engine = phptemplate
stylesheets[all][] = style.css
stylesheets[print][] = print.css

; Information added by drupal.org packaging script on 2008-02-13
version = "6.0"
project = "drupal"
datestamp = "1202913006"

 

Garland のサブテーマ Minnelli の場合:

; $Id: minnelli.info,v 1.7 2007/12/04 20:58:44 goba Exp $
name = Minnelli
description = Tableless, recolorable, multi-column, fixed width theme.
version = VERSION
core = 6.x
base theme = garland
stylesheets[all][] = minnelli.css

; Information added by drupal.org packaging script on 2008-02-13
version = "6.0"
project = "drupal"
datestamp = "1202913006"

 

注意:; Information added by drupal.org packaging script on 2008-02-13と書かれた行以降は Drupal.org のパッケージングスクリプトによって追加されたものです。絶対に project や datestamp といったキーを追加しないでください。サイトがそのテーマをCVSから直接取り込む場合には version キーを手動で追加できます(上のセクションで追加すること)。