カスタムモジュールの作り方

Drupal は柔軟に、そしてダイナミックにWEB サイトに機能を追加したり、カスタマイズを加えることができます。しかしそれでもある程度複雑な機能のウェブサイトを構築しようとすると、カスタマイズしきれない部分というのがいくつか出てきます。要望にマッチしたコントリビュートモジュールを探すのも一つの手ですが、それもなかなか大変です。

フック(※1)の記述場所として、サイトごとに調整用のカスタムモジュールをひとつ作っておくと、対応するフックにわずかなコードを加えるだけで、細かい部分まで対応できるので便利です。

Drupal のモジュールの作成は簡単です。

  1. まずモジュールの名前を決めます。ここでは「custom」とします。
  2. カスタムモジュールを格納するディレクトリを「Drupal ルートディレクトリ/sites/all/modules/」に作成します。 ディレクトリ名は「custom」とします。「sites/all/modules/custom」となります。(※2)
  3. 「custom」モジュールのフォルダを作成します。「sites/all/modules/custom/custom」となります。
  4. (モジュール名).info ファイルを以下のように記述します。(※3)
    name = custom
    description = カスタムモジュール。
    core = 7.x
    package = Custom Module
    これをモジュールのフォルダに配置します。「sites/all/modules/custom/custom/custom.info」となります。
  5. (モジュール名).module ファイルを以下のように記述します。(※4)
    <?php
    
    /**
     * @file
     * カスタムモジュール。
     */
    これをモジュールのフォルダに配置します。「sites/all/modules/custom/custom/custom.module」となります。

これで完了です。

モジュール管理ページ(「管理」 > 「モジュール」)にアクセスすると、今作成したカスタムモジュールがリストされているはずです。

あとはこれを有効にして、custom.module に必要なフックを記述していくだけです。


※1 Drupal のページリクエスト処理の様々なプロセスにおいて、独自のコードを処理に組み込むことができるしくみ。

※2 マルチサイト設定を使わない一般的な例(以下同様)。※modules ディレクトリが無い場合は作成してください。

※3 .info ファイルについて詳しくは http://drupal.org/node/542202

※4 Drupal のコーディングスタンダードでは、モジュールファイル(およびその他のインクルードファイル)には、PHP の閉じタグ( ?> )は含めないのが良いとされています。これは PHP において閉じタグ( ?> )は任意であり、これを含めた場合、そのあとに続く空白文字が動作に思わぬ影響を与えることがあるためです。

コア: 
Drupal7