Please Sign In or Register

D.I.Y. kit for Drupal theme

Drupal テーマをカスタマイズするためのベースとして作成したテーマです。

カスタマイズのベースとなるテーマは drupal.org でもいくつかリリースされていますが、デザイン的にシンプルということではなく、CSS での拡張性を考慮したテーマ関数の再定義と新しいテーマ変数の追加を目的として作成したものです。

最新版(diykit-5.x-1.4)は D.I.Y. kit テーマ | DRUPAL*DRUPAL からダウンロードできます。(まだ工事中のサイトですが、ダウンロードは可能だと思います。)
なお、今後、自作のモジュールやテーマ(あれば...)は、DRUPAL*DRUPAL サイトで公開していく予定です。

スクリーンショット

D.I.Y. kit for Drupal theme

対応ブラウザ
Firefox 2, Internet Explorer 7, Internet Explorer 6 (すべて Windows) にて動作確認を行っていますが、環境によって、レイアウトが乱れる場合があるかもしれません。

テーマファイルの構成と概要

D.I.Y. kit テーマの構成ファイルのうち、主要なものについての説明です。

template.php

ブロック表示領域
コンテンツ上, コンテンツ左, コンテンツ右, コンテンツ下 に表示領域を確保できるよう、ブロックを定義しています。
それぞれのブロックは、以下のテーマ変数で呼び出すことが出来るようになっています。(D.I.Y. kit ではこれらのブロックは使用していません。)
  • $before_content -- コンテンツ上
  • $after_content -- コンテンツ下
  • $left_content-- コンテンツ左
  • $right_content -- コンテンツ右
パンくずリスト
パンくずリストのセパレータを <span class="breadcrumb-separate">»</span> とし、セパレータ部分へスタイルを設定できるようにしています。
フィードアイコン
images/feed.png が見つからなければ、デフォルトの misc/feed.png を呼び出すように変更しています。
D.I.Y. kit では、ロゴの色と合わせた配色の feed.png を同梱していますが、Mozilla の フィードアイコンガイドライン では、サイトのデザインに合わせた配色は制限されていませんが、オレンジ色以外は推薦されていないようですのでご注意下さい。
マーカー
「新着」 や 「更新」 といった表示にそれぞれ別のスタイルを設定できるよう、それぞれの要素に marker-new および marker-update クラスを追加しています。(デフォルトの marker クラスも有効にしています。)
追加したテーマ変数
page.tpl.php
  1. $xml -- ブラウザを判定し、Windows の IE7 未満のブラウザ以外であれば XML 宣言を出力します。
  2. $body_id_class -- body タグに id と class を追加します。
    • フロントページの場合(id) → front : そうでない場合 → page
    • ログインユーザの場合(class) → logged-in : そうでない場合 → not-logged-in
    • サイドバーの有無を判定(class) → none/left/right/both
  3. $head_page_title -- ブラウザのタイトルバーに表示されるタイトルのうち、コンテンツタイトルまたはスローガンの部分のみを出力します。
  4. $site_footer -- $footer_message で表示される内容のうち、サイト情報として設定された 「フッタメッセージ」 の内容のみを出力します。
  5. $footer -- $footer_message で表示される内容のうち、フッタ領域に表示設定されたブロックの内容のみを出力します。
node.tpl.php
  1. $node_id_class -- コンテンツ全体を囲む div タグに id と class を追加します。
    • コンテンツ ID(id) → node-$node->nid
    • 各ノード毎(class) → node
    • ティーザーリストページの場合(class) → list
    • 前面固定の場合(class) → sticky
    • 未公開の場合(class) → node-unpublished
    • コンテンツタイプ別(class) → type-$node->type
    • ゼブラ(奇数または偶数)判定(class) → odd/even
  2. $changed_date -- コンテンツの更新日時を表示します。
comment.tpl.php
$comment_class -- コメント全体を囲む div タグに class を追加します。
  • 各コメント毎(class) → comment
  • 新しいコメントの場合(class) → comment-new
  • 未公開の場合(class) → comment-unpublished
  • ゼブラ(奇数または偶数)判定 → odd/even
block.tpl.php
$block_id_class -- ブロック全体を囲む div タグに id と class を追加します。
  • ブロックの識別 ID(id) → block-$block->module-$block->delta
  • 各ブロック毎(class) → odd/even
  • モジュール名を付加(class) → block-$block->module
  • ゼブラ(奇数または偶数)判定(class) → odd/even
  • サイドバーブロックのゼブラ(奇数または偶数)判定(class) → left-odd/left-even, right-odd/right-even

page.tpl.php

