WordPress屋のDrupal入門その2です。
今回はモジュールについて書いていこうと思います。
特に今回の案件でお世話になったモジュールを中心にWordPress語に翻訳して行けたら良いなと思って書きます。
views
viewsというのはデータベースからいろんなデータを引っ張ってくることができるモジュールです。
Drupalで中規模以上のサイトを作る場合には必須だと思われるモジュールです。
WordPressで言うところのWP_Queryだったり、wp_list_pagesだったり、wp_list_authorsとかみたいなことができます。
また、viewsで作成したビュー(その引っ張ってきたページのまとまりみたいなもの)にはブロックと、ページという表示形式をいくつも作成することができます。ページにはパスを設定すれば、そのページにアクセスして、引っ張ってきたコンテンツが閲覧できるし、ブロックにすれば、WordPressのウィジェットのように扱えます。
ですので、WordPressのテンプレートにWP_Query()とかで新しいループを作成して・・・なんてことはできないのです。
それがしたい場合、ブロックのエリアを設定して、その上でブロックをそこに配置してあげる必要があるようです。
CCK(Content Construction Kit)
CCKはカスタムフィールドをコンテンツタイプごとに作成するモジュールです。
WordPress的に言うなら、Magic Fields、カスタムフィールドテンプレート、Custom Field GUI Utilityあたりのような物でしょうか。
ただし、Drupalのコアのコンテンツ作成機能には、カスタムフィールドが付属していませんので、CCKを入れないとカスタムフィールドが使えませんので、やはりこれもほぼ必須。
また、Viewsとも連携することができ、カスタムフィールドの値を表示したり、その値で出力を限定したりすることが可能です。
ViewsとCCKは条件反射的にインストールするモジュールだと思っても差し支えないと思います。WordPressで不可能なサイトにはまず必須だと思われますので。
Taxonomy
タクソノミーを作成します。タクソノミーというのは、カテゴリ、タグのような記事の分類です。WordPressでは、カテゴリーやタグ、そしてカスタム分類に当たります。
また複数のコンテンツタイプにまたがるようなものも作成できます。
Blog
ブログエントリというコンテンツタイプを追加します。これは各ユーザーごとのブログを作成することができます。
普通に1人でサイトを管理する場合、要りません。このモジュールは主にコミュニティサイトやSNSなんかで使うことが多そうです。
Book
各ページの階層構造を定義できるコンテンツタイプを作成できます。WordPressとかだと、ページには親ページが設定できますが、それみたいな物です。
PHP filter
Exec-PHP,runPHPのようなことをするモジュールです。記事内のPHPスクリプトを実行できます。
ここまではコアモジュール、準コアモジュールについてでした。
お次はそうでないモジュールについて。
Pathauto
Drupalではコンテンツは基本的に、
[plain]
http://www.example.com/node/1
[/plain]
のようなURLを持ちます。数字の部分はコンテンツのIDです。コンテンツタイプごとで区別とかは特にされません。
ただし、エイリアスをたとえば”foo”と設定すると
[plain]
http://www.example.com/foo
[/plain]
というURLでアクセスができるようになります。しかし、ブログやニュースエントリーで毎回エイリアスを設定するのもあれなのでそれを自動で設定することができます。
WordPressにはデフォルトでついている機能ですが、Drupalには無いです。
また、Global Redirectというモジュールを入れると、/node/1でも同じコンテンツが表示されていたのが、/fooへリダイレクトがされるようになります。
Page Title
各コンテンツタイプ毎、カテゴリーページ、ユーザーのプロフィールなどのページのタイトル,$head_titleで主力されるものを変更するモジュールです。
Tiny Tiny MCE
DrupalにはWISWIGエディタが標準でついていないので、TinyMCEを追加するモジュールです。
他にも同系のモジュールはあるのですが、これが一番設定が簡単でした。
IMCE
ファイルなどのアップローダー、および、ファイルビュアーなどのモジュールです。WordPressには強力な、メディア管理の機能が備わっているのですが、Drupalにはそういったものは存在せず、画像をサーバーにアップして、それのフルパスを書いて表示するようになります。
そんなときに使えるモジュールです。Tiny Tiny MCE等のモジュールとも連携して、エディタに画像の挿入のボタンを追加します。
ImageCache
画像のロード時にサムネイルを作成するモジュール。WordPressのそれとは違い、アップロード時にキャッシュを作って後々変更ができないみたいなことが無いのはメリット。また、その作成できるサムネイルは何パターンも作成できます。
ImageField
画像を入れられるカスタムフィールドを作成するモジュール。
Webform
高機能なお問い合わせフォームを作れます。デフォルトにも一応あるのですが、それよりかなり高機能。
jQuery Update
6系だと、デフォルトのjQueryが1.2.6なので、それを1.3.2にするモジュール。6系の時はもはや必須です。
7だとjQuery1.4.4が標準装備なので、余り問題ないかと思います。
と・・・ざっと挙げただけでもこれだけのモジュールがあります。とにかくモジュールは星の数ほどあります。その中から必要な物をピックアップしてコアにどんどん追加して、自分色に染め上げていくのがDrupalの基本的な使い方になるのかなと思います。
コア自体はかなりシンプルですので、Drupalで普通のコーポレートサイトを作ってみたり、はたまた、SNSを作ってみたり、フォーラムだったり、ECサイトだったり、Magentと連携したり・・・・とかなり多種多様なサイトが制作できるCMSだと思います。
WordPressでカスタム投稿、カスタム分類をばりばり使って無茶するくらいなら、会員専用ページを作るなら、コミュニティサイト的要素(ユーザー別コンタクトフォームやらユーザーのプロフィールやら)があるならDrupalという選択肢はありだと思います。
ただ、記事を更新していくとかはやはり、WordPressの方が勝る点が多いです。適材適所で使い分けて行けたらなかなか楽しいんじゃないかなと思います。