Please Sign In or Register

モジュールの構成ファイル

Drupal のモジュールの構成は以下の通りです。
日本語での使用を前提とした foo モジュールを作成する場合に必要なものを記載しています。

  • foo/foo.info --- *必須* admin/build/module でモジュールの一覧に表示するために必要です。
  • foo/foo.module --- *必須* モジュールの本体となるファイルです。
  • foo/foo.css --- モジュールにデフォルトスタイルを定義する場合に必要です。
  • foo/foo.install --- データベーステーブルの作成、再構築、削除を行なう場合などに必要です。
  • foo/po/ja.po --- 日本語翻訳ファイルです。個人的にこれも同梱していただければ...と。

モジュールの構成ファイルはそれぞれ、上記のようにモジュールと同名のディレクトリ内に作成する必要があります。
また、翻訳ファイルについては、pot (翻訳テンプレートファイル) が用意されているものもありますので、あった方がよいのかもしれません。

foo.info

Drupal 5.x からは、モジュールファイル内に foo_help のような hook を利用してモジュール情報を記載するのではなく、foo.info ファイルを使用することになっています。

; $Id$
セミコロン(;) から始まるコメントです。CVS にファイルをコミットする場合の ID 情報を記載します。
name = モジュール名
*必須* モジュール名を記載します。
description = "モジュールの概要"
*必須* モジュールの概要について記載します。
dependencies = モジュール名1 モジュール名2
依存するモジュールがある場合に、そのモジュール名をスペースで区切って記載します。
ここで指定されたモジュールが有効にされるまで、このモジュールは動作しません。
package = "モジュールの分類"
admin/build/module の一覧でグループに分類して表示したい場合に、そのグループ名を記載します。
この項目が設定されていない場合は、other(その他) のグループに分類されます。
version = "モジュールのバージョン"
admin/build/module の一覧に表示される、モジュールの一覧を記載します。
必須とはなっていませんが、記載した方がよいと思われます。
project = "プロジェクト名"
drupal.org でのプロジェクト名を記載します。
datestamp = "タイムスタンプ"
add packaging date to .info files in package-release-nodes.php から察するに、drupal.org のように Project モジュールを使って管理されるモジュールには、time() 関数で取得されるタイムスタンプが記述されることになったようですが、厳密なバージョン管理などが必要な場合以外は必要ないのではないかと思います。

サンプルコード

; $Id$
name = foo
description = "This module is test module."
dependencies = module1 module2 module3
package = "Your arbitrary grouping string"
version = "5.x-dev"

「モジュール名」「モジュールの概要」「パッケージ」については、自動で翻訳文字列として処理されますので、t() を使用する必要はありません。

foo.module

モジュールファイルは <?php で書き始めますが、PHP の終了タグである ?>Coding standards に従って省略します。
また、CVS にファイルをコミットする場合は、リビジョン番号や日付の経過を追跡できるように /* $Id$ */ を明記しておきます。

サンプルコードの一部 (ヘルプページの作成)

<?php
/* $Id$ */

/**
* Display help and module information
* @param section which section of the site we're displaying help
* @return help text for section
*/
function foo_help($section='') {

  $output = '';

  switch ($section) {
    case "admin/help#foo":
      $output = '<p>'.  t("Describe the contents of foo module's help page by HTML."). '</p>';
      break;
  }

  return $output;
} // function foo_help

改定履歴

[ 2007-05-28 ]
Project モジュールでの Issues の内容を受けて、.info ファイルの datestamp 項目について追記しました。

トラックバック

トラックバックは承認後に表示されます。

URLから "-nospam" を削除してトラックバックを送信してください。

コメント

なるほどなるほど

リクエストにお答え頂きまして、ありがとうございます<(_ _)>
これに沿って、別モジュール化してみます。
これで、ネットワーク翻訳の上書きに怯えなくて済みそうですね(あ、それは画像認証の方か(笑))

ありがとうございます。

コメントの表示オプション

お好みの表示方法を選択し、「設定の保存」をクリックすると、表示方法を変更することができます。