Think Future, Imagine Alternative, Create Real!Power of Drupal
当コラムについて
コラム「Power of Drupal」では、単なる CMS を超えたウェブ・アプリケーション・フレームワークとしての Drupal の本質・可能性に迫ります。Drupal が持っているパワーの一端をお伝えできればと考えています。
問題意識
Web のアプリケーション化が進む今日、ウェブ・アプリケーション・フレームワークとも言える Drupal は、高機能を実現する CMS として、また、システム開発の基盤として、非常に有望な選択肢であると考えています。
Drupal の日本での普及を目指して
このコラムが、ウェブ・アプリケーション・フレームワークとしての Drupal の特徴を伝えるものとして、Web の可能性を追求する中小企業・社会企業家・NPO の方々や個人で活動する方々の参考になりましたら幸いです。

2010年04月22日

Column About Drupal : Power of Drupal vol.2

Drupal、6つの自由自在をもたらすCMS

Power of Drupal
当コラム の前回のエントリー「Drupal はウェブ・アプリケーションの夢を見るか」では、Drupal という CMS を特別な存在にさせている最も根本的な要因であると考えられる「Drupal は、優れたウェブ・アプリケーション・フレームワークである」という特徴について、解説を試みました。つまり、Drupal は、単に静的にページを表示するのみではなく、プログラミング次第で、もしくは、モジュールをインストールすることにより、「その機能を如何ようにも高度化させることができる」「様々な要求に対応する高機能・高サービスなサイトを構築することができる」というわけです。TransNetCreation では、これが Drupal という CMS の本質ではないか、と考えています。そして、これは、サイトの将来性を考えた場合、非常に大きな利点となるものです。そこで、今回のエントリーでは、CMS としての Drupal の基本機能をもう少し具体的に見てみることで、Drupal の特徴となるそのメリット(利点・長所)について検討してみたいと思います。なお、本エントリーの記述は、Drupal の現時点における最新版であるバージョン6.16に基づいています。

Drupal、6つの自由自在をもたらすCMS

Section.1

CMS について考える際の4つの視点

CMS には、コンテンツを作成するという面と、作成したコンテンツを表示するという面がある。
また、コンテンツの作成・表示においては、ユーザーを管理するという必要性が生じる。
さらに、単にコンテンツを作成・表示するだけでなく、管理者・ユーザーの双方に様々な機能を提供するという側面もある。
というわけで、本エントリーでは、CMS としての Drupal の基本機能について、
コンテンツ作成面(section.4~12)
コンテンツ表示面(section.13〜14)
ユーザー管理面(section.15〜18)
機能面(section.19〜20)
という4つの視点から、そのメリット(利点・長所)について検討していきたいと思う。


 ※当コラムは、「スライドショー」になっています。
  Next ボタン のクリックにより、ページ遷移無しで、瞬間的に「次のセクション」に切り替わります。
  同様に、Prev ボタン のクリックにより「1つ前のセクション」に、
  First ボタン のクリックにより「最初のセクション」に、
  Last ボタン のクリックにより「最後のセクション」に切り替わります。
Section.2

Drupal とは、非常に自由度の高い CMS である

結論を先取りすると、Drupal という CMS は「非常に自由度の高い CMS である」ということである。
これを、本エントリーでは、「6つの自由自在」という言葉で表現している。
前セクションで挙げた「4つの視点」のうち、「コンテンツ作成面」は、
コンテンツそのもの
コンテンツをリスト化したコンテンツリスト
コンテンツやコンテンツリストの組み合わせ
という3つのサブの視点から構成されている、と言える。
ということで、「4つの視点」は、サブの視点を含めると「6つの視点」ということなり、
これに対応して「6つの自由自在」ということになる。
すなわち、
Drupal とは、これらの「6つの視点」に対応して「6つの自由自在」をもたらす CMS である
ということが、本エントリーの結論である。
Section.3

結論:Drupal とは、6つの自由自在をもたらす CMS である

Drupal のメリットに関して、本エントリーにおける「6つの自由自在」とは、次の通りである。
1 コンテンツ作成の自由自在
  〜コンテンツ作成面のメリット その1〜
2 コンテンツリスト作成の自由自在
  〜コンテンツ作成面のメリット その2〜
3 コンテンツやコンテンツリストの組み合わせの自由自在
  〜コンテンツ作成面のメリット その3〜
4 レイアウトデザインの自由自在
  〜コンテンツ表示面のメリット〜
5 ユーザー対応の自由自在
  〜ユーザー管理面のメリット〜
6 機能・サービス拡張の自由自在
  〜機能面のメリット:〜
