Must-have

Better Formats

Description: 

Drupal は Input Filter という機能を持っています。Drupal はもともとコミュニティサイトを運営するために作られたプログラムです。すると、コミュニティのユーザーアカウント作成ポリシーによっては、まったく知らない人もアカウントを作って何らかのコンテンツをサイトにポストできるということを意味しています。これは、コミュニティを活性化させるためにはとても有効なやり方ですが、一方でとても危険なことでもあります。というのも、その任意の誰かさんが HTML、PHP、JavaScript などのウェブサイトを動かしている技術を駆使して、何か悪意のあるコンテンツをサイトに投稿することが可能になるからです。

»

Devel

Description: 

Drupal のモジュール開発をするなら必須のモジュール。

Drupal では PHP の array(配列?)とか object(オブジェクト)というデータをよく使うけれど、これはデータを階層状に収納したもの。なので、目的の値を取り出すのに一苦労する。でも、Devel モジュールをインストールしてあれば、モジュールやテーマのコード中に

dsm($array_name);

と差し込むことで、Drupal のシステムメッセージを表示するエリアにこの array や object をツリー状に表示してくれる。個人的には、これが一番多く使う機能。

また、サイトを作っていると、よほど簡単な構造のものでないかぎり、複数のロールを設定して、ロール毎に異なる権限を与えて、それでユーザーごとにできること/できないことを制限する必要が出てくる。でも、サイト構築中にいちいちログイン&ログアウトを繰り返していたら、とても面倒。こういうケースのために、Devel モジュールは現在のユーザーからログアウトすることなく別のユーザーとしてサイトにログインしなおすインターフェースをもったブロックを提供してくれる(長い文章だ...)。

»

Demonstration site (Sandbox / Snapshot)

Description: 

もともとは、モジュール名が表すように、Drupal を使って何かのデモンストレーション用サイトを構築することを目的に作られたんだと思う。この場合、一定時点で Drupal データベースのバックアップを取って、一定の間隔でそのバックアップを使ってデータベースの上書きをする。こうすることで、いろんな人にサイトをいじってもらっても、たとえば1時間が経てばサイトをクリーンな状態まで戻すことができる。よくモジュールのデモサイトを構築するときにこの Demonstration site モジュールを利用しているみたい。

»

Backup & Migrate

Description: 

手動またはあらかじめ定めたスケジュールに則って、Drupal のデータベースをバックアップするモジュール。バックアップされたファイルはダウンロードしたり、サーバー上の特定ディレクトリーに保存したりといったことが可能。

もっぱらスケジュール・バックアップに使用しています。サイトに新たなモジュールを追加するなど変更を加える際のバックアップには、Demonstration site モジュールが便利だと思います。

»

ImageCache

Description: 

CCK + FileField + ImageField でコンテンツに添付した画像は、アップロードした画像のまんまの画素数でページ内に埋め込まれる。でも、アップロード前にいちいち Photoshop なんかのビットマップ編集アプリケーションで画素数を調整していたら、とても大変だよね。

ImageCache は、画像の加工(画素数の変更だけでなく、モノクロ化、回転なども含む)をプリセット(一連の命令、マクロのようなもの)として登録し、画像を最終的に書き出すときに、指定したプリセットの加工を画像に施して書き出す、というモジュールです。

なぜキャッシュという名前がついているかというと、たぶん、一度「ある画像」を「あるプリセット」で書き出したものへのリクエストがあると、その加工が済んだファイルがサーバーに保存されます。そして、2回目以後に同じファイル、同じプリセットへのリクエストがあった場合は、再度画像処理をすることなく、保存済みのファイルをブラウザーに渡します。この振る舞いがキャッシュと呼ばれる理由じゃないかと思っています。

»

ImageField

Description: 

CCK、FileField と連携して、コンテンツに画像を添付するモジュール。

Drupal コアのままだと、コンテンツにファイルの添付は可能だけれど、1コンテンツにつき1ファイルのみだったりして、いろいろと不便。ってことで FileField(+ CCK)の出番になるんだけれど、おそらく一番アップロードされるであろう画像は、アップロードしても画像埋め込みができない。画像をコンテンツに添付する場合って、普通は画像を埋め込むことを期待しているはずだよね。

で、ImageField の出番となる。ImageField は、CCK + FileField でアップロードした画像ファイルをちゃんと <img> タグで囲ってページ中に埋め込んでくれる。それだけじゃなくて、画素数に制限を設けたり、title 属性や alt 属性を設定できたり、ととても高機能。

Drupal 7 では、ImageField の機能はほとんどコアに組み込まれたので、不要。

»

FileField

Description: 

CCK で作成したノードに任意のファイルを添付するためのフィールドを追加する。

ファイルを保存するパスをコンテンツタイプやフィールドごとに設定したり、Views と連携したりできる。

FileField をサポートするモジュールを使えば、アップロードされたファイルのアウトプットも変更できる。たとえばイメージファイルは ImageCache で加工してページに貼り付けて表示するとか。

»

Token

Description: 

トークンというのは、バスや地下鉄なんかで使うコイン、つまり代用通貨のこと。なにかの象徴とかっていう意味があるらしい。

で、この Token モジュールは、Drupal コアやモジュールが扱う変数へのアクセスを簡単にする。たとえばプログラムのなかではあるコンテンツのタイトルを $node->title と書かなきゃいけない。でも、モジュール開発者ならともかく、プログラミングの知識がないサイト管理者にこういう暗号みたいなのを覚えてもらうのは非現実的だよね。Token モジュールがあると、これを [title] と書くだけで OK になる。

»

Administration Menu

Description: 

Mac OS X や Windows などの現代的オペレーティングシステムのインターフェースと同様、Drupal サイト管理のためのプルダウンメニューを提供してくれる。

»

Context

Description: 

一つのサイトを複数の「コンテクスト(=セクション)」に分けて、どういう条件のときに、どのコンテクストが有効になって、そのコンテクストでどういう設定が返されるか、ということを可能にする。

たとえば、CCK で追加したコンテンツタイプをある view でリスト表示し、その view をプライマリーメニューに登録した場合。このとき、view をクリックすると、そのメニューアイテムがハイライトされるよう CSS などで設定できるけれど、コア + CCK + Views だけだと、そこまで。view 内の任意のノードをクリックすると、そのハイライトは失われてしまう。

これは、その view および view にリストアップされるノードのパスを条件としたコンテクストを作ることで解決できる。

この、「CCK によって作成された任意のコンテンツタイプを、任意のメニューアイテムと関連づける」というのは Context モジュールの機能の一つに過ぎなくって、条件、アクションともにもっと多くの選択肢がある。

»
Syndicate content