Drupalサイトの構成
Drupalでサイトを構成する作業の概要を説明します。Drupalはとても幅広いカスタマイズが可能ですが、反面、決して単純な作業とは言えません。しかしいったん理解さえすれば、その柔軟性に驚かれることでしょう。
Drupalサイトを構成するにはカスタマイズの作業が不可欠です。カスタマイズは主に3つの種類に分けることができます。
- コンテンツタイプのカスタマイズ [ページ内容の定義]
- デザイン(テーマ)のカスタマイズ [外見の定義]
- モジュールのカスタマイズ [機能の定義]
コンテンツタイプのカスタマイズ
コンテンツタイプとは、ページに表示する一連の「フィールド」を定義したものです。
Drupalには最初から「基本ページ」「ブログ」など最低限のコンテンツタイプが組み込まれています。しかしサイトによっては「イベント告知ページ」「製品情報ページ」など、目的に特化したページが必要なこともあるでしょう。このようなときに新しいコンテンツタイプを定義します。
コンテンツタイプに追加する「フィールド」は「テキストフィールド」「画像フィールド」など一通りのものが用意されています。さらに追加のモジュールを導入することで、「Googleマップフィールド」「日付フィールド」などさまざまなフィールドを使ってコンテンツタイプを定義できるようになります。
デザイン(テーマ)のカスタマイズ
Drupalではサイトのデザインは「テーマのカスタマイズ」により行います。オリジナルのサイトを作る場合、作業時間の多くはカスタムテーマに費やすことになるでしょう。
テーマはページ内の各項目(フィールド)をどのようなHTMLコードとして出力するかを決める「テンプレート」と、デザインを定義する「スタイルシート」で構成されます。
テンプレートは「サイト全体のHTML構造」「ページ単位のHTML」「コンテンツタイプごとのHTML」「フィールドごとのHTML」のように複雑に階層化されています。ページ単位のテンプレートなら「template_page.tpl.php」のように規則化された名前のテンプレートファイルを用意すれば、デフォルトのテンプレートを置き換えることができます。また「template_menu_tree()」などのような「テーマ関数」を定義することも可能です。さらには「template_preprocess_menu_tree()」「hook_menu_alter()」などの前処理関数、フック関数を作って画面要素の変更を行うこともできるようになっています。
とても柔軟性にとんだシステムなのですが、複雑すぎてわかりづらい面もあります。基本的な構成・デザインのサイトならばカスタマイズのベースとして設計されたテーマを利用して、スタイルシートのカスタマイズを中心に行うだけでも十分に実用的であると言えます。
カスタマイズのベースに利用できるテーマとして、もっとも利用されているのがZenでしょう。ZenはHTML5、レスポンシブデザイン、Sass/Compass統合など、数多くの特徴を持った使いやすいテーマです。多くの場合はZenに独自のCSSを加えるだけですむでしょうし、必要であれば独自のテンプレートファイルやテーマ関数を記述することも可能です。
モジュールのカスタマイズ
Drupalに新しい機能を追加するにはモジュールを作成します。たとえば「外部DBとの連携」「コンテンツ公開のワークフロー管理機能」「マップを表示するフィールド」などの機能は、それぞれモジュールを追加することで実現されます。
独自のモジュールを開発するだけではなく、サードパーティの開発による多数のモジュール(基本的にはオープンソースライセンス)を利用することができます。これらを組み合わせるだけでも、十分に高機能なサイトを構築することが可能でしょう。