!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
XHTML 1.0 Strict として宣言しています。
head profile="http://purl.org/net/ns/metaprof"
rel="nofollow" や rel="license" を使用する場合のプロファイルとして http://purl.org/net/ns/metaprof を利用させていただいています。
meta http-equiv="content-script-type"
HTML 内にスクリプトを記述する場合には必要な meta 定義のため追記しています。
meta http-equiv="content-style-type"
HTML 内にスタイルを記述する場合には必要な meta 定義のため追記しています。
<style ...>@import "style.css";</style> のように記述する場合には必要になるはずです。
meta name="description"
SEO のひとつとして、スローガンを設定していれば、その内容をサイトの概要として出力します。
meta name="generator"
なんとなく…です。 Drupal 5.x で構築されたサイトだということを出力するためのものです。
CSS の読み込み
システムやモジュールに設定された CSS を読み込んだ後、style.css が読み込まれます。
さらにその後、IE のみが ie-fix.css を読み込むように条件付コメントを設定しています。

CSS

style.css
以下の CSS を順番に読み込んだ後、style.css 内に記述したスタイルが適用されます。
1. base.css
主要ブラウザ毎の設定をリセットした上で、最低限のスタイルのみ設定しています。
2. layout.css
レイアウトブロックの位置や幅など、大まかなレイアウトを設定しています。
( 1~3 カラムに対応、左右ブロック幅固定、中央ブロック可変、一定の幅以下または以上になった場合にはそれ以上中央ブロックを可変しないというようなレイアウトにしています。)
3. common.css
このテーマで使用するタグに対するスタイルやサイト全体でクラスの定義、および、必須モジュールのスタイルを再設定しています。
4. modules.css
必須ではないがコアに含まれている標準モジュールについて、それぞれのスタイルを再設定しています。
ie-fix.css
layout.css, common.css, style.css での設定のうち、IE について調整の必要な部分についての設定をしています。

既知の問題点

完成されたテーマとして作成したのではなく、あくまで、カスタマイズのためのベースとなることを目的としていますので、以下の点に関しては追求して修正しておりません。

  1. Internet Explorer において、input ボタンに表示する文字数が多い場合にボタン画像が引き伸ばされたような状態になります。
  2. Internet Explorer 6 において、color モジュールに対応したテーマのカラー設定時のプレビュー画像が右サイドにはみ出して表示されます。
  3. Internet Explorer 7 において、折りたたみ式 fieldset の折りたたみ時の border の中心が表示されません。
  4. Firefox 2 および Internet Explorer 7 において、「最近のログ」 の項目中に折り返しできない連続した文字列(長い URL など) が使用された場合に table の右サイドが非表示になります。

改定履歴

[ 2007-07-22 ]
ヘッダのタイトルに使用するテーマ変数として、コンテンツタイトルまたはサイトスローガンを出力する $head_page_title を追加し、テンプレートも $head_page_title を利用した内容に変更しました。
また、テンプレート中のページトップへ戻るためのナビゲーションに係わる日本語翻訳が漏れていたので、不足分を追加しました。

[ 2007-07-25 ]
コンテンツの更新日時を表示するテーマ変数として $changed_date を追加し、テンプレートも投稿後に更新されていれば $changed_date を表示するような内容に変更しました。

[ 2007-07-27 ]
Drupal 5.2 のリリースに伴い phptemplate.engine へのバグフィックスも行なわれています。
このため、template.php 中の $body_id_class テーマ変数の設定部分について、バグに対応するために記述していたコードの削除を行ないました。
※ diykit-5.x-1.3-update.tgz が、diykit-5.x-1.2 からアップデートしたファイルのみのパッケージです。

[ 2008-03-01 ]
CSS のタイポなどに関するバグを修正しました。
ダウンロード先を D.I.Y. kit テーマ | DRUPAL*DRUPAL に変更しました。

トラックバック

トラックバックは承認後に表示されます。

URLから "-nospam" を削除してトラックバックを送信してください。

コメント

favicon表示について

はじめまして。
D.I.Y. kit を使わせて頂いております。
私は英語が"さっぱり"なので、template.phpをはじめ、テンプレートは非常に勉強になり助かっています。

しかし、カスタマイズしているときに疑問に思った事があります。
それは「faviconが反映されない」ことです。
IE6(6.0.2800.1106)の「ショートカットを作成」「お気に入りに追加」やOpera(9.27)、Firefox(2.0.0.13)のタブには表示されるのですが(以上全てwindowsです)、
Operaの「ブックマークに追加」では表示されません。
Drupalのバージョンは5.7です。
他のテーマに代えてみても、キャッシュを削除してみてもダメでした。

ちなみに、我が家の環境では DRUPAL*DRUPAL でも同じ現象が起きています。
でも、きちんと表示されるサイトもあります。
「favicon」という単語は(テーマ関連のファイルでは)phptemplate.engineでしかでてこないため、
なんとなく原因はDrupal本体にあるんじゃないかなぁ、なんて思っていますが、
もし、原因に思い当たる節があるようでしたら、助言願いたいと思い発言いたしました。

