CodeZine(コードジン)

特集ページ一覧

モジュールでDrupalサイトの機能拡張をしよう~インストールからモジュールを開発する方法を解説

Drupal 9で始めるWebサイト開発入門 第6回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2021/02/05 11:00

 前回はDrupalのテーマ開発でウェブサイトの見た目を変更しました。今回は、Drupalサイトの機能を拡張する「モジュール」について、コマンドラインでのインストール方法から、独自にモジュールを開発する方法をご紹介します。

目次

対象読者

  • 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モジュールのチェックボックスがオンになっているので、モジュールがインストール済みであることが管理画面からも分かります。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

修正履歴

  • 2021/02/05 21:07 タイトルに誤表記があったため、修正いたしました。お詫びして訂正いたします。

バックナンバー

連載:Drupal 9で始めるWebサイト開発入門

著者プロフィール

  • 丸山 ひかる(マルヤマ ヒカル)

    2014年、独立系ソフトウェア開発会社に新卒入社。 Web APIの開発をメインに、保守、運用、顧客サポートまで幅広く携わったのちに、テクニカルエバンジェリストとしてプロダクトの普及に貢献。 現在はDrupalを基盤としたエンタープライズ向けCMSプラットフォーム...

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5