対象読者
- HTML、JavaScript、PHPなどWeb開発の基礎理解がある方
- Webサイト、アプリケーション開発の経験者
Drupalにおけるモジュールとは
本連載の第2〜4回の記事で、Drupalのコア機能でできることをご紹介してきました。多言語やワークフローなど、コアだけでも強力な機能が備わっていますが、コアが提供するのは汎用的な利用を想定した最低限の機能のみで、多くの場合はそれだけでは作りたいサイトの要件を満たすことは難しいでしょう。そこで、Drupalではモジュールと呼ばれる、小さい機能の単位で拡張することができます。
モジュールには、Drupalコアによって提供される「コアモジュール」、オープンソースで公開されて無料で使える「コントリビュートモジュール」、そして各プロジェクトのために独自で開発するモジュール「カスタムモジュール」の3つの種類に分かれます。
実はコア機能も複数のモジュールの集まりです。Drupalコアに含まれるモジュールをコアモジュールと呼びます。例えばViewsと一言で言っても、「Views」「Views UI」の2つのモジュールで構成されています。ViewsはViews UIと依存の関係なのでViewsが無ければ機能しません。逆にViews UIが必要なければ非有効化してそぎ落とすこともできます。このように、モジュールは細かい機能の単位で、複数のモジュールを組み合わせて1つの大きな機能を提供することもできます。
また、Drupal.orgでは4万個以上のモジュールが公開されており、無料でインストールして使うことができます。これをコントリビュートモジュールと呼び、Drupalのコントリビューター(貢献者)が管理しています。
コアモジュール、コントリビュートモジュールでも足りない機能があった時は、自分でモジュールを開発・実装することで対応します。これをカスタムモジュールと呼びます。
オープンソースのコントリビュートモジュールを使う
オープンソースCMSのDrupalには、オープンソースで利用できるコントリビュートモジュールが多く公開されています。まずはこの無料で利用できるモジュールをサンプルサイト「まる茶」に導入してみます。今回利用するモジュールは Simple Google Mapsです。これは、ページ上にGoogleマップを埋め込むことができる便利なモジュールです。
コントリビュートモジュールのダウンロード、インストール方法は、基本的にはテーマを利用する時と同様です。今回はせっかくなので前回(連載第5回)ご紹介しなかった別の方法である、ComposerとDrushを用いたコマンドラインでの手順をご紹介します。
Composerの準備
Composerとは、PHP開発におけるライブラリの依存関係を管理するパッケージマネージャーです。DrupalはComposer経由でDrupal本体や、テーマ、モジュールなどをダウンロードできます。
Composerが手元に無い方は公式サイトよりダウンロードします。以下のコマンドが機能すれば準備完了です。
$ composer --version Composer version 2.0.8 2020-12-03 17:20:38
次に、Drupalプロジェクトにcomposer.jsonファイルが存在するか確認します。最新バージョンのDrupalであれば、ドキュメントルートかその上の階層に標準で設置されています。Acquia Dev DesktopでDrupalをインストールした場合も、ドキュメントルート内にcomposer.jsonファイルが含まれています。無い場合はまず composer init コマンドまたは手動でファイルを作成する必要があります。
なお、自身でcomposer.jsonファイルを生成した場合にはダウンロードしたモジュールの設置場所を設定する記述を追記する必要があります。
これでComposerを利用する準備が整いました。
モジュールをダウンロード
Drupal.org内の Simple Google Maps の公開ページのリリース情報ページにアクセスすると、Composerでダウンロードする場合のコマンド例が記載されています。
ターミナルで、プロジェクトのルートディレクトリに移動し、記載された通りにコマンドを実行してみます。
$ composer require 'drupal/simple_gmap:^3.0'
Acquia Dev Desktopを利用している場合は、Dev DesktopのLocal codeの横にあるコンソールボタンからターミナルを開くことができます。
ダウンロードが完了したら、まる茶ウェブサイトのルートディレクトリの、/modules/contrib/simple_gmapディレクトリが配置されているか確認します。コントリビュートモジュールは一般的に /modules/contribディレクトリに配置します。
modules └── contrib └── simple_gmap
モジュールをインストール
サイトにダウンロードしたモジュールは、管理画面上から、もしくは「Drush」と呼ばれるCLIツールを用いることでインストールやアンインストールなどの操作が行えます。
Drushとは、Drupalをコマンドラインで操作するためのツールです。一度コマンドを覚えると管理画面を開く手間が省け、作業効率の向上に役立ちます。Acquia Dev DesktopではDrupalダウンロード時にDrushが包含されているため、インストール作業は必要ありません。
Acquia Dev DesktopでDrushを利用する場合は、Dev DesktopのLocal codeの横にあるコンソールボタンからターミナルを開きます。そうすることで、Drushを利用するために必要な環境変数をコンソール起動時に読み込んでくれます。
モジュールのインストールは、drush pm:enableモジュールマシン名 の形式でコマンドを実行します。drush en(pm:enableのエイリアス)でも同じことが行えます。
$ drush pm:enable simple_gmap # もしくは drush en simple_gmap > [notice] Checked ja translation for simple_gmap. > [notice] Downloaded ja translation for simple_gmap. > [notice] Imported ja translation for simple_gmap. > [notice] Translations imported: 1 added, 5 updated, 0 removed. > [notice] Message: 1 個の翻訳ファイルをインポートしました。/1/ > 個の翻訳を追加し、/5/ 個の翻訳を更新、/0/ > 個の翻訳を削除しました。 > [success] Successfully enabled: simple_gmap
次のコマンドで、インストール済みのコントリビュートモジュールを一覧表示します。Simple Google Mapsモジュールがきちんとインストールされていることが分かります。
$ drush pm:list --status=enabled --no-core --type=module ------------- ---------------------------------- --------- --------- Package Name Status Version ------------- ---------------------------------- --------- --------- Field types Simple Google Maps (simple_gmap) Enabled 3.0.0 ------------- ---------------------------------- --------- ---------
管理画面では、機能拡張ページにてモジュールの一覧を確認できます。Simple Google Mapsモジュールのチェックボックスがオンになっているので、モジュールがインストール済みであることが管理画面からも分かります。