アイキャッチ画像: デスクの上でパソコンを使用している

本日は Drupal (ドルーパル)が提供するユーティリティ関数群の中からユーザ向けのステータスや警告のメッセージを表示するのに便利な drupal_set_message() 関数をご紹介したいと思います。

まず最初に drupal_set_message() 関数とは何ぞやという説明をした後に具体的な使い方をご紹介していければと思います。

なお、以下でご説明するときに使用するサンプルに対応する Drupal のバージョンは Drupal 7.x です。

drupal_set_message() 関数とは

drupal_set_message() 関数とは、ユーザ向けのメッセージを表示するための関数です。 この関数に文字列を渡すと、ページ内のメッセージエリアに一時的なステータスや警告、エラー通知のためのメッセージを表示してくれます。 他の CMS や Web フレームワークでは一般に「 notices 」「 flash message 」「 flash 」などと呼ばれているような機能です。 通常、メッセージは一度表示されるとその後表示されなくなる一時的なメッセージになるため、主な用途は直前に行った処理の結果ステータスの表示です。

以下サンプルです。 ひとつめがステータス、ふたつめがエラーの例となります。

ステータス:

エラー:

Drupal のコアに CSS スタイルが入っているので、特に変更しなければこちらのスタイルが使われることになります(もちろん、サイト全体のテイストにあわせてスタイルを変更することも可能です)。

drupal_set_message() 関数の使い方

具体的な使い方を見ていきましょう。 まず関数宣言部をご覧いただくとわかりやすいかと思います。

drupal_set_message($message = NULL, $type = 'status', $repeat = TRUE)

各引数は次のような意味合いです。

  • $message: (文字列) 表示したいメッセージ。
  • $type: (文字列) メッセージのタイプ。「 status 」「 warning 」「 error 」のいずれかひとつを選ぶ。デフォルトは status
  • $repeat: (論理値) 同じメッセージがすでにセットされている場合に重複したメッセージを追加するかどうか。 FALSE をセットすると重複したメッセージがすでにある場合は新たに追加しないため、同一のメッセージはひとつに集約される。デフォルトは TRUE

メッセージの保存には $_SESSION が使われており、内部的なエラーなどでレスポンスが正常に返らなかった場合などには次回の正常なレスポンスが行われるときまでメッセージがそのまま蓄積されるようになっています。

以上です。

今回は Drupal で一時的なメッセージを表示するための関数 drupal_set_message() をご紹介しました。 ユーザが主体的に検索をしたりデータの加工をすることができるホームページ / Web アプリにはステータス表示や警告、エラー通知の仕組みが必要になってきます。 このあたりのところでも Drupal の便利なユーティリティ関数が活躍してくれるので、よりクリエイティブな部分に集中できるのが Drupal の素敵なところのひとつです。

ちなみに drupal_set_message() と対になった関数として drupal_get_message() というものが存在します。 こちらの関数はメッセージを取り出すためのもので、セットされたメッセージを事前に確認したり変更したりしたいときに利用することができます。


共に働く新しい仲間を
募集しています

スタジオ・ウミは「Drupal」に特化したサービスを提供する Drupal のエキスパートチーム。
フルリモート&フレックス制だから、働く場所を選ばず時間の使い方も自由です。
そんなワークライフバランスの整った環境で、当ブログに書かれているような
様々な技術を共に学びながら、Drupalサイト開発に携わってみたい方を募集しています。
まずはお話だけでも大歓迎!ぜひお気軽にご連絡ください。