6.x での領域の追加 | LOGIN,PASSWORD or REGIST

6.x での領域の追加

Posted by amayadori on 2008/11/20(木) 00:16 in
nozaki さんの質問:

質問

amayadori様

nozakiと申します。

Drupalについての質問なのですが
Drupalの本を買ったり、サイトで検索したりしていたのですが
バージョン6.xでの表示領域の追加の方法がわからなく、なやんでおります。
本などを見ると

function テーマ_regions() {
return array(
'left' => t('left sidebar'),
'right' => t('right sidebar'),
'content_top' => t('content top'),
'content_ad' => t('content ad'),
'content_bottom' => t('content bottom'),
'header' => t('header'),
'footer' => t('footer')
);
}
をtemplate.phpに記述し
page.tpl.phpに
<?php if ($content_ad):?><?php print $content_ad; ?><?php endif; ?>
を記述したら追加できるとあるのですが

元のphptemplate_regions 関数が
5.9では/themes/engines/phptemplate/phptemplate.engine ファイル内の phptemplate_regions 関数に定義されていたのですが、どうやら6.x以降は違うところにいったみたいで見つけることができません。
定義されているはずですが・・?
どこをどうしたら領域を追加できるのでしょうか?
わかりましたらお教えお願いいたします。

解答

nozaki 様

いつ頃にお寄せいただいたモノか、判らないのですが(投稿日の記録が残らないようなので…(^_^;、遅くなりまして、ごめんなさい。
今年(2008年)の3月以降、職場環境が変わりDrupalにさわれる機会が激減してしまいましたので、サイトそのものにもさわれる時間が少なくなってしまい、このような時間になってしまいました。
本当に、ごめんなさい。

まず、最初にお詫びしなければいけないのですが、私の環境では6.xは使われていないと言うこと。
このサイトは、6.xでの動作環境ではあるのですが、なにぶん、サイトの更新自体が出来ていない状況。6.xへの移行なんて夢のまた夢の状態です…(^_^;
デスので、6.xのファイル群を見て回って、山勘でテストしてみただけですので、確証は何らありません。
もっとも、すでに解決済みなのかもしれませんが…(^_^;

6.xから、テーマファイルにもxxxx.infoというなのファイルが追加されました。
このファイルの中の
engine = phptemplate

version = "6.1"
の間に
regions[dummy_block] = dummyblock
の形で記述してあげると、ブロック管理メニューのブロックを設定するリストに選択肢が出現しました。
テンプレートまでいじって確認はしていないので、見当違いのトンチンカンなお話である可能性は大ですが、とりあえず、私がたどり着いた結論です。

こうやって書いておけば、6.xをいじり倒している先人が何か教えてくれるかもしれません…(汗)それを期待してます

トラックバック


URLから "-notspam" を削除してトラックバックを送信してください。トラックバックポリシーは こちらに提示しています。
コメント表示オプション
お好みのコメントを表示方法を選択してください「設定の保存」をクリックすると変更が有効になります。
Re: 6.x での領域の追加

0829さん、ご無沙汰しています。

 教えていただいたページは、どちらかというと事後処理のことがメインのような気がしましたが…、そういう意味では、ここでコメント入れていただいた0829さんの解説の方が解りやすいのかなと言う気がします。

ホント、いつもありがとうございます。

文中でも、触れさせていただきましたが、じっくりDrupalに触れていられる時間も少なくなり、すっかり忘れ去られた存在になっているような気になっております。
プライベートの仲間内で借りているさくらサーバーはMySQLがD6x以降には対応していないのでさらに、6xからは遠ざかっております。
もっとも、このサイト、プライベートな空間共々更新作業は滞っていますけどねw

ああ、駄文が過ぎましたねw
失礼いたしました。

ちなみに、私が確認したのは、zoracさん作のSWSローカル環境内でだけですが、全然見当違いでなかったことに一安心しています。
せっかくコメントいただいたので、折を見て(時間を作って?)本文に取り込んでちゃんとしたモノにしたいと思っています。

また、何かありましたら、よろしくお願いいたします。
次は、いつ顔を出せるのか解りませんけど(^_^;


Posted by amayadori on 2008/11/25(火) 01:17
Re: 6.x での領域の追加

amayadori さん、ご無沙汰しています。 0829 です。

ブロックリージョンの追加についてですが、以下のページが参考になるかもしれません。
Drupal6で領域の追加後、その後の表示方法が分かりません | Drupal-jBox.net

基本的には、

  1. テーマ名.info ファイルに regions[content_ad] = content ad を追記。(場所はどこでも) これで、システム上でブロック領域が扱えるようになります。
  2. page.tpl.php ファイルに <?php print $content_ad; ?> を追記。 これで、ウェブページにブロックの内容が表示されるようになります。
  3. それでも表示されない場合は、[管理セクション] → [サイトの環境設定] → [パフォーマンス] ページの 「キャッシュデータのクリア」 を実行。 Drupal 6.x からパフォーマンス向上のためにテーマ変数などが保存されるようになったので、弄っている時は結構大事だったりします。

のような手順で、ブロック領域が追加できると思います。 ご参考までに。

Posted by 0829@drupal.org on 2008/11/20(木) 11:30