Drupal レビュー
なぜ Drupal なのか?
Drupal は、シンプルなウェブサイトから複雑なウェブアプリケーションまで、どちらにも適応・カスタマイズできる無料の オープンソースのコンテンツ管理システム です。Drupal はあなたとともに成長し、オーディエンスに届き、メッセージを広め、ブランド認知を築き、コミュニティを作るのに役立つ何千もの無料モジュールとテーマを提供します。
Drupal はアクセシブルで多言語対応です。Drupal の最新リリースは、これまでで最も強力かつアクセシブルなバージョンです。組み込みのアクセシビリティと多言語機能により、意図したオーディエンスに確実に届き、メッセージを効果的に共有できると確信できます。
Drupal は設計上、柔軟です。ローカルで開発するために Aquia Dev Desktop のようなデスクトップアプリケーションを使う場合でも、Drupal 互換のプロバイダーでホストする場合でも、あなたのウェブサイトやウェブアプリケーションが、ニーズに合ったプラットフォームで動作することを確信できます。Drupal は移行やスケールが簡単です。あなたの目標に適応します。
Drupal を試してみる
私たちは Drupal を愛しており、あなたにも好きになってもらえることを願っています。SimplyTest Drupal で、わずか数分で Drupal の新規インストールを試せます。
数回クリックするだけで、評価用の完全な Drupal インストールにフルアクセスできます。simplytest.me でデモインスタンスをセットアップする方法について詳しくは、Q&A ページ https://simplytest.me/qa をご覧ください。
注意:このデモサイトは 24 時間後に期限切れになります。
無料のソフトウェア
Drupal のインストールと実行は完全に無料です。これには、機能を拡張する 40,000 を超えるモジュールと、サイトの外観を変える 2,500 を超えるテーマが含まれます。
サイトをローカルで実行する場合は、「スタック」――サイトを提供・稼働させる裏方のソフトウェア――もインストールする必要があるかもしれません。
基本的な「スタック」
Drupal サイトは、サイトを提供しコンテンツを保存するために、裏で動作するソフトウェアの「スタック」を使います:
Web サーバーソフトウェア
データベースソフトウェア
PHP インタープリターソフトウェア(Drupal は PHP プログラミング言語で構築されています)。
このスタックは、ほとんどの商用ホスティングプラットフォームにプリインストールされています。ローカル開発には、多くの選択肢があります。
コンピューターでスタックを実行する方法をいくつか紹介します:
| MAMP(OSX、簡単) | MAMP でローカル環境を作成する |
| Open Server(Windows、簡単) | Drupal をインストールしてローカライズする |
| XAMPP(Windows、簡単) | Windows で XAMPP を使って Drupal をすばやくインストールする |
| Docker(任意の OS、上級) | Docker で Drupal を開発する |
| Lando(任意の OS、上級) | Lando 入門 |
| OS への直接インストール(上級) | Windows ユーザー向け:ほとんどのホスティング環境は Linux のデータベースで動作しており、Windows のデータベースは簡単には移植できません。上記のスタックの選択肢のいずれかを使えば、これは問題になりません。 |
すべての Drupal サイトの 2 つの重要な部分:コードベースとデータベース
コードベース:これは Drupal をインストールするときにダウンロードするファイルとフォルダーの一式です。コードベースは、記事やユーザーのコメントといったサイトのすべてのコンテンツの生成と管理を担います。コンテンツ自体は(設定や構成とともに)データベースに保存されます。
Drupal サイトをコピーまたは移動したい場合は、コードベースとデータベースの両方が必要です。
柔軟性とシンプルさが出会う場所
コンテンツ管理システムは、しばしばシンプルさと柔軟性のバランスに苦労します。シンプルなシステムは 1 つのタスクしか扱えないかもしれず、柔軟なシステムは初心者にとって気後れするものかもしれません。
平均的な CMS はおもちゃのトラックのようなもので、固定された前提のもとに単一の目的のために設計されています。一方、コンテンツ管理フレームワークは、あらゆるおもちゃのための原材料のようなもので、何をするにも専門知識が必要です。
Drupal は、シンプルさと柔軟性の両方を必要とする非技術系ユーザーにとって理想的なコンテンツソリューションとなるよう設計されています。そのモジュール式アプローチにより、サイト構築が直感的になります。完成したおもちゃのトラックである代わりに、Drupal は車輪、フロントガラス、車軸、フレームなどを提供し、トラック――あるいは飛行機、潜水艦、ロボットも――を組み立てられるようにします。これにより、Drupal はコンテンツ管理システムであると同時にコンテンツ管理フレームワークにもなります――両方の利点を持ち、欠点はほとんどない、1 つの統合されたシステムです。
ですから、ニュースサイト、オンラインストア、ソーシャルネットワーク、ブログ、wiki、その他何を構築するにしても――適切なモジュールを組み合わせるだけです。唯一の限界はあなたの想像力です。
Drupal の実際
Drupal が他の CMS とどう違うかを理解するために、ニュースウェブサイトを考えてみましょう。ニュース記事を公開し、ホームページに最新の 5 件の一覧を表示したいとします。その後、ブログセクションを追加し、そこにも最新の 5 件のブログ投稿を表示することにしたとします。
一般的な CMS では、ニュースを扱う 1 つのプラグインと、ブログを扱う別のプラグインをインストールするでしょう。各プラグインは独自のコンテンツタイプを管理し、独立して動作します。
しかし、ユーザーの活動でソートされた、最近のニュースに関するブログ投稿を表示するという素晴らしいアイデアを思いついたらどうでしょう? 「おもちゃのトラック」CMS ではお手上げか、カスタムプラグインを構築するために開発者が必要になるかもしれません。しかし、Drupal の抽象化されたモジュール式の設計では、これは簡単です。すべてのモジュールが標準的なアプローチに従い、共有システムと連携するため、高度な機能の構築はパーツを組み合わせるだけです。この場合、Views モジュールを使います。
もちろん、この柔軟性には代償があります。おもちゃのトラック CMS はそのまますぐに動作しますが、Drupal のモジュール式アプローチで構築するには、パーツがどう組み合わさるかを学ぶ必要があります。ツールは用意されています――プロトタイプを本格的なサイトに変える前に、それらの使い方を学ぶだけです。
Drupal コアと何千ものコントリビュートモジュールは、学ぶのに最初いくらかの投資が必要ですが、その価値は十分にあります。情熱的なコミュニティは、Drupal がサイトビルダーにシンプルさ対柔軟性という枠を超える力を与えている証拠です。一度試せば、あなたはおもちゃのトラックを二度と使わずにクローゼットにしまってしまうかもしれません。
Drupal はどうやってそれを実現するのか
気になりますか? Drupal がどう動作するかをもう少し詳しく見てみましょう。
人はしばしば、ウェブサイトを、ブログやニュース機能が追加された静的なページの集まりだと考えます。サイト管理は通常、ページのツリーを編集することを意味します。
Drupal は、ほとんどのコンテンツタイプを 1 つの概念のバリエーションとして扱います:ノード(これについてはすぐに触れます)です。静的ページ、ブログ投稿、ニュース項目はすべて同じ方法で保存され、一方でサイトのナビゲーションは、メニュー、ビュー(コンテンツの一覧)、ブロック(ナビゲーションリンクのようなサイド コンテンツ)を介して別々に処理されます。
これは、標準準拠のページコーディングの仕組みに似ています――XHTML が構造を扱い、CSS が表示を扱います。Drupal では、ノードがタイトル、本文、著者、日付といった構造化コンテンツを保存します。メニュー、タクソノミー(タグ付け)、ビューが構造を提供します。テーマと、Panels のようなモジュールが、すべてが訪問者にどう表示されるかを制御します。
これらのレイヤーは分離されているため、ユーザーの役割やニーズに基づいて、異なるユーザーに独自のナビゲーションとコンテンツビューを与えられます。ページはグループ化したり、優先順位を付けたり、動的に表示/非表示にしたりできます。
ノード:Drupal の柔軟性の秘密
「ノード」という言葉は日常会話では耳にしませんが、Drupal の動作の中心です。ノードは、関連するコンテンツ要素の集まりです。ブログ投稿を作成するとき、タイトル、本文、著者、作成日、タクソノミー(タグ)などを定義します。一部は表示時に見えるものであり、他は、ステータスやカテゴリのように、可視性を制御するメタデータです。
前述のとおり、コンテンツを表示する方法は 1 つに限られません。複数のナビゲーションスキーム、カスタムテーマ、レイアウトを作成できます。既存のテーマの選択肢をここで探ってみてください。
コメントも Drupal の動作を示す例です。ほとんどのシステムには別個のブログ機能があります。Drupal にはありません――ブログ投稿を 1 つのタイプのノードとして扱うだけです。コメントは、ブログ投稿、ニュース、wiki ページ、あるいはあなたが作成するカスタムタイプなど、どのコンテンツタイプでも有効にできます。Drupal のモジュール式システムは、あなたの想像力によってのみ制限されます。
Drupal コアでの協働
一対多の配信型ウェブサイトを作ることは、ほとんどの CMS がデフォルトで扱うことです。Drupal は多対多の協働に優れており、ユーザーが作成し交流する力を与えます。
他の CMS では、ブログをインストールしてコミュニティ機能のプラグインを追加できるかもしれません。しかし、ユーザーごとの個別ブログ、カスタムのフロントページ、テーマ別のダイジェスト、トップ 5 リスト、複雑なプロフィール、そしてフォーラム・wiki・画像ギャラリーとの統合が欲しいとしたらどうでしょう? 従来の CMS では苦労します。Drupal はそれを扱いやすく――そして強力にします。
Drupal は、サイト作成者がコンテンツ作成とサイト管理を委任できるよう、一から構築されています。役割ごとに権限を設定するだけで、ユーザーは協働して貢献できます。
素早く始めて、簡単にスケールアップ
Drupal は非常に柔軟でありながら、驚くほど簡単にインストールできます。シンプルな FTP アップロードといくつかの設定の質問に答えるだけで、データベースを接続し、約 1 時間で最初の Drupal サイトを立ち上げられます。
デフォルトのテーマを選んで、コンテンツの追加を始めましょう。ユーザーログインが欲しいですか? 認証を有効にします。フォーラムのようなツールが欲しいですか? それらのモジュールを有効にします。wiki のような協働のために book ページを追加したり、投票を作成したり、構造化された分類やフリータグ付けのためにタクソノミーを使ったり――すべてそろっています。
見た目をカスタマイズしたいですか? Drupal は Twig テンプレートシステムを使っているので、生の PHP なしで動的なコンテンツを出力できます。Drupal のマークアップは、クリーンで標準準拠の XHTML です。古臭いテーブルもなし。ナンセンスもなし。冗談ではありません。
Drupal のワークフロー
Drupal をさらに深く掘り下げたい場合は、システムのデータの流れを理解する必要があります。主要なレイヤーは 5 つあります:

