Drupalは、シンプルかつ高機能なCMSです。ユーザーも欧米を中心に相当数います。
本体は非常にシンプルで、機能の大半は「モジュール」と呼ばれる拡張プログラムを組み込む事で実現されています。
このモジュールは非常に数が多く、面白い機能を持っているものもたくさんあります。
学術系な人・団体でよく使われているCMSです。
使ってみると、「数あるCMSの中でも、最も論理的で洗練されたCMSの一つ」とわかります。Drupalに熱中する上級者が多いのも納得出来ます。
Drupalは、ちょっと独特な用語や発想がいろいろ出てきます。
「コンテンツを、可能な限り中央管理」します。Joomla!とはなどは一応「メインコンテンツは中央管理」ですが、コンポーネント1)群が独自に管理するコンテンツも多いです。
そういうコンテンツは「同じサイトにあり、同じテンプレートを使っている」ものの、お互いはほとんど連携していません。
が、Drupalは「少々無理をしてでも、コンテンツを中央管理する」ようになっています。
なので、「サイト全体から最新記事を5つ抜き出す」みたいな事が割と簡単に出来ます。
モジュールを追加する事で、文書・画像・音楽ファイルなどを「同格のノード(≒コンテンツ)」として扱えるようになります。
画像は標準では「文書ノードに添付されたオマケ」扱いですが、Imageモジュールを使うと「文書と同格の、コンテンツの一種」となります。
これにより、たとえば「旅行の写真だけを一覧表示する(文章は表示しない)」といった事が割と簡単に出来ます。
パス(Drupalパス)は、簡単に言えば「モジュールに一定の指示(パラメータ)を与えて起動させるための記述」です。
たとえば「node/30」なら、「nodeモジュール2)を呼び出し、管理番号30の記事を表示させる」になります。
Drupalの中でも、特に理解しにくい概念です。が、わかってしまうと結構簡単です。
「taxonomy」という言葉が表すとおり、「分類」です。それも、いわゆる普通のブログなどで見られる「カテゴリ分け」ではなく、生物学などで言う「分類」と考えればよいです。
最初の頃は、ブログのカテゴリや単純なタグ付けのようなものだと思っていて、「何で、用語(term)を他のボキャブラリ(vocabulary)に移動出来ないんだ?」「何で、ボキャブラリ同士をグループ化出来ないんだ?」とか思っていました。
が、モジュールの解説を見ていくうち、そういう考え方は根本的に間違っているらしいとわかってきました。
たとえば、Drupalで子供向け動物事典を作る場合。
| ボキャブラリ | 用語 |
|---|---|
| 「生物の一般的な分類」 | 「動物界」「植物界」「哺乳類」「両生類」「爬虫類」… |
| 「生物を住みかで分類」 | 「陸の生き物」「草原の生き物」「水の生き物」「磯の生き物」「深海の生き物」… |
| 「生物を大きさで分類」 | 「1mm未満」「10cm前後」「1m~2m」「数m」「数十m」… |
という感じになります。3)
こうやって並べると、用語(term)を別のボキャブラリに移動させるのは「明らかにおかしな事」だと気づきます。
taxonomyという言葉は公式サイトでもなじみにくいのか、しばしば「category」と書かれています。
ですが、ややこしい事に「categoryモジュール」といったものも存在します。このモジュールは、一般的によく見られる「階層構造のカテゴリ分け」をするためのモジュールです。「これはtaxonomyモジュールとは違う!」とリキの入った解説をされていたりします。
論理的で統一感が取れて使いやすい…はず…なのに、ごちゃごちゃしてかなり使いにくいCMSです。
バックエンド(管理画面)とフロントエンド(訪問者に見せるサイト)が一体化しています。標準設定では、管理者のみに「編集」とか「管理」リンクが見えます。
これはこれで便利ですし、論理的です。が、慣れるまでは結構操作しにくいです。
お手軽インストーラがついていません。なので、phpMyAdminあたりを使ってデータベーステーブルを手動で作る必要があります。
4.6.6以前はモジュールのインストールをする際も、手動でデータベーステーブルを作る事がよくありました。4)
モジュールをある程度入れないと使い物にならない反面、モジュールを入れれば入れるほど操作が急激に複雑になってきます。
モジュールの設計がしっかりしているため、PHPやMODxとはのスニペットタグのようなものはほとんど視界に入りませんし、手作業でいちいち書き込む事もめったにありません。
その分使いやすいはず…なのに、実感としては逆に使いにくくなっています。
MODxとはのスニペットやWordPressとはのプラグインには「少々強引でもいい。とにかく今ヤリタイ事を簡単に実現できればいいんだ。他の機能に悪影響を及ぼさない事だけ気をつけろ」といったイージーさが、しばしば見られます。
が、Drupalのモジュールの大半は、かなり厳密に設計されています。
こういうあたりが、「妙な使いにくさ」の原因になっているのかもしれません。