以下のセクションでは、これらについて、1つずつ解説を試みたい。
Section.4

1 コンテンツ作成の自由自在

 〜コンテンツ作成面のメリット その1〜
Drupal においては、一般的な意味でのウェブページを構成する最小単位である「投稿」は、
全て「ノード(node)」と呼ばれる。
ただし、Drupal のノードは、そのフォーマット毎に、カテゴライズされる。
ノードにおけるこのフォーマットのことを、Drupal では「コンテンツタイプ」と呼ぶ。
具体的には、インストール直後の状態では、
「ページ(page)」と「ストーリー(story)」というコンテンツタイプが使用可能となっている。
また、デフォルトでインストールされているモジュールを有効化することで使用可能となるものに、
「ブログ(blog)」と「フォーラムトピック(forum)」というコンテンツタイプがある。
ということで、Drupal においては、デフォルトでは、
「ページ」「ストーリー」「ブログ」「フォーラムトピック」といったコンテンツタイプのノードを作成することにより、
サイトを構築していくことになる。
Section.5

1 コンテンツ作成の自由自在

 〜コンテンツ作成面のメリット その1〜
蛇足になるが、これらのコンテンツタイプの内容は、以下の通りである。
「ページ」と「ストーリー」は、どちらも単独のウェブページを表示する場合に用いられる。
ただ、デフォルト設定では、
「ページ」は、コメントを受け付けず、トップページが表示する最新リストにも掲載されないのに対して、
「ストーリー」は、コメントを受け付け、トップページが表示する最新リストにも掲載される。
「ブログ」は、コメントを受け付け、ユーザー毎のブログリストページに掲載される。
「フォーラムトピック」は、コメントを受け付け、該当するフォーラム(電子掲示板)のリストページに掲載される。
しかし、これらの情報はそれほど重要ではない。
というのは、これらはある程度変更可能であるし、
次セクションで説明するように、
Drupal は、必要とするコンテンツタイプを新たに自在に追加することができるからである。
Section.6

1 コンテンツ作成の自由自在

 〜コンテンツ作成面のメリット その1〜
コンテンツタイプとは、「ノードの入力・設定・表示に関するフォーマット」と理解すれば良い。
具体的には、コンテンツタイプは、デフォルトでは、
「タイトル」「本文」という2つの入力欄を備えており、
トップページへの掲載の有無やコメント受付の可否等を決定することにより設定する。
したがって、デフォルト状態のままでは、それほど選択肢は多いとは言えない(つまり、自由度が高いとは言えない)。
しかし、Drupal には、「CCK(Content Construction Kit)」という、非常に強力な追加モジュールが存在している。
CCK モジュールをインストールすることにより、
コンテンツタイプに、必要なだけ、新たに入力・設定・表示フィールドを追加することが可能となる
これにより、管理者は、自由自在にコンテンツタイプを作成することができるようになる。
Section.7

1 コンテンツ作成の自由自在

 〜コンテンツ作成面のメリット その1〜
このように、新たに必要とするコンテンツタイプの作成が可能となることにより、
望む通りにサイトのページを構成することができるようになる。
実際にサイトを構築する場合には、そのサイトに応じて、必要なだけ適切なコンテンツタイプを作成することになる。
つまり、Drupal に予め用意されているコンテンツタイプに合わせてサイトを作るのではなく、
これから作るサイトに合わせて Drupal のコンテンツタイプを設定すれば良い、というわけである。
したがって、Drupal は、
自由自在にコンテンツ(=コンテンツタイプ=ウェブページ)を作成することができる
というメリットを持っている、と言える。
Section.8

2 コンテンツリスト作成の自由自在

 〜コンテンツ作成面のメリット その2〜
では、次に、コンテンツリストの作成について見てみることにする。
Drupal のデフォルトでは、コンテンツリスト、すなわち、ノードリストには、
「トップページ」=ストーリーノードとブログノードの最新のリスト、
「各ユーザーのブログトップページ」=各ユーザーのブログノードの最新のリスト、
「各フォーラムのトップページ」=各フォーラムに投稿されたフォーラムトピックノードのリストがある。
ただし、デフォルトでは、それほど細かい設定はできない。
Section.9

2 コンテンツリスト作成の自由自在

 〜コンテンツ作成面のメリット その2〜
