ラベル

Server (108) work (77) Idea (68) Car (31) PC (29) DAW (28) other (19) MakingWEBsite (18) 趣味 (18) health (13) CentOS (11) drupal (11) 山 (9) android (4) スマホ (4) communication (3) drupal7 (3) hint (3) meno (3) モバイル (3) 歯医者 (3) 第二種電気工事士 (3) 英語 (3) PC Server (2) drupal8 (2) ms access (2) uwp C# (2) めし (2) 整備 (2) 音楽 (2) MIDI (1) diy (1) 会計 (1) 動画再生 (1) 生活 (1) 郵便 (1) 食べ物 (1)

2014年1月28日火曜日

Drupal サブテーマの作成

以下
http://denshiyugi.drupalgardens.com/node/136
のコピー&ペースト。



drupal.orgなどのDrupal関連サイトでbase theme(ベーステーマ)とかsub theme(サブテーマ)とかいうのを見かけたことはありませんか?Drupalのテーマはベーステーマとサブテーマに分けて作成することができます。サブテーマはベーステーマとは別のテーマとして使用できるのですが、ベーステーマの様々な設定を継承します。


わかりやすいところで例を挙げますと、Drupalコアに同梱されているデフォルトテーマのGarland(ベーステーマ)とMinnelli(サブテーマ)がこのシステムを採用しています。Minelliは非常にGarlandに似ていますよね。それは、MinnelliがベーステーマのGarlandの機能、スタイル、設定を継承しているからです。サブテーマはベーステーマの機能、スタイル、設定を継承します。そして、サブテーマに固有の機能、スタイル、設定だけをサブテーマのファイルに追加し、新たな機能やスタイルを追加したり、ベーステーマの機能、スタイル、設定をオーバーライドしたりできます。drupal.orgの寄贈テーマのセクションで数多くリリースされているスターターテーマでも、Zen、Genesis、AdaptiveThemeなど、このベーステーマとサブテーマのシステムを前提にしているものがいくつかあります。
サブテーマを採用するスターターテーマの利点
1. カスタマイズした部分が一目瞭然


上述のZen、Genesis、AdaptiveThemeなど、ベーステーマとサブテーマのシステムを前提にしているスターターテーマでは、まっさらなサブテーマの雛形が同梱されています。それを基にCSSや機能を追加していけば、ベーステーマに対してどこをカスタマイズしたか一目瞭然です。テーマに不具合が生じた場合にも、どこに問題があるか把握しやすくなります。
2. アップデートが容易


drupal.orgに寄与されたスタンドアローン(単体型)のスターターテーマ(FrameworkやBasicなど)を編集してオリジナルなデザインのテーマを作成した場合を想定しましょう。スターターテーマがバグ修正、新機能追加などでアップデートしたとしても、自分でカスタマイズしたテーマをアップデートすることは容易ではありません。ところがベーステーマとサブテーマのシステムを前提にしているスターターテーマを使用した場合はどうでしょう。オリジナルなサイトにするためのカスタマイズをすべてサブテーマからやってしまえば、メジャーアップグレード等でベーステーマが劇的に変更されない限り、現在のサイトのデザインや機能に不具合が出ることはないでしょう(もちろんアップデートする際には事前にテスト環境で動作を確認しなければなりませんが...。)。つまり、新しいバージョンのスターターテーマに更新するだけで、バグ修正や新機能の恩恵を受けられるようになります。管理が非常に楽になりますね。
3. その他無限の可能性


CocoaSpaceではそこまで凝った使用例を想像できませんが、サブテーマのサブテーマのように自由にサブテーマを追加できます。クリエイティブなテーマ作成者なら、この機能を利用してクール&クレイジーなテーマを作成できそうです(笑)。
独自にサブテーマを作成


上記のようなベーステーマとサブテーマのシステムの恩恵を享受したいけれど、そのシステムを採用するスターターテーマのなかに気に入ったものがない場合はどうすればよいでしょうか?或いはスターターテーマではなく、すでにデザインされたテーマに少々のカスタマイズを加えるのにサブテーマを使用したいという場合はどうすればよいでしょうか?実はサブテーマにしたいテーマからベーステーマを指定し、その機能を継承することは簡単です。サブテーマにしたいテーマの.infoファイルに次の記述をするだけです。
base theme = BASE_THEME_NAME



BASE_THEME_NAMEをベーステーマの名前に置き換えてください。


これだけだと慣れてない方にはわかりにくいかもしれませんので、Basicテーマを例にとって簡単に手順を書きます。この方法は一例に過ぎませんので、慣れてきてテーマの構造が把握できてきたらご自分の方法を試してみてください。サブテーマの名前はbasic_subthemeと仮定します。
STEP 1


DRUPAL_ROOT/sites/all/themesにbasicのファイルをアップロード。
STEP 2


basicテーマのディレクトリをbasic_subthemeにリネームして、DRUPAL_ROOT/sites/all/themesをアップロード。
STEP 3


basic_subthemeディレクトリ内のbasic.infoをbasic_subthemeにリネーム。
STEP 4


basic_subtheme.infoファイルを開き、ファイルの最初の部分を以下のように変更。base theme = basicを加え、project = "basic"を削除するのがミソです。
name = Basic Subtheme
description = Subtheme for Basic starter theme for Drupal 6
screenshot = css/images/screenshot.gif
core = "6.x"
engine = phptemplate
base theme = basic

STEP 5


basic_subthemeディレクトリ内のtemplate.phpを開き、basicという部分をすべてbasic_subthemeに置き換え。
STEP 6


basic_subthemeディレクトリ内のtheme-settings.phpを開き、basicという部分をすべてbasic_subthemeに置き換え。
STEP 7


Drupalのテーマ選択画面(example.com/admin/build/themes/select)でbasic_subthemeを有効化。


template.php、theme-setting.php、そしてすべてのCSSファイルは、始めにまっさらな状態にしてしまってからカスタマイズを始めたほうが、ベーステーマにどのような変更を加えたかわかりやすいでしょう。

0 件のコメント:

コメントを投稿