Drupalの一般概念

Drupalを知る上で有益なコンセプトを以下に説明します。詳細については、参考資料のリンクを参照してください。

ノード(コンテンツ)

ノードというのは、ウェブサイトのコンテンツを示す用語です。コンテンツタイプでノードの分類をし、コンテンツタイプごとに必要な項目を定義します。例をあげると、Pageのコンテンツタイプには、タイトルや本文のような項目があります。また、Wikiのようなページを作成するためのBook、フォーラムのディスカッショントピックス、ブログ、ニュース記事などもコンテンツタイプの一例です。
ノードという用語は、数学で用いられるものとは違います。
Drupalにおけるコンテンツ管理については、リソース・ガイド:コンテンツ管理のツールを参照してください。

エンティティタイプ

エンティティタイプは、項目をグループ化して抽象化したものを示し、データを格納したり、表示する際に利用されます。ノード(コンテンツ)、コメント、タクソノミー、ユーザプロフーィルなどが一例であり、新規に定義することも可能です。詳細については、エンティティAPI を参照してください。

コメント

コメントは、(コアに含まれるCommentモジュールを有効にしていれば)サイトで利用可能な要素の一つです。コメントは、特定のノードに対し、ユーザに投稿されます。例えば、特定のフォーラムトピックのノードに投稿される発言の一つ一つがコメントとなります。

タクソノミー

Drupalには、タクソノミーと呼ばれるコンテンツを分類するための機能があります、この機能は、コアに含まれるTaxonomyモジュールによって提供されます。独自のボキャブラリー(タクソノミータームのグループ)を定義し、各ボキャブラリーにタームを登録することができます。このボキャブラリーをコンテンツタイプに紐付けることによって、ノードをカテゴライズしたり、タグ付けしたり、好きなように分類したりできるようになります。
詳細については、Taxonomyモジュールを参照してください。

ユーザ

ユーザは、ウェブサイトの実際のユーザーを示すエンティティの一種です。デフォルトで、各ユーザは、ユーザ名、パスワード、ロールおよびメール・アドレスなどのプロパティを保持します。また、他のモジュールにより他の要素を追加することもできますし、新規にフィールドを追加することもできます。例えば、ユーザのTwitterアドレス用のリンクをフィールドとして追加することができます。

モジュール

モジュールは、Drupalの機能を拡張するためのソフトウェア(コード)です。モジュールは3つのカテゴリーに分類できます。

Coreモジュール
Drupal本体に含まれおり、追加のコンポーネントをダウンロードすることなく、有効にしたり無効にしたりすることができます。
例:Blog、Book、Poll、Taxonomyなど
寄贈モジュール
Drupal.orgのモジュールダウンロード ページよりダウンロードし、インストールすることができます。
例:Panel、Views、Metatagなど
カスタムモジュール
独自に開発したモジュールです。カスタムモジュールの開発には、Drupal、PHPおよびDrupalAPIの知識が必要となります。モジュール開発の詳細については、Drupalのモジュール開発を参照してください。

リージョンおよびブロック

Drupalサイトのページは、ヘッダー、フッター、サイドバー、メインコンテンツ表示部といったリージョンで構成されます。テーマで新規にリージョンを定義することも可能です。
ブロックは、サイトページのリージョンに表示される情報のまとまりのようなものであり、静的なHTMLやテキスト、メニュー(サイト・ナビゲーション用)、モジュールでの定義により表示されるもの(例えば、最新のフォーラム・トピックスなど)などがあります。また、動的なリスト表示(例えば、最新のイベントリストなど)などを独自に追加することもできます。

メニュー

Drupal7には次に示す4つの標準メニューがあります。

  • メインメニューはサイト管理者によって構築され、多くのテーマでぺージのヘッダー部分に自動的に表示されます。(表示されない場合は、該当のブロックを有効にすれば表示されます)
  • マネージメントメニューは管理メニューで、管理者のツールバーに表示されます。
  • ナビゲーションメニューはモジュールによって提供されるリンクが集約されるメニューです。
  • ユーザメニューはユーザのアカウント情報とログアウトのリンクが含まれるメニューです。
    独自にカスタムメニューを作成して、該当ブロックを有効にすることにより、そのメニューを表示することも可能です。