初歩的な問題でしたらすみません。

Re: favicon表示について

はじめまして。 コメントありがとうございます。
最近、こっちのサイトはほぼ放置状態なので、返信が遅くなってしまい、申し訳ありません。

えーっと、「favicon が反映されない」というのは、Opera に関してのみ起こっている問題ということでしょうか?
で、Opera の「ブックマークに追加」というのは、この↓ウィンドウのことでしょうか?
そうだとしたら、私の環境ではなんだか表示されてしまってますね...

Opera ブックマーク
(Windows XP Professional SP2 + Opera 9.50 Build 10063 + DRUPAL*DRUPAL サイトで確認)

Drupal 側の問題であれば、私の環境でも問題が生じそうなものなので、Opera 側かな?と思って試してみたのですが、Opera の [ツール] → [設定] の 「詳細設定」タブのところで、「閲覧」の「ページアイコン」が「指定されたアイコン・Favicon を表示」または「指定されたアイコンのみを表示」になっていないと、ブックマークにグレーの☆が表示されるようでした。
質問を返すばかりになってしまって恐縮ですが、そのあたりの設定部分はどうなっているでしょうか?

あとは、ブックマークに別のサイトのFaviconがついてしまう という問題もあるようですね。
現在のバージョンではどうなのかについては、よくわかりませんが...

直接の解決につながるような解答にはなっていないかもしれませんが、追加で補足などいただければできる範囲内で調べてみたいと思いますので、よろしくお願いいたします。
それから...、意を汲み取れていない部分などがありましたら、遠慮なくつっこんでくださいね。

Re:Re: favicon表示について

あちらに書こうか迷ったのですが、Drupal5.xのことなのでこちらに書かせてもらいました。
すみません、ご丁寧にありがとうございます。

それと言葉足らずな部分が多々あり申し訳ございません。
全て0829 さんの推理されたとおりです。
「ブックマークに追加」ウィンドウでのみfaviconが表示されないんです。
misc/favicon.ico を入れ替えてもDrupal君が表示されました。

画像が貼れないのでサイト名で申し訳ありませんが、
具体的には 「drupal-jbox.net」では表示されますが、「DRUPAL*DRUPAL」では表示されない(Drupal君を表示)、というような状況です。
閲覧環境はWindows2000(苦笑) Opera 9.27 Build 8841 です。
「指定されたアイコン・Favicon を表示」にはチェックが入っています。
「ブックマークに別のサイトのFaviconがついてしまう」という問題に関しては、他のサイトを開いていないので影響される事は無いと思います。
(こんな問題あったんですね、教えていただきありがとうございます。)
「描画のタイミング」を「全て描画する」と「全て読み込まれてから描画する」としたり、ブラウザ・PCを再起動してもダメでした。

ともあれ、他の環境では問題なく表示されているようなので、我が家のパソコンに問題があるようですね。
ありがとうございました。
もう少し調べてみますね。
これからもお世話になる事が多々あるかと思いますが、よろしくお願いいたします。

P.S.
「認証問題」に 「」 という表示が出ました。
一度戻ってページを再表示させたら平仮名が表示されましたが、少し焦りました(笑)

Re:x3 favicon表示について

DRUPAL*DRUPAL サイトはまだ不完全なので、どちらでも問題ないですよ。
というより、公開しているものについてのサポート体制くらいちゃんと整えろ!ということですね。 本当、申し訳ないです。

具体的には 「drupal-jbox.net」では表示されますが、「DRUPAL*DRUPAL」では表示されない(Drupal君を表示)、というような状況です。

ひょっとして、DRUPAL*DRUPAL サイトはデフォルトテーマの時(= Favicon が Drupal アイコンの時)にブックマークしていただいた。 という形跡はありませんでしょうか?
ブックマークしていなくても、一度表示した時点で、その時点のアイコンが保存され、その後は更新されないようです。
キャッシュのクリアを行うなどのブラウザからの操作では削除できないっぽい(詳しく調べていませんので改善されているかもしれません)ので、Opera の仕様ということなのでしょう...きっと。

そうだとしたら、表示されないというよりは、以前のアイコンがまだ表示されているということになると思いますので、
C:\Documents and Settings\ユーザ名\Application Data\Opera\Opera\profile\images
(Windows 2000 でもそのあたりのディレクトリかと...)
に、ドメイン名でアイコンが保存されているので、そのアイコンを削除して、サイトをリロードしていただくと以前のアイコンがクリアされて、現在使用中のアイコンが表示されるはず...だと思うのですが、どうでしょう?

見当違いだったらスミマセン...

ビンゴでした

0829 さんの仰るとおり、手動で、保存されているアイコンを削除したら、きちんと表示されました。

Opera の問題だったんですね。
Drupal と全く関係のないことでお手数をおかけしてしまい、申し訳ありませんでした。
本当にありがとうございました。

