Drupal ()は、プログラミング言語PHP で記述されたフリーでオープンソース のモジュラー式フレームワーク であり、コンテンツ管理システム (CMS) である。昨今の多くのCMSと同様に、Drupalはシステム管理者 にコンテンツ の作成と整理、提示方法のカスタマイズ、管理作業の自動化、ウェブサイト への訪問者や寄稿者の管理を可能にする。
その性能が、コンテンツ管理から幅広いサービス や商取引を可能にすることにまで及ぶことから、Drupalは時々「ウェブアプリケーションフレームワーク 」であると評される。Drupalは洗練されたプログラミングインタフェース を提供するものの、基本的なウェブサイトの設置と管理はプログラミング なしに成し遂げることができる。Drupalは一般に、最も優れたWeb 2.0フレームワークの一つであると考えられている[3] 。
DrupalはWindows 、macOS 、Linux 、FreeBSD 、OpenBSD 、Solaris 10、
OpenSolaris を始め、Webサーバ Apache (1.3以上)またはIIS (IIS5以上)、及びPHP(4.3.3以上)をサポートするあらゆる環境で動作する。Drupalはコンテンツや設定を格納するために、MySQL 、PostgreSQL 、SQLite 、MongoDB のようなデータベース管理システム を必要とする。
歴史
DrupalはもともとDries Buytaert がBBS システムとして書いたもので、2001年 にオープンソース ・プロジェクトとなった。Drupal の綴りは、"drop"(滴 )を意味するオランダ語 の単語 "Druppel" を、英語に翻字 したものである。この名称は、現在は閉鎖されたウェブサイトDrop.orgから取られたもので、ここで使われていたコードがゆっくりとDrupalに発展した。Buytaertはこのサイトを "dorp"(そのコミュニティの様相を指す「村」のオランダ語)と呼びたかったが、ドメイン名をチェックするときにタイプミスをし、それがより良いと考え "drop" を採用した[4] 。
2006年5月から2007年4月まで、Drupalは公式サイトから600,000回以上ダウンロードされた[5] 。現在では大きなコミュニティがDrupalの開発を支えている[6] 。
バージョン8から、開発スピード・コード品質・セキュリティ・保守拡張性の向上を目的として、Symfony を開発フレームワーク として採用している。[7]
Drupalコア
"Drupal core" として知られるDrupalの公式リリースは、ほとんどのCMSに共通する基本的な機能を備えている。これらには個々のユーザ・アカウントの登録と維持、管理メニュー、RSS フィード、カスタマイズ可能なレイアウト、柔軟なアカウント権限、ログ機能、ブログ 作成システム、フォーラムなどを含み、典型的な企業サイト(brochureware )でも、インタラクティブなコミュニティサイトでも構築することができる。
ウェブサイトのコンテンツは、管理者の裁量で登録・匿名ユーザが寄稿することができ、様々な基準(日付、カテゴリー、検索など)で訪問者に対してアクセスさせることができる。Drupalコアはさらに、コンテンツ の分類や、アクセスしやすいキーワードで「タグ付け」することができる、階層的なタクソノミー (taxonomy ) システムを備えている。
Drupalはバージョン単位のコア機能のアップデートについて、詳細な変更履歴を保持している[8] 。
コア・モジュール
Drupalコアはさらに、コアのみで作成したウェブサイトの標準の機能性を、管理者が拡張することのできる「コア・モジュール」を備えている。
コアのDrupalディストリビューションは、以下を含む多くの機能を提供している。
複数ユーザによるコンテンツの作成・編集
高度な検索機能
コメント、フォーラム、投票
ユーザ・プロフィール
多層式のメニュー・システム
RSSフィードとフィード・アグリゲーター
様々なアクセス・コントロール制限(ユーザロール、IPアドレス、電子メール)
アクセス統計とログ記録
高負荷状態でのパフォーマンスを向上させるキャッシュと機能調整機能(スロットル)
説明的なURL(例えば "www.example.com/?q=node/432" ではなく "www.example.com/products" のようなもの)
ワークフロー・ツール(「トリガ」と「アクション」)
セキュリティ・リリースや新機能リリースのアップデート通知
OpenID のサポート
コア・テーマ
コア・テーマ "Garland" の調整に使われるカラー・エディタ
Drupalコアは審美的なルック・アンド・フィール をカスタマイズできる、いくつかの「コア・テーマ」を備え、管理者はこれらのテーマ を専用メニューから選ぶことができる。
Drupalコア5.0から導入された "Color" モジュールは、ウェブブラウザ のインタフェース を通じて特定テーマの配色を変更できるようにする。この機能はプログラミング の知識を持たない普通のユーザでも、より高度なカスタマイズができるように追加された。
翻訳
2008年2月の時点で、Drupalインタフェース用の翻訳 はデフォルトの英語 に加え、44カ国語が利用可能となっている[9] 。いくつかの言語は右から左へと読まれる(例えばアラビア語やヘブライ語)。Drupal 6は多言語におけるコンテンツおよびコンテンツ管理に対し、より一層のサポートを提供する。
自動アップデート通知
バージョン6.0から、寄贈されたモジュールやテーマ、あるいはDrupalコア自体の新しいバージョンが利用可能になるとき、Drupalは自動的に管理者へ通知できるようになった。これはインストール済みのDrupalを、最新の機能やセキュリティ修正で最新式の状態に保つのを補助する機能である。
コア・リリースには含まれていないが、バージョン5.x用にも同等の機能を提供するモジュールがある。
Drupalコアの拡張
Drupalコアは、API を通じて内部的にアクセスされる「フック 」と「コールバック 」システムを備えた、モジュール式であるように設計されている。[10] 。この設計は、サードパーティー による「寄贈された」(しばしば "contrib" と省略される)モジュール やテーマが、Drupalコアのコードを変更せずにDrupalのデフォルト動作を拡張したり、置き換えられるようにする。
コントリビュート・モジュールやテーマからDrupalコアのファイルを隔離するDrupalのモジュラー式設計は、柔軟性と安全性を増大し、Drupalの管理者がサイトのカスタマイズを上書きすることなく、Drupalコアの新しいリリースにきれいにアップグレードできるようにする[要出典 ] 。この分離を維持するため、Drupalの管理者はDrupalコアのソフトウェアを変更することは避けるよう指示されている。
コントリビュート・モジュール
Drupalのコントリビュート・モジュールは、イメージ・ギャラリー、カスタムのコンテンツ・タイプやコンテンツ・リスト、WYSIWYG エディタ、プライベート・メッセージング 、サードパーティー統合ツール等々、様々な機能を提供する。Drupalウェブサイトには、Drupalのコミュニティによって開発・寄贈された2147[11] (2008年6月1日現在)のフリーなモジュールがリストされている。
典型的なDrupalの設置では、以下の2つのモジュールが特に重要となる:[要出典 ] 。
Content Construction Kit (CCK) [12] は、サイト管理者が動的にコンテンツ・タイプを作成することを可能にする。コンテンツ・タイプは、ウェブサイトのデータベースに格納されるあらゆる種類の情報を表現する。これらにはイベント、招待状、レビュー、記事、製品などが挙げられるが、これらに限定されるものではない。
Views [13] は、サイト訪問者へのコンテンツの検索と提示を容易にする。
CCK API はDrupal 7でコア・モジュールに統合され、Views(ユーザインタフェース 以外の部分)はDrupal 8でコアに統合された。
コントリビュート・テーマ
コントリビュート・テーマは、Drupalで構築されたサイトのデフォルトのルック・アンド・フィール の適応や交換を行う。
Drupalのテーマは、一般的なサードパーティー製テーマデザイン・エンジンによってもたらされる、標準フォーマットを使用する。多くのDrupal用テーマは、PHPTemplate エンジン[14] や、それほどでもないがXTemplate エンジン[15] で書かれている。いくつかのテンプレートではハードコードされたPHPを使用する。
Drupalのテーマ・システムの初期バージョンは、Mambo やJoomla! 、あるいはPlone のテーマ・システムより設計指向型でなく、より複雑であるために批判[16] されたが、PHPTemplateとXTemplateエンジンのDrupalへの統合ではこれらの懸案事項のいくつかに取り組まれた。[要出典 ] 新しいDrupal 6のテーマ・システムは、PHPからHTML / CSS をさらに分離しようとする試みでテンプレートエンジン を活用する。新しいDrupal開発モジュール "Devel" は、Drupal 6を使用するテーマ作成者へ支援を提供する。
批評
オブジェクト指向の欠如とその後の改善
Drupalはもっぱら、オブジェクト指向プログラミング (OOP) ではなく、手続き型プログラミング が用いられる。DrupalはいくつかのOOPの特徴に近づけてはいるが[17] 、OOP自体の欠如は以下のことをもたらす。
基礎をなすプログラミング言語システムによって強化されたカプセル化 がない。これはプライベート・データの使用を排除し、名前空間 分離の存在しない実施をもたらす。名前空間の分離がないため、インストールされたモジュールやテーマでのあらゆる関数 や変数が、その他のインストールされたモジュール、インストールされたテーマ、あるいはDrupalコアにおけるその他の関数や変数の名前と同じ場合、「死の白画面」(en:white screen of death )を含む重大なエラーを起こす可能性がある[18] 。
オブジェクトの継承が「弱い」ためコードの再利用があまり効率的ではなく、多態性 はレンダリング層でのみ近づけられる[17] 。
バージョン8でコアのバッグエンドにオブジェクト指向の Symfony ライブラリが導入された。[19]
Drupalの擁護論者は、PHPのOOP言語機能は直接実装されていない(PHPバージョン4.xとの互換性を保証するため)にもかかわらず、OOPとアスペクト指向プログラミング (AOP)の原則がDrupalの設計には存在すると反証する[17] 。これはDrupalコアの将来のバージョンに移行するのに役立つが、それはバージョン7を皮切りに、PHP5によって提供されるOOPを活用し始めるであろう。Drupal 7は以前のPHPリリースと後方互換ではなくなるであろう。[20]
セキュリティ対策の記録
2008年1月から5月まで、Drupalコアで5つのセキュリティ脆弱性が報告され、修正された[21] 。また、ユーザから寄贈された2147のモジュールのうち、25のモジュールでセキュリティホールが発見され、修正された[21] 。
セキュリティホールが発見されるとともに、Drupalコアは規則的に新しいバージョンへと更新される。Drupalサイトの管理者は、“Update Status”モジュールによってこれらの新しいリリースを自動的に通知される[22] 。さらに、Drupal.orgは、セキュリティ告知メーリングリスト、全セキュリティ勧告の履歴[23] 、セキュリティ・マニュアル[24] 、最新のセキュリティ勧告のRSSフィード[25] を保持する。
ディストリビューション(配布パッケージ)
カスタマイズされたDrupalのディストリビューションには、いくつかの再パッケージ化されたサードパーティー製モジュールが含まれ、DrupalとvBulletin が統合されたvbDrupal を含むいくつかのディストリビューションでは、徹底的な変更が加えられている。
ハワード・ディーン の2004年のアメリカ大統領選挙戦を支援する、多くの独立したウェブサイトのホストとして機能したDeanSpace には、Drupal 4.2[26] が使用された。ディーンの選挙運動終了後、DeanSpaceは成長してCivicSpace (コミュニティの内部で集団行動をできるようにし、結束的に遠隔地の後援者グループを結ぶ、Drupalに基づく草の根組織化プラットフォーム)となった。このようにCivicSpaceは、もとはDrupal 4.2に基づいた派生ディストリビューションである。
CivicSpaceにおける多くの新機軸が、逆にDrupalプロジェクト自体に組み込まれた[27] 。非営利団体や政治運動に特に有用な機能は、Drupal 5.0以上で動作するCiviCRM モジュールで提供されている。
ディストリビューションは、サードパーティー製モジュールであらかじめカスタマイズされ、特定タイプのウェブサイト(例えば、オンライン・ストア、音楽レビューサイト、ブログサイトなど)向けに設定済みの、「あらかじめ作られた」Drupalインストレーションを頒布するために提案された。Drupal 5.xでは、特定の目的に合わせてある「インストール・プロフィール」のセットを提供し、この方向を目指している[28] 。
コミュニティ
Drupalはユーザと開発者の大規模なコミュニティを所有する。Drupal.orgでは300,000を超えるユーザ・アカウントが作成され、2000人以上が開発者アカウントに登録した。[29] 。最近の大きなカンファレンスDrupalcon Boston 2008では800人以上を集めた[30] 。
多くの活動的なフォーラム [31] 、メーリングリスト [32] 、ディスカッション・グループ[33] があり、さらに、Freenode ネットワーク上でいくつかのIRC チャネルを運営している[34] 。
関連項目
脚注
より詳しい文献
出典 は列挙するだけでなく、脚注 などを用いてどの記述の情報源であるかを明記 してください。記事の信頼性向上 にご協力をお願いいたします。(2008年6月 )
Douglass, Robert T., Mike Little, and Jared W. Smith. Building Online Communities With Drupal, phpBB, and WordPress . New York: Springer Verlag/Apress, 2005. ISBN 1-59059-562-9 .
Gillmor, Dan. We the Media|We the Media: Grassroots Journalism by the People for the People . Sebastopol, Calif.: O’Reilly, 2004. ISBN 0-596-00733-7 .
Graf, Hagen. Drupal. Community-Websites entwickeln und verwalten mit dem Open Source-CMS. Munich: Addison-Wesley, 2006. ISBN 3-8273-2321-5 . (ドイツ語)
Mercer, David. Drupal: Creating Blogs, Forums, Portals, and Community Websites . Birmingham, England: Packt Publishing, 2006. ISBN 1-904811-80-9 .
Peacock, Michael. Selling Online with Drupal e-Commerce . Birmingham, England: Packt Publishing, 2008. ISBN 978-1-84719-406-0
Shreves, Ric. Drupal 5 Themes . Birmingham, England: Packt Publishing, 2007. ISBN 1-84719-182-7 .
Trippi, Joe. The Revolution Will Not Be Televised: Democracy, the Internet, and the Overthrow of Everything . New York: ReganBooks, 2004. ISBN 0-06-076155-5 .
VanDyk, John K., and Matt Westgate. Pro Drupal Development . New York: Springer Verlag/Apress, 2007. ISBN 1-59059-755-9 .
外部リンク
ウィキメディア・コモンズには、
Drupal に関連するカテゴリがあります。