1. 中心にあるのはノード――データのプールです。ここに入力されない限り、何も表示されません。
2. 次にモジュールが来ます。これらのプラグイン(コア、またはコミュニティが提供したもの)は、データフィールド、e コマース、カスタムのソートと表示などの機能を追加します。何千も存在し、個人と企業の双方によって推進されています。
3. 次にブロックとメニューがあります。ブロックは、モジュールの出力や、特定の領域に配置されたカスタムコンテンツを表示します。条件付きで表示することもできます。メニューはサイトの構造を定義し、パス(URL)を介してコンテンツにリンクします。
4. 次にユーザー権限が続きます。これらは、役割が何をでき、何を見られるかを定義します。役割はユーザーに割り当てられ、特定のアクセス権を付与します。
5. 一番上にあるのはテーマ(「スキン」)で、主に XHTML と CSS から成り、動的な配置のための Twig 変数を伴います。テーマは、含まれる関数を介してデフォルトのモジュール出力を上書きしたり、ユーザーの役割に基づいてテンプレートを割り当てたりできます。
このボトムアップのデータの流れが、Drupal の動作の仕組みです。機能が見当たりませんか? モジュールをアップロードしたのに有効化していないのかもしれません――チェーンが切れています(図の「A」)。
モジュールを有効にしたのに何も表示されませんか? ブロックの配置(「B」)を忘れたか、権限が競合している(「C」)のかもしれません。
(XHTML のような)詳細な出力を制御するには、この流れを理解する必要があります。マークアップをカスタマイズしたいですか? モジュールの出力関数をあなたのテーマにコピーして編集すれば、Drupal はあなたのものを代わりに使います。
Drupal と向き合う
Drupal のやり方を簡単に紹介したところで、サーバーに Drupal をインストール するか、simplytest.me で オンラインで試して みませんか? インストールガイド は、始めるためのステップバイステップの手順を提供しています。
Drupal コミュニティへようこそ――そして、楽しいサイト構築を!