解決できて何よりです。

解決できて何よりです。
結果的に Drupal ではなく Opera の問題だった、というだけですからね。 気にしないでください。
それよりも、フィードバックいただいたことに感謝です。
今後ともよろしくお願いいたします。

いえいえ

「今後ともよろしくお願いいたします。」
は、こちらの台詞ですよ(笑)

Drupal は日本語の情報が少ないため、非常に(勝手に)頼りにしちゃっています。
お体に気をつけて、更新作業をされてください。
(ん? ヘンな日本語ですね...)

番号付きリストのバグ

Internet Explorer において、番号付きリスト (ol) の数字部分が左にはみ出してしまい表示されないというバグがありました。また、Firefox などでも、ブラウザの表示文字サイズを大きくすると同様の症状が発生します。

この問題は、base.css の内容を以下のように修正することで回避できると思います。

/* 2-5. リスト
 * --------------------------- */
ul,
ol {
  list-style:none;
  list-style-position: outoside;
  margin: 1em;
}

他にも探せばバグが見つかると思いますので、しばらく様子を見てからのバージョンアップを考えています。

Typo...

base.css の ul, ol リスト部分に typo がありました。

昨日お知らせした 「番号付きリストのバグ」 に関連する部分になります。
「番号付きリストのバグ」 でのバグフィックスも合わせて適用した修正内容は、以下の通りです。

/* 2-5. リスト
 * --------------------------- */
ul,
ol {
  list-style:none;
  list-style-position: outside;
  margin: 1em;
}

list-style-position のデフォルト値が outside となっているため、レイアウトなどへの影響はないはずですが、申し訳ありませんでした。

diykit-5.x-1.3 update!

Drupal 5.2 で、phptemplate.engine のサイドバーの有無について判断する部分のバグが修正されましたので、template.php の $body_id_class テーマ変数に係わる以下の部分を削除しました。

      if (!$vars['layout']) {
        $vars['layout'] = 'none';
      }

特にバージョンアップしなくても問題ないとは思いますが...一応リリースしておきます。

diykit-5.x-1.2 update!

コンテンツの更新日時を表示できたら...というご要望がありましたので、$changed_date テーマ変数を追加しました。
このテーマ変数を使用したサンプルとして、テンプレートの内容を、更新があった場合のみ "投稿日時 / 更新日時" の形式で表示するように変更しています。

アップデートしたことによってこれまで使用していたテーマ関数やテーマ変数が使用できなくなるということはありませんので、必要な内容が追加されない限り、アップデートの必要はありません。

diykit-5.x-1.1 update!

Perl Tips: Drupal で、ページのタイトルの書式を変えたい。 という内容を見かけ、そういえば、Drupal 導入当初はブラウザのタイトルバーに表示されるタイトルとサイト名の表示具合を調整したいと感じたなと...思い出しましたので、コンテンツタイトルまたはサイトスローガンのみを表示するためのテーマ変数を追加しました。
デフォルトで使用可能なテーマ変数と使い分けたり、組み合わせたりすることで、サイトのタイトルを自由に表現できます。

  • $head_title (デフォルト) --- コンテンツ名またはスローガン | サイト名
  • $site_name (デフォルト) --- サイト名
  • $head_page_title -- コンテンツ名またはスローガン

このテーマ変数を使用したサンプルとして、テンプレートファイルの内容を "コンテンツ名またはスローガン :: サイト名" "サイト名 :: コンテンツ名またはスローガン" の形式で表示するように変更しています。

また、テンプレートファイルにページトップへのナビゲーションを作成していましたが、この部分の日本語翻訳が漏れていましたので、追加しています。

ライセンスは難しいですね