しかし、Drupal には、「Views」という、非常に強力な追加モジュールが存在している。
Views モジュールは、他の CMS がタグ等で色々工夫しつつ出力条件をコントロールしているような作業を一手に引き受ける。
すなわち、Views モジュールを追加インストールすることにより、
考えられ得るほぼ全ての条件に対応したリストの出力が可能になる(これは、サイトの運用管理者向けの対応と言える)。
また、プログラミングが可能であれば、Views モジュールを使わずに、直接データベースにアクセスすることで、
テーマ(そのサイトのコンテンツの構造や見映えをコントロールする仕組み)や
カスタムモジュール(そのサイトのためだけに特別に作れらたモジュール)によって、
必要なリストを出力することが可能である(これは、サイトの開発者向けの対応と言える)。
どちらの方法をとるにせよ(実現方法が複数存在するという点も Drupal の柔軟性=自由度の高さを示している)、
Drupal は、
必要とするコンテンツリスト(=ノードリスト=ウェブページのリスト)を自由自在に出力することができる
というメリットを持っている、と言える。
Section.10

3 コンテンツやコンテンツリストの組み合わせの自由自在

 〜コンテンツ作成面のメリット その3〜
では、コンテンツ作成面の最後として、コンテンツやコンテンツリストの組み合わせについて見てみることにする。
話が戻るが、「フォーラムトピック」というコンテンツタイプは、電子掲示板における1つの投稿に該当している。
つまり、Drupal は、デフォルトで、電子掲示板の機能(サービス)を提供できるわけである。
また、「ブログ」というコンテンツタイプは、一般的な意味でのブログにおける1つの投稿に該当している。
つまり、Drupal は、デフォルトで、ブログの機能(サービス)を提供できるわけである。
(正確には、Drupal は、デフォルトで、マルチ・ユーザーのブログ・サービスを提供することができる)
また、このことは、同一のサイトで、一方で電子掲示板(フォーラムトピックノードのリスト)を展開しつつ、
他方ではブログ(ブログノードのリスト)を展開する、といったことが可能であることを示している。
もちろん、他にも必要な機能があれば、それらを含めて、全てを複合したサイトを構築できるわけである。
Section.11

3 コンテンツやコンテンツリストの組み合わせの自由自在

 〜コンテンツ作成面のメリット その3〜
先ほど見たように、CCK モジュールをインストールすることにより、
Drupal の管理者は、容易に、カスタマイズされた新しいコンテンツタイプを作ることができるようになる。
そして、そのコンテンツタイプに、新しいフィールドを追加することができる。
追加するフィールドは、他の CMS で言うところの「カスタムフィールド」に相当するものである。
それは、多くの場合には、テキスト入力欄であったり、数値入力欄であったりする。
しかし、Drupal において CCK モジュールが追加するフィールドは、
単に静的にコンテンツを入力したり表示したりするだけに留まらず、
そこに複雑なプログラム処理やアクセスするユーザーとのインタラクション機能を担わせることができる。
Section.12

3 コンテンツやコンテンツリストの組み合わせの自由自在

 〜コンテンツ作成面のメリット その3〜
例えば、追加するフィールドに対して、
スライドショー機能(例えば、TNC HTML Slideshow Field Module)を持たせたり、
メールフォーム機能(例えば、TNC Ajax Contact Form Field Module)を持たせたりすることもできる。
モジュール制作者の観点から言わせてもらえれば、論理的には、追加するフィールドに 
e コマース機能(サービス)やマイクロブログ機能(サービス)を持たせることも可能である。
(もちろん、CCK モジュールを使わずに、単独でこのような機能を提供するという方法もあり得る)
このように、Drupal は、電子掲示板やブログに限らず、
特定のコンテンツや特定のコンテンツリストにより、サイト上で様々な機能・サービスを展開することが可能である。
そして、それらを、複合的に構築・運用することが可能である。
ということで、Drupal は、
異なるコンテンツや異なるコンテンツリスト(=機能・サービス)を複合的に組み合わせて、
自由自在にサイトを構築・運用することができる
というメリットを持っている、と言える。
Section.13

4 レイアウトデザインの自由自在

 〜コンテンツ表示面のメリット〜
続いて、コンテンツ表示面について見てみることにする。
コンテンツ表示面における Drupal の特徴とは、Drupal が「テーマシステム」を採用している、ということである。
テーマシステムというのは、サイトの各ページの
文書構造(HTML)・見映え(CSS)・動き(JavaScript)等を一体的に管理するための仕組みである。
Drupal では、テーマシステムの中で機能する「テーマ」を作成することにより、
サイトのコンテンツ構造・レイアウトデザイン・ユーザビリティを自由自在にコントロールすることが可能となっている。
また、あるテーマが適用される状態から別のテーマが適用される状態へと設定を変更することにより、
一瞬で、サイトのコンテンツ構造・レイアウトデザイン・ユーザビリティを変更することができる。
この仕組みは、サイトを継続的に運用しつつ、
サイトの模様替えをしたり、サイトをリニューアルしたりする場合に、大きな効果を発揮する。
Section.14