Drupalでは、様々な方法でメニューをカスタマイズすることが可能です。例えば、メニュー項目に「ウェイト」を設定したり、ドラッグ&ドロップで順番を入れ替えることで、メニュー項目を並べ替えたり、メニュー項目名を変更したり、リンク・タイトル(マウスオーバーしたら表示されるツールチップ)を変更したりすることができます。さらに、メニュー項目のParent属性を変更することによって、メニュー項目を別のメニューへ移動することも可能です。

メニュー管理画面ではメニューにカスタムメニュー項目を追加することもできます。メニュー項目を作成するには、パスを指定する必要があります。

いずれの場合も、メニュー項目にリンクされたページへのアクセス権限がユーザに無ければ、そのメニュー項目は表示されません。例えば、ログインしていないユーザには管理メニューの項目は表示されせん。

テーマ

テーマ層については、データ層・機能拡張層(モジュール)やCoreと分けて考えた方が良いでしょう。テーマは、GUI、レイアウト、色合いなどを含めたウェブサイトの見た目(ルック&フィール)、つまりサイトがどのように表示されるかをコントロールします。テーマは、サイトページのHTML出力を定義する複数のPHPテンプレートファイル、レイアウト・フォント・色などのスタイルを定義する複数のCSSファイルなどで構成されます。
詳細については、Drupalにおけるテーマとフロントエンドの開発を参照してください。

Viewsモジュール

Viewsモジュールは、高機能が備わっているため、ほとんどのウェブサイトで利用されます。Viewsモジュールは、ノードや他のエンティティのリストを抽出し、ページ・ブロック・RSSフィードなどのフォーマットで表示することを可能にします。ビューの代表的な使用例としては、コンテンツのプロパティに基づいて(ニュース一覧の例では、コンテンツが「ニュース」の公開日によってソートされるなど)自動更新されるコンテンツ一覧(例えば、最新ニュースの一覧)などが挙げられます。

データベース

Drupalでは、情報の管理はデータベースで行われます。情報の種類別に、データベースにテーブルが作成され、情報が格納されます。例えば、ノードの基本情報はNodeテーブルに格納され、ノードの各項目は(Drupalが自動作成する)個別のテーブルに格納されます。また、コメント・ユーザ情報・ロール・権限・その他の設定の情報などもそれぞれのテーブルに格納されます。

MySQLが、Drupalで最も利用されるデータベースですが、PostgreSQLのような他のデータベースを利用することも可能です。

パス

Drupalサイト内のページのURLについて、基本のサイトアドレスより後の部分のことをパスと言います。Drupalサイトのパスにアクセスすると、パスに紐付くメニュー項目やメニュールートからブラウザにどの情報を送るか判断されます。一般的に、各モジュールでパスの定義をすることができます。ユーザが特定のパスにアクセスすると、Drupalはページに何を出力するべきかモジュールに問い合わせます。

例えば、アクセスするページがhttp://drupal.org/node/19828ならば、パスは「node/19828」となります。コアのNodeモジュールがこのパスを管理しているので、何を出力するかはこのNodeモジュールによって判断されます。

Bootstrap

bootstrapはDrupalのCPU(処理・制御の中枢)です。他のインタラクティブなソフトウェア環境の場合、イベント・ループと呼ばれることもあります。Drupal Coreはこれに似ています。Drupal Coreは、パスのリクエストが来るのを待機し、リクエストが来ると処理を始めます。

権限

権限を設定することによって、ユーザのアクセス(閲覧、編集など)を制御することができます。これらの権限は登録済みユーザ(管理者、コンテンツ編集者、サイトメンバーなど)と未登録ユーザに対して付与されます。権限はサイトを運用する上で欠くことのできない重要な要素となります。

翻訳元URL:https://www.drupal.org/node/19828