なんか、同梱したライセンス宣言で問題が起きてしまいましたね。
難しいですね…ライセンスは。
そうかといっていたら、なんか、機能追加したのですね。素早いですね。
週末、自作に挑んでいましたが、すでに挫折気味です(笑)
やっぱり、自作なんて才能はないな…と、痛感中(笑)
だめですねー。やっぱり、ワタシにはオリジナルは作れないって言うことですね(^-^;△フキフキ
ホント、うらやましい限りです(T.T)

そうですね。

そうなんですよね、ライセンスの問題はとても難しいと実感しています。

が、今回、私が犯した問題の原因は非常に簡単なものでした。 問題そのものは重大でしたが...。
まさかそんなところで間違えているとは思ってもいなかったのですが、同梱しているファイルは細かく確認しないとダメだということですね。 深く反省しています。

テーマの自作は私もなかなか進んでいません。
このサイト用のテーマもまだ途中になっていますし...。 本当はそっちが本題だったんですけどね。

唐突に

唐突にこんな事を聞くのもなんなんだとは思いますが、今密かに(笑)最終更新日を表示させるなんてのをテーマデザインに組み込みたいなーなんて、考えてます。
で、viewsモジュールを使えば出来るのでブロックにしてテーマで標準以外のところにひっそりと表示させようかなとか思いましたが、もしかして、template.phpに、そう言うのを組み込んだり出来そうですかね?
可能であればviewsモジュールを入れて無くても利用できるし、とか思ったりしましたが、どうでしょう?

ま、そうは言いながらもテーマデザイン自作化の可能性はかなり低し(^-^;△フキフキ

とりあえず、

とりあえず、ご要望の部分だけ追加してアップデートしました。
Views モジュールを導入すれば、ほとんどのことができてしまうので便利なのですが、わざわざそこまでしなくても...という部分はありますよね。
私も、モジュールの一覧表示は便利でいいなと感じていますが、他はそんなに使えてませんからね。

おおっ早速(^_^;)

早速、対応していただいてありがとうございます。ちょっと、驚いてます(笑)早すぎて(^_^;)

これはもしかして、コンテンツ個別の更新日時についてですね?
ワタシがお願いしたのは実はサイト全体で最後に更新されたコンテンツはいつだったのか?だったのですが・・・ま、アレですね。ワタシの書き方が足りなかったと言うことでスミマセン(^_^;)
いや、そうは言っても、コンテンツ個別で更新日時が出力できるのはいいですね。これはこれで使えます。
ちょっと、興味が湧いたので、後でTemplate.phpを覗いてみることにします。
こうやって考えていくと、モジュールも用意して、Template.phpの内容を設定するようなモノとか作れそうですね。
なにを設定するのだ?というのは考えてませんけど(笑)

ま、妄想だけなのですが、毎時でベースになるカラーが変更できたりとか、季節によってカラーが変更できたりとか面白そうだなーとか、考えてます。
たぶん、仕組みを作るのはそれほど難しくはないと思うんですけど、一番肝心なテーマデザインに仕立てるのがさっぱりできないので(笑)やっぱり妄想で終わりそうです(笑)
初心に戻って、カスタマイズ野郎で開き直るしかないかな(^_^;)とか思う今日この頃です。

あ、こんな事って出来ますかね?
Drupal-IDでログインして、コメントとか残すとamayadori@drupal-j.comと言ったメールアドレスっぽくなるじゃないですか。これの書式を変更できたりしますかね?なんか、うちの家主が気を利かせてくれてアドレスを登録してあるらしく、スパムがやってきます。使ってないですし、メールクライアントが迷惑メールとして処分してくれますから見ることはないのでいいのですが。
つまり、ワタシ以外にもメアドとして収集されている方がたくさんいるというわけです。
で、なんか妙案はないモノかな?と思った次第です。
通常、ユーザーとして登録されていればID部分しか表示されないですから問題ないんですけどね。
OpenIDの場合はどうなんでしょう?やはり、メアドっぽい表示になるんでしょうか?
ちょっと、OpenIDの方も興味が出てきました。

あらら。

違ってましたか、残念。 でもまぁ、コレはコレで使えますよね。 特に、まとめサイトなど(ここか...)などでは有効かな?と思ったりするのですが...

サイト全体で最後に更新されたコンテンツはいつだったのか?

については、またちょっと何かやってみますね。 コンテンツ固有の更新日時よりヒラメキがこないのですぐには対応できないかもしれませんけど...

モジュールも用意して、Template.phpの内容を設定するようなモノとか作れそうですね。

template.php にはユーザ定義関数?も書けちゃったりするので、モジュールにしたとしても、設定するには PHP の知識が必要になりそうですね。 私はケアレスミスが多いので、ローカルで編集する方がエラーなどの確認もしつつできて、なんとなく安心です。 var を ver とかやっちゃいますからね。
そんな理由もあって、個人的には diykit ディレクトリ以下に mytheme ディレクトリを作成して、その中に style.css や page.tpl.php などを設置して行くという方法でテーマを追加して行けば、template.php は diykit ディレクトリのものを読み込むはずなので...という、そんな使い方を考えています。
そうすれば、template.php は一つだけ自分仕様にカスタマイズするだけでいいですからね。
[追記]
diykit/mytheme/page.tpl.php とすると diykit/template.php の内容は読み込まないようでした。残念。

毎時でベースになるカラーが変更できたりとか、季節によってカラーが変更できたりとか

Katgal.com: The Personal Website and Blog of Katherine Gallia みたいな感じですよね。 JavaScript 使われてますけど...
確かに面白いですよね。 背景色が変化するだけでなく、背景の画像を入れ替えて、空模様を変化させるなんていうのもアリかもしれませんね。

Drupal-IDでログインして、コメントとか残すとamayadori@drupal-j.comと言ったメールアドレスっぽくなるじゃないですか。これの書式を変更できたりしますかね?

ユーザ ID の書式を プロフィールで設定した内容に変更する方法というのなら見たことがあるような気がしますので、探してみますね。
OpenID は、基本的には http://username.openid.ne.jp のような URL の形式をしていて、使い方によっては、自分のサイトの URL を ID として使用することもできたはず...です。 確か。

なんだか、核心に迫る情報を何も持っていなくて...スミマセン。

時間で背景を切り替える

時間で背景を切り替えるなんて言うのはPHPベースのテーマエンジンを使っているので、意外と簡単ですよ。
サーバータイムから時間を取りだして、定数にでも入れて、style指定のところで展開させたりすれば事足りますし、めんどくさかったら、HTMLに直書きで吐き出させてもいい訳ですからね。
仕掛け自体はさほど難しくありませんよ(たぶん)。
やっぱり大変なのはテーマでそれを用意することですよね。これははっきり言ってセンスの問題とかもありますからね。
一筋縄じゃ行きそうもありません(笑)
あとは、効率の良いCSS分割ですかね。切り替えるCSSファイルを少なくすることが肝ですからね。

ソースレベルでいじるのが一番手間がかかりませんが、リスクも非常に大きくなると言う側面もあります。
特に、頻繁に手を加えるモノでないモノはなおさらリスクが増します。忘れてしまうからです。
ま、一定の動きしかしないtemplate.phpなのであればそんな必要はさらさら無いのですが、今の0829さんの構想だと、いつかきっとテーマのスイッチングという欲求が出てくるでしょう。
テーマデザインの設定画面に項目を追加できるのかどうか判らないのでモジュールを作ってとか言いましたが後々の利便性を考えたらそう言う仕掛けも必要なときが来そうかな・・・ってな思いこみです(笑)

OpenIDはurlっぽいんですか?!
うーん・・・それはそれで"うーん"ですね(^_^;)
やっぱりカスタマイズしたいですね、Drupal-IDにしても、OpenIDにしても。

ユーザ ID

ID の表示を変更する方法について、まだちょっと調べていないのですが(スミマセン。)、こういう設定は、テーマによって変化するよりは、モジュールにしてしまう方がいいのかもしれませんね。
username@example.com のようなユーザ ID を username-example.com のように、@ を他の文字列に変更してしまうとか、そういう方法でいいのかな?と思ったのですが...見当違いだったらスミマセン。

リスク云々についてはよくわかりませんが、

PHP も JavaScript も HTML に直接記述できるので便利ですよね。
個人的には JavaScript の方が好きかもしれないですけど...

diykit で template.php に記述している内容は、基本的なテーマ関数のみで、特別なものは使用していませんが、今後考えているのは、テーマの作成に特化した JavaScript などの設定をテーマごとに行なえるように、Theme Settings API モジュールの機能を利用したモジュールを作成しようとは考えています。
ですが、あくまでも私の中では、template.php の内容と、テーマの設定画面で設定できる内容は "別" という発想です。
テーマはインストールすれば特別な設定なしで動作し、エフェクトなどを追加したければモジュールを導入した上でテーマの設定を行なう必要があるという、そんなイメージを持っています。

あと、残念ながら、サイトのテーマをユーザが変更できたり...という機能は好みではないので、その方向には進まないと思います。
というか、diykit の CSS は原本のような感じで考えていたので、diykit/mytheme というディレクトリを作成して自サイト用テーマを作成しようとは思っていますが、サイトのテーマは固定しておきたいタイプの人間なので、作成するテーマは一つだけになるでしょうから、スイッチの必要もなさそうです。

失念してました・・・(^_^;)

PHP も JavaScript も HTML に直接記述できるので便利ですよね。

ああっ、Javaも記述できましたね(笑)すっかり失念してました。
好みという話で言ったらアルファベットは基本的に苦手なのでどっちも好みではありません(笑)
JavaScriptはなんか、暗号のように見える時があるので苦手意識は相当高いですね(笑)
あと、Cで挫折した経験があるのでCの雰囲気と同じような記述の仕方をされると拒否反応が出るかもしれません(笑)

サイトのテーマをユーザが変更できたり...という機能は好みではないので、

私の好みではありません。というか、すべてのテーマにおいてブロック設定をきちんとやっていないので、あのテーマでは表示されているけど、このテーマでは表示されない・・・なんて言う部分は常にあるので(笑)ユーザーに好みのテーマを変更できるというのは基本的には推奨していません。ただ、テーマをいじったときの非常手段のために差し障りのないデフォルトのテーマなどには切り替えられるようにはしています。その程度です。
ワタシがスイッチング・・・と言う発想を持ちだしたのには

diykit/mytheme というディレクトリを作成して

という部分があるからです。
わざわざフォルダを掘って入れるからにはスイッチングという選択肢を否定できないからです。スイッチングの必要がなければわざわざフォルダを掘る必要性はありませんからね。
別にユーザーにスイッチングをさせる機能である必要はないという意味ですよ。
そう言う仕組みを提供しておけば、diykitをコアにした他のテーマも利用しやすくなるでしょ?という発想ですね。
で、そのスイッチングをするモジュールなんかを作って、diykitでの追加機能をコントロールできるようにすれば・・・と思ったわけですよ。
Drupalのテーマ設定画面とは別にする方が作りやすいとは思います。ただ、テーマ設定画面にコントロールのための画面を作る方が判りやすいのかな・・・とかも思いましたけど、実際作れるのかどうかは判らないので(^_^;)

ID の表示を変更する方法について、まだちょっと調べていないのですが(スミマセン。)、こういう設定は、テーマによって変化するよりは、モジュールにしてしまう方がいいのかもしれませんね。

ま、そうですね。このテーマではデフォルトで・・・のようなモノでもありませんから、モジュールか何かで対応する方がいいですね。
既に、有ったりするかもしれませんけど、ワタシは把握していません。
どこを変えたら・・・とか判れば作るか、現行の改造版モジュールに追加するかは不可能ではないとは思いますけど・・・いじる場所にも依りますね。

言い方が悪かったかもしれません。

JavaScript も PHP も "記述できる" と言えるまでには達していませんが、両方とも同時に勉強中で、比べるのもおかしいですが、どちらかといえば JavaScript に興味を引かれているという感じですかね?

わざわざフォルダを掘って入れるからにはスイッチングという選択肢を否定できないからです。スイッチングの必要がなければわざわざフォルダを掘る必要性はありませんからね。

diykit/mytheme というディレクトリを作成して...
というのは、もともとの CSS の内容などを弄っているとわからなくなりそうなので、それはそれで置いておいて、template.php や テンプレートは diykit 以下のものをカスタマイズして、mytheme が唯一のサイトのテーマになるように CSS の部分だけ、必要なものをインポートしながらいろいろ調整した方が自分的にわかりやすいなという、それだけです。
私が個人的に diykit/mytheme のような階層を持った構造にしようと考えているだけですし、diykit 自体をテーマとして使用することは考えていないので、サイトで使用可能なテーマは mytheme 一つだけで、単にそのテーマの階層が一つ深いだけということになりますから、そもそもスイッチすべきものは無いという発想です。

そう言う仕組みを提供しておけば、diykitをコアにした他のテーマも利用しやすくなるでしょ?という発想ですね。
で、そのスイッチングをするモジュールなんかを作って、diykitでの追加機能をコントロールできるようにすれば・・・と思ったわけですよ。

diykit は、そのまま使用するのではなく、diykit というもの自体が存在しなくなるほど、しっかりオリジナリティを持ったカスタマイズを行なっていただけるといいな...ということを目的として作成していて、いろいろなテーマ変数を追加しているのは、追加して行くよりも削除して行く方が簡単だろうという、ちょとした大きなお世話です。
対象者として、テーマの開発者を考えていますから、diykit 自体をカスタマイズするためにモジュールに関する API の知識などが必要になるということはなるべく避けたいなというのもあって、設定内容をモジュールでコントロールというのはちょっと違うかな...と感じています。
今後も、diykit は "単なる木材の詰め合わせ" のような路線で進んでいきたいと思っていますからね。

今後、別のテーマを配布するようなことになった場合には、そういった機能を追加する可能性はあるかもしれませんけどね。

階層を持たせたい理由。(追加)

あと、0829blue というテーマ名を現在使用しているので、そのままのテーマ名で作り直そうと思っていたのですが、それだと、階層を持たせないと難しいので、という理由もありました。

お詫びと修正。

文章中で、テーマ関数とテーマ変数を誤って使用していましたので、修正させていただきました。 大変申し訳ありません。

Good Job!

初めまして。ずーっと前からDrupalを導入したかったのですが、最近になってやっとサイトに導入しました。
その際にコチラのサイトのドキュメント大変参考になりました。ありがとうございます&お疲れ様です。

しかしDIYテーマ素晴らしいですね。オリジナルテーマ作る際に手の届かない箇所があったのですが、template.phpで解決出来たなんで、目から鱗です(笑
いま一般配布用のDrupalテーマのデザインをしていますので、ベースはコチラのテーマを使用させていただきます。

これからもDrupalの情報宜しくお願いいたしますね^^

ありがとうございます。

はじめまして。
ドキュメント類は気の向いたときにまとめているので、つい、中途半端になっていますが...ボチボチやって行く予定ですので、長い目で見守ってやってください。
template.php を何とかすれば、自由度の高いテーマが作成できそうなので、そのあたりの紹介をできれば...ということが主題ですから、template.phpで解決出来たなんで、目から鱗です のように感じていただけると、非常にうれしいです。 ありがとうございます。

何か公開されるときには、ぜひ教えてくださいね。 もちろん、ベースにしていただくのは、コレでなくても全く構いませんから...

インストールしてみました

いつも御世話になります。
ダウンロードさせて頂きインストールしてみました。
ブロック表示のコンテンツ上下左右が表示されない模様です。
ブロック表示のサイド左右、ヘッダ、フッタ、コンテンツは表示されます。
まだちょっとテストしただけですので、私の使い方または設定がまずいのかもしれません。
取り敢えず御報告まで。暫く後でソースを拝見してみます。

スミマセン。

スミマセン。 完全に説明不足でした。
一応、ブロックは表示できるように、コンテンツ上下左右の表示領域を用意しているのですが、同梱している page.tpl.php には、それらの表示は組み込んでいません。
あまりごちゃごちゃしない見本を、ということで、デフォルトで使用可能な ヘッダ, フッタ, コンテンツ, 左右サイドバー のみの設定だけを行っていますので、好みに応じて好きな場所に追加可能な他のブロックを追加していただければ...ということだったのですが、表示するためのテーマ関数などを記載していませんでした。 寝ながら書いたので...本当に申し訳ないです。

一応、コンテンツ上下左右のブロック表示領域のテーマ関数についてコンテンツに追記させていただきましたが、さらに詳しく言えば、page.tpl.php の任意の場所に、

<?php if ($before_content) { ?><div id="before-content"><?php print $before_content; ?></div><?php } ?>

のように記載していただくと、そこにブロックが表示されるようになると思います。
領域名はコンテンツ周辺をあらわしていますが、正直な話、自由な場所に設置していただいて問題ありません。

本当に申し訳ありませんでした。

素晴らしい!!

それぞれのブロックは、以下のテーマ関数で呼び出すことが出来るようになっています。(D.I.Y. kit ではこれらのブロックは使用していません。)

* $before_content -- コンテンツ上
* $after_content -- コンテンツ下
* $left_content-- コンテンツ左
* $right_content -- コンテンツ右

こちらこそすみません。上記に書いてありましたね。
出かける前にちょっとだったもので。org

Joomla! のモジュールポジションと同じようにブロック表示を追加できるのですね!素晴らしい!!

実は私個人的に Joomla! をメインで行くか Drupal をメインで行くか悩んでいました。私の中の神の声(笑)では Drupal だったのですが、ブロック表示の単調さがどうも...???でした。テンプレート(テーマ)の自由度は、Joomla! だったのですが、Drupal のブロック表示の自由度が高まると、うーんやっぱり Drupal だよなぁ〜と...

素晴らしいテンプレート(テーマ)を公開して下さって有難うございます。勉強になりました。

後から追記したので...

いえ... gondayu さんからのコメントを頂いた後で追記したので...私の説明不足以外のなにものでもありません。
穴が開くほどみていただいたとしても、どこにも見付からなかったはずですから。 ホント、申し訳ないです。

と、ブロックに関しては、必要があれば、template.php でもっと詳細に分割できますからね。
ブロックを分割した上で、さらに page-hoge.tpl.php のようなカタチで、表示するページごとのテンプレートを用意すれば、デザイン的なことに関しては、何でも出来そうな気がします。

ついに、形になりましたね。

ついに形になって公開されましたね。
お疲れ様です&ありがとうございます。
職場ではいじれないので(いじってちゃ駄目だろ(笑))、家に帰ってからぼちぼちいじらせていただきます。
問題なのは、最近モチベーションが相当落ちていること(^_^;)
ここんトコロの安定しない天候にまいっているのかもしれません(T.T)
なんかだるくて、家に帰っても寝るだけ生活です。
そんなわけで要望しておいてアレなんですが、いつかお披露目できればなーと言うところご勘弁ください<(_ _)>

昨日、update statusを見たらtrackbackモジュールがアップデートしていました。
まだ、見てもいないのでなにが変わって、どうなったのかは判りませんが、場合によっては新しいバージョンに改造を施し直さないといけないかもしれないですね。

とりあえず...ですけどね。

自分用に作成していたものを流用しただけなので、やっと...というより、とりあえず...という感じが強いですけどね。
個人的に利用することが目的だったので、他のユーザの方の求めるものは全く考慮に入れていませんが(というか、わからないので入れようがなかったというべきかもしれませんが)、template.php のカスタマイズの一例として...というのが主要な目的ということで、ご容赦ください。

今後は、diykit 以下に格納するようなカタチで、いくつかのテーマを公開できればいいなとは思っているのですが、Update status モジュールも RC 版ではありますがアップグレードされていますし、Views も 5.x-1.6 が公開されましたし...と、いろいろ忙しいことが盛りだくさんで、「ど・れ・に・し・よ・う・か・な...」 という状態です。

コメントの表示オプション

お好みの表示方法を選択し、「設定の保存」をクリックすると、表示方法を変更することができます。