モジュールレビュー

Drupal のエンティティ(の種類)を簡単に追加出来るモジュールです。

エンティティとは、Drupal 7 から導入された概念で、ノード、ユーザー、タクソノミーターム、コメントなど、サイトの主な構成要素の「実態」を表すもので、これらは共通の様式で扱えるようになっています。(これにより、ノードだけでなくコメントやタクソノミーターム、ユーザーにも同じ様式でフィールドを追加することが出来るようになりました。)

Drupal にはこれらの既存のエンティティに加えて、独自のエンティティ(の種類)を追加する機能があります。
これはカスタムモジュールに hook_entity_info() を実装することで可能となりますが、ECK モジュールはこれをもっと容易にし、さらに管理画面上の UI も提供します。

コア: 
Drupal7

Message モジュールを使って、サイト上の様々なイベントや、ユーザーのアクション(アクティビティー)を記録、表示することができます。

ここで扱う Message はひとつのエンティティ(※1)として実装されます。ノード、ユーザー等と同様に任意のフィールドを持たせることが可能で、用途ごとにメッセージタイプとしてバンドル(※2)を構成します。このために大きな柔軟性、拡張性を持ち、様々な用途に利用できます。

たとえばSNS(ソーシャルネットワーキングサービス)のような機能を持つサイトでは、ユーザーの様々なアクション(アクティビティ)を表示する機能として使えます。具体的な例としては

コア: 
Drupal7

カスタムモジュールを制作するなど、Drupal を高度にカスタマイズしたい場合は、必須のモジュールになると思います。Devel には開発者にとって、あると便利な機能がたくさん入っています。

まずいちばんよく使うのは dpm() でしょう。Drupal のコーディングによるカスタマイズは、基本的にはフック関数を記述しその中で行ないますが、引数として渡される変数の中身を確認したい場面が多々あります。また、Drupal のAPI の関数を利用して、得た値を変数に格納し、その中身を確認したい場合もあるでしょう。そんなときは次のように、

dpm($確認したい変数);

として、引数に確認したい変数を渡し、カスタムコードの中で dpm() をコールしてやると、図のように変数の中身を確認できます。変数が配列やオブジェクトの場合は、その要素やプロパティの値も得られます。階層構造がある場合は、すべて展開しそれらの中身を確認することもできます。

フィールドの中にフィールドを作る、つまりフィールドを入れ子に設定したいときに使用するモジュールです。

フィールドをグループ化する Fieldgroup というモジュールがありますが、これは単にフィールドの表示や入力フォームの配置の際にグループ化するだけのもので、フィールドの構造はあくまでフラットです。

これに対してフィールドコレクションはフィールドの構造そのものを入れ子に設定し、複数のフィールドをセットにして1つのフィールドとして扱えるようにします。

例えば料理のレシピサイトを考えてみましょう。1つ1つのレシピをノードで作成することにします。「レシピ」というコンテンツタイプを作り、フィールドの構成を以下のように設定します。

コア: 
Drupal7

「特定のフィールドを特定のロールのユーザーだけに表示させたい」といった場合に必要になってくるモジュールです。(※単に「特定のフィールドだけを表示/非表示にしたい」という場合は、コンテンツタイプの「表示管理」(「管理」 > 「サイト構築」 > 「コンテンツタイプ」 > 「コンテンツタイプ名」 > 「表示管理」)でコントロール出来ます。)

D6 の Content Permissions モジュールの後継モジュールのようです。Content Permissions モジュールは CCK に同梱されていましたが、D7 ではこの Field Permissions モジュールを別途ダウンロードしてインストールする必要があります。

インストール後、設定のしかたも D6 の Content Permissions モジュールとは少し違います。以前はユーザー権限のページに、他のアクセスコントロールといっしょにズラーーーっと表示されていましたが、

コア: 
Drupal7