4 レイアウトデザインの自由自在

 〜コンテンツ表示面のメリット〜
テーマシステムは、今日では、その利便性から多くの CMS で採用されているため、
Drupal の存在を殊更際立たせるものとは言えないかもしれない。
しかし、Drupal 単体で見た時には、テーマシステムは、
サイトの運用管理者・開発者に対しては、
レイアウトデザイン等の自由と、その変更を容易にするという利便性を提供し、
サイトを訪れるユーザーに対しては、サイトの魅力を高めるという効果を発揮するため、
Drupal は、
テーマシステムにより、サイトのレイアウトデザイン等を自由自在にコントロールすることができる
というメリットを持っている、と言える。
Section.15

5 ユーザー対応の自由自在

 〜ユーザー管理面のメリット〜
続いて、ユーザー管理面について見てみることにする。
Drupal は、基本機能として、アクセスしてくるユーザーに対して、
そのユーザーがログインしているのか(=認証済みユーザー)、ログインしていないのか(=匿名ユーザー)を判別する。
そのため、Drupal は、デフォルト状態でも、
会員か会員でないかを識別し、会員だけにコンテンツの閲覧やコンテンツの作成といったサービスを展開する
「会員制サイト」を構築・運用することが可能である。
Section.16

5 ユーザー対応の自由自在

 〜ユーザー管理面のメリット〜
このようなことができるのは、Drupal が、
表示するウェブページ用の HTML を予め用意しておく Movable Type のような「静的 CMS」ではなく、
(静的 CMS において「会員制サイト」のようなことをしようとした場合には、技術的に特別な対応が必要になる)
ユーザーからのリクエストに応じて動的に HTML を生成する「動的 CMS」だからである。
(「静的 CMS」「動的 CMS」 については、
 前回のエントリー「Drupal はウェブ・アプリケーションの夢を見るか」の section.5 を参照)。
Section.17

5 ユーザー対応の自由自在

 〜ユーザー管理面のメリット〜
そして、ログイン・ユーザーに対しては、さらにきめ細かく、
権限範囲に応じてその役割(ロール)を任意に設定できるようになっている。
例えば、コメント管理を行う「コメント管理者」の役割、
コンテンツ作成を行う「コンテンツ作成者」の役割などを設定し、
それを特定ユーザーに割り当てることができる。
それにより、効率的にサイトを管理・運営することができるようになっている。
Section.18

5 ユーザー対応の自由自在

 〜ユーザー管理面のメリット〜
また、極端な話をすれば、
(一般的に、そのような設定は行わないが、)匿名ユーザー(=ログインしていないユーザー)にも
「コンテンツの作成」を含めて与えられる限りの全ての権限を与えることもできるし、
会員制サイトのように、匿名ユーザーにはコンテンツの閲覧さえも許可しないといったこともできる。
つまり、設定次第で、非常にオープンなサイトにすることもできれば、
非常にクローズドなサイトにすることもできるわけである。
そして、テーマやモジュールにより、
さらに細かく、アクセスしてくるユーザー個人毎に表示するコンテンツを変化させることも可能である
したがって、Drupal は、
ユーザーに応じて、自由自在にサイトの状態を変化させることができる
というメリットを持っている、と言える。
このため、Drupal は、非常に幅広く、
一般的なコーポレイトサイト(企業サイト)、多様なユーザー権限を設定するイントラネットサイト、会員制サイトなど、
色々なタイプのサイトの構築・運用を行うことが可能となっている。
Section.19

6 機能・サービス拡張の自由自在

 〜機能面のメリット〜
続いて、機能面について見てみることにする。
Drupal は、
モジュールをインストールすることによりサイトの機能を大幅に拡張することができる
ようになっている。
Drupal は、デフォルトで、電子掲示板機能やブログ機能を提供できるが、
その機能も、実は、「forum」モジュールや「blog」モジュールという、
デフォルトで用意されたモジュールによって実現されている。
また、当エントリーのコンテンツ作成面で挙げたように、Drupal は、管理者に対して、
「コンテンツ作成の自由自在」「コンテンツリスト作成の自由自在」というメリットを提供するわけであるが、
それらは、CCK モジュールや Views モジュールを追加インストールすることにより得られたものであった。
したがって、コンテンツ作成面におけるこれらのメリットも、元を正せば、
モジュールをインストールすることによりサイトの機能を大幅に拡張することができる
という特徴に由来していることになる。
また、当エントリーのユーザー面で挙げた「ユーザー対応の自由自在」というメリットも、その根幹は、
コアとしてインストールされている「user」モジュールにより実現されるものである。
このように、Drupal とは、実は、
多数のモジュールにより構成されているモジュールの複合体を育む培養器(=土台)のようなものである
と言える。
Section.20

