ここでは、Drupal 6.x を対象にオリジナルのテーマを1から作っていきたいと思う。ここで述べる作成方法はあくまでも私の自己流なので誰にでも作りやすい方法とは限らない。参考程度に眺めてもらい、閲覧者には自分のやり方を見つけ出してほしい。
私はなにごとも習うより慣れろ、の精神で乗り切ってきたので、今回もとにかく作り出せばなんとかなるであろう。壁にぶち当たったら、そのときはじめて調べるなり資料を探すなりすればいいのである。
公式のテーマガイドによると、まずは.infoファイルが必要なのだそうな。
.info ファイルは Drupal がテーマを読み込む際に一番最初に探しにいくファイルで、これが無ければテーマは Drupal に認識されない。まさにテーマをテーマたらしめているファイルなのだ(たぶん)。
ファイルを作る前にテスト環境を用意する。テーマにはPHPも含まれるので実際の運用環境でテストすると余計なトラブルの元、下手するとせっかく構築したサイト自体が再起不能になる可能性もある。
私のOSはwindowsなのでXAMPPを使ってローカルにサーバー環境を用意する。一昔前はこんな便利なものはなく、win32用のApacheやらperlやらPHPやらをべつべつにインストールした挙句httpdやPHPの設定を地味に繰り返して環境をつくるか、別のPCにlinuxを入れ、サーバーを立ててLANでつなぐか、はたまたvirtualPCのような仮想マシンでサーバーを立てたりしていた。それがいまではXAMPPをインストールするだけでApacheからMySQLまで用意してくれる。なんといい世の中であろうか。
テスト環境を構築できたら適当なディレクトリーに Drupal をインストールしサイトが使えるようにする。テスト環境なんだから全部デフォルトでも一向にかまいはしない。
テストサイトが用意できたら"サイトルート/sites/all/themes"ディレクトリーの下にオリジナルテーマ用のディレクトリーを作成する。名前は別になんでもいいようだが、php がpathとして扱うことを前提にすると英数字もしくはアルファベットのみが無難だろう。またテーマと同じ名前にしておくのがスタンダードのようだ。今回はテーマ名を mnmdesign (私が所属するグループの名称から流用。閲覧者は自身で自由に好きな名前をつけてほしい)とするつもりなのでディレクトリーも mnmdesign とした。今後はこのディレクトリー内に必要なファイルを作成していくことになるので適宜自分の環境に置き換えて読み進めること。
さて、前置きが長くなったが、.infoファイルを作成しよう。ファイル名は mnmdesign.info この.infoを省いた部分はテーマ名の識別子としてシステム内部で使われることになる。以下に実際に記述した.infoを示す。
mnmdesign.info
;
; Base theme of MnM Design
; auther Utano Schell
;
name = MnM Design
description = MnM Design用オリジナルテーマ
screenshot = screenshot.png
version = VERSION
core = 6.x
engine = phptemplate
;base theme = mnmdesign
; Resions section
regions[left] = Left sidebar
regions[right] = Right sidebar
regions[content] = Content
regions[header] = Header
regions[footer] = Footer
; Features section
features[] = logo
features[] = name
features[] = slogan
features[] = mission
features[] = node_user_picture
features[] = comment_user_picture
features[] = search
features[] = favicon
features[] = primary_links
features[] = secondary_links
stylesheets[all][] = style.css
;scripts[] = script.js
各項目の意味や内容については資料の方を参照してほしい。特殊なことはなにもしていない(というかまだできない)。まったくのデフォルトを丸写しだ。
だが、これだけでしっかりと Drupal にテーマとして認識される。管理セクションのテーマページを開いてみよう。
ディレクトリにまだ画像が無いためスクリーンショットは表示されないが、ちゃんとテーマ一覧にリストアップされている。
その2につづく
Recent comments