DrupalはGNU GPL2ライセンスのもと、オープンソースとして開発・配布がおこなわれている非常に洗練されたCMSです。
PHPで記述され、MySQLやPostgresSQLなどのデータベースと共に動作し、個人のブログから企業のサイトまで幅広く利用することができます。
最新バージョンのDrupalは OpenIDやコンテンツの多言語化などの機能も標準で実装され、多言語コミュニティサイトの構築にも非常に適したCMSに進化しています。
Drupalの特徴
ユーザー(権限:ロール)
Drupalでは、ユーザー権限のグループを「ロール」と言います。
管理ページへのアクセス権をはじめ、コンテンツの作成・更新・削除や拡張モジュール設定権限までロールごとに細かく設定可能です。
デフォルトでは、2種類(「匿名ユーザー」、「認証ユーザー」)が用意されており、自由に増やすことができます。
ロールを ポータルサイト、会社や団体の組織等に合わせて追加する、柔軟に対処する事ができます。
また、権限(グループ)に関する様々な拡張モジュールから用途にあったものをインストールすることにより、SNSやEC(ネットショップ)に発展できるほどの権限制御が可能になります。
ユーザー(プロフィール)
Drupal7からは、一般のコンテンツと同様、(Drupal標準の)フィールドを自由に追加することができるようになりました。
管理ページよりシステム固有の項目を簡単に増やせます。標準フィールドなので、検索や絞り込みも一般のコンテンツと同様の扱いになり、より使いやすくなりました。
コンテンツの排他
上記のような柔軟なユーザー権限制御により、
- コンテンツの作成
- コンテンツの更新
- コンテンツの削除
- コンテンツの閲覧
の権限制御が、グループ単位(ロール)、ユーザー(個人)単位に制御することができます。
例)複数の権限を持った人が関わるコンテンツでは、以下のように権限を複数のユーザーに分散できます。
- ライター
作成、編集(自分が作成したページのみ) - エディター
編集、削除、掲載/非掲載の管理 - マネージャー
各ユーザーの権限の管理(ライター/エディターの任命)
一覧・表・ブロック
Drupalの大きな特徴の一つであるViewsモジュールにより、各コンテンツから自由にフィールド(項目)を自由に抽出することができます。
新着、FAQ、製品、物件等々、用途に応じた抽出を行う「設定が管理ページ」で実現します。
これにより、「このコンテンツを見たユーザーは・・・のコンテンツも…」とか「人気のある○○」のような動的なブロックやメニューが普通に追加できます。
API
Drupalは、コアをはじめ、既存の拡張モジュールを改変することなく全体の挙動を変化させることができる機構(HOOK)を備えています。
既存のコードを書き換えることなく、固有の要件を実現できるのがDrupalの最もDrupalらしいところです。同様の(自由度や優れた)機構をもったOpen Sourceは存在しますが、Drupalほど洗練されてはいません。
Drupalはフレームワークでありながら、インストール直後、すぐにCMSとして利用可能です。
トリガー/アクション
Drupalは標準でトリガー/アクション機構を備えています。さらに拡張モジュール(Rules)を追加することにより、管理ページ上で「トリガー」と「アクション」を簡単に設定できるようになります。
例えば、
トリガー)コンテンツAの新規作成時、アクション)コンテンツBを自動生成する。
トリガー)新規ユーザー登録時、アクション)同時にユーザー専用コンテンツZを作成。 トリガー)ユーザーがログイン、条件)ロールNのユーザーなら、
アクション)強制的にパスワード変更フォームに飛ばす。
等々、、、
管理ページ上で、システムの挙動を割り振るような感覚で仕上げてゆくことが可能です。
多言語
Drupalは多言語が得意。と言われます。以下がコア対応言語です。
Afghanistan Persian,Afrikaans,Albanian,Amharic,Arabic,Armenian,Assamese,Asturian,Azerbaijani,Bahasa Malaysia,Basque,Belarusian,Bengali,Bosnian,Breton,Bulgarian,Burmese,Catalan,Chinese, Simplified,Chinese, Traditional,Croatian,Czech,Danish,Dutch,Dzongkha,English, British,Esperanto,Estonian,Faeroese,Filipino,Finnish,French,Frisian, Western,Galician,Georgian,German,Greek,Gujarati,Haitian Creole,Hebrew,Hindi,Hong Kong Cantonese,Hungarian,Icelandic,Indonesian,Irish,Italian,Japanese,Javanese,Kannada,Kazakh,Khmer,Kinyarwanda,Korean,Kurdish,Kyrgyz,Lao,Latvian,Lithuanian,Lolspeak,Luxembourgish,Macedonian,Malagasy,Malayalam,Maltese,Maori,Marathi,Mauritian Creole,Mongolian,Nepali,Northern Sami,Norwegian Bokmål,Norwegian Nynorsk,Occitan,Oriya,Ossetian,Pashto,Persian, Farsi,Polish,Portuguese, Brazil,Portuguese, International,Portuguese, Portugal,Punjabi,Rohingya,Romanian,Russian,Scots,Scots Gaelic,Serbian,Sindhi,Sinhala,Slovak,Slovenian,Spanish,Swahili,Swedish,Swiss German,Tamil,Tamil, Sri Lanka,Telugu,Test,Thai,Tibetan,Tigrinya,Turkish,Tuvan,Uighur,Ukrainian,Urdu,Vietnamese,Welsh
デザイン
Drupalは自由度と拡張性を評価される反面、デザインに関してあまり語られていません。
コミュニティで無料配布されているテーマ(テンプレート)を全て見て、がっかりした方も多いかと思います。
有料で販売されているDrupal専用テーマを見ても、あまりしっくりこないのではないでしょうか。
ブログやパーソナルなサイト、およびポータルサイトを構築する場合なら なんとかなりそうだが、企業向けのサイトや、動的なサイト、なにかに特化したようなサイトを構築することができるのだろうか?
と感じると思います。
確かに、単純に既成テーマを持ってきて「着せ替える」だけでは、しっかりとした"デザイン"に仕上げることはできません。
しかし、Drupalのテーマ構造、アーキテクチャをしっかり理解したプロなら、容易に固有の要件に対応する事が可能です。
Drupalのテンプレートは規則的に構造化されており、最小限のコーディングで目的のデザインに仕上げることができます。