6 機能・サービス拡張の自由自在

 〜機能面のメリット〜
また、前回のエントリー でも述べたが、Drupal は、
テーマ開発(テーマ・プログラミング)、モジュール開発(モジュール・プログラミング)を支援するために、
様々なプログラミング上のツールを多数用意している。
このような開発者を支援する仕組みと、
開発者により開発されたモジュールやテーマを動かす仕組み(モジュールシステム、テーマシステム)が、
車の両輪のように機能することで、
Drupal は、優れたウェブ・アプリケーション・フレームワークである
と評されることになるのであろう。
と言うよりも、正確には、この言葉こそが「Drupal の本質を表している」と言える。
そして、その結果が、Drupal のコアモジュールや、Drupal にデフォルトで用意された準コアモジュールや、
Drupal の開発者用サイトに登録された多数の汎用追加モジュールとなって現れているということであろう。
というわけで、Drupal は、
必要に応じて、サイトの機能・サービスを自由自在に高度化することができる
というメリットを持っている、と言える。
Section.21

Drupal は非常に自由度の高い CMS である

さて、ここまで、CMS を捉える4つの視点から出発して、それを細分化した6つの視点により Drupal を捉えて、
そのそれぞれについて「Drupal はユーザーに大きな自由度をもたらす」ということを見てきたわけである。
つまり、
Drupal とは、CMS を捉える「6つの視点」に対応して「6つの自由自在」をもたらす CMS である
ということである。
この6つの視点とは、それにより CMS 全体をカバーするものであるため、
Section.2 で先取りしたように、
Drupal という CMS は「非常に自由度の高い CMS である」
との結論を導くことができる。
Section.22

真っ白なキャンバスとしての Drupal

最後に、ここまでの議論を踏まえて、
Drupal を最も特徴づけている「機能・サービス拡張の自由自在」という特質を再考することで、
Drupal という CMS がどういう CMS なのかについて迫ってみたい。
既に見てきたように、Drupal の本質は、
Drupal は、優れたウェブ・アプリケーション・フレームワークである
という言葉で表され、Drupal のコアは、
多数のモジュールにより構成されているモジュールの複合体を育む培養器(=土台)のようなものである
ということであった。
すなわち、我々が Drupal と呼んでいるものは、Drupal のコアという非常に抽象化された枠組みの上に、
user モジュールなどのコアモジュール、
forum モジュールや blog モジュールなどの準コアモジュール、
CCK モジュールや Views モジュールなどの汎用追加モジュール、
特定サイト用に作成されたカスタム追加モジュールなどがインストールされることにより、
そこに様々に具体的な機能が追加され実現されたものである(=モジュールシステム)、ということになる。
そして、それらにより構成されたページの骨格に対して、テーマが適用されることにより、
我々が普段目にするようなレイアウトデザインを伴ったウェブページとして提示される(=テーマシステム)、
ということであった。
つまり、
Drupal のコア部分は、真っ白なキャンバスのような存在であり、
それゆえに、サイト管理者・開発者に様々な面での自由を提供し、
サイト管理者・開発者は、モジュールシステムやテーマシステムを通じて、
そこに、望むように、様々に、具体的な絵を描くことができるようになっている
Drupal とはそんな CMS であるようだ。
とすれば、Drupal においては、
「何ができるのか」というよりも「何がしたいのか」「何を描きたいのか」が重要になる
ということであろう。
そして、
「何がしたいのか」「何を描きたいのか」が明確になった時には、
Drupal は、その実現・成長・発展を促進するための強力な培養器(=土台)となる
ということである。


最後までお読みいただき、ありがとうございました。
読者の皆様にとりまして、当エントリーが何らかの意味で価値あるものとなりましたら幸いです。
なお、当コラム vol.1「Drupalはウェブ・アプリケーションの夢を見るか」では、
総論的ではありますが、Drupal の本質面について解説を試みております。
また、当サイトの Drupal セクション におきましても、
TransNetCreation における Drupal への取り組みと共に、Drupal の特徴について解説しております。
Drupal に関して、より幅広くお知りになりたいという方は、そちらも参考にしていただけましたらと思います。
■2011年01月06日追記
当サイトの日記「DIARY :: AROUND THE CORNER」の2011年01月06日のエントリーでは、
祝! Drupal 7 正式リリース」と題して、
リリースされたばかりの Drupal 7 について、管理面・開発面から、非常に簡単ですがレビューしています。

2019年06月
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30