モジュール

Facebook とかの、スクロールして下まで行ったら次が出てくる、あれです。


下まで行ったら自動で次が出てくるようにも、下まで行ってボタンを押したら出てくるようにも出来ます。

コア: 
Drupal7
Drupal8

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

Drupal には機能拡張のためのコントリビュートモジュールが多数存在します。ここではフィールドをグループ化して表示するモジュール Field group を例に、モジュールのインストール方法について説明します。

コア: 
Drupal7

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

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

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

コア: 
Drupal7

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

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

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

コア: 
Drupal7