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との連携」「コンテンツ公開のワークフロー管理機能」「マップを表示するフィールド」などの機能は、それぞれモジュールを追加することで実現されます。
独自のモジュールを開発するだけではなく、サードパーティの開発による多数のモジュール(基本的にはオープンソースライセンス)を利用することができます。これらを組み合わせるだけでも、十分に高機能なサイトを構築することが可能でしょう。
            
Drupalのテーマシステムは、「レンダリング配列」と呼ばれる強力な仕組みを持っています。このレンダリング配列を操作変更することで複雑な表示制御に対応することが可能になります。その方法について簡単に説明をします。
デザインのカスタマイズを進めていくと、どうしてもテンプレートを編集してHTMLタグをカスタマイズしなければならないことがあります。ここでは基本的なテンプレートの構造と編集について簡単に説明します。
Drupalのデザインカスタマイズでもっとも簡単なのは、スタイルシートによるカスタマイズです。簡単とは言っても標準的なデザインのサイトであればこれだけで対応可能なほどの柔軟性があります。
Drupal の特徴のひとつは高性能なテーマシステムを備えていることです。たいへんに柔軟性が高くさまざまなサイト・システム構築に対応できますが、反面複雑で、理解するにはそれなりの困難が伴います。ここではDrupalのテーマシステムについて簡単な説明をしていきます。
 DrupalではSEOに有効な機能がいくつか用意されています。SEO対策は必須というわけではありませんし、ただちに効果が現れるものでもありません。しかし価値のあるサイトの構築を目指すのであれば検索エンジンに対する配慮は大切だと言えるでしょう。