top


総投稿数 本 
no_

スポンサーサイト

 --------
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
カテゴリ :スポンサー広告 トラックバック(-) コメント(-)
no_1219

Drupal:ページ用テンプレートの攻略。これがカスタマイズの鍵?実際に変更してゆく ・・・ 【Drupalはどう?】

 2010-01-12
 Drupal におけるサイト構築。
 昨日学んだ、「ページ用テンプレート
 この攻略が今後のカスタマイズの鍵となりうる。
 とにもかくにも、先に進め、実際に
 編集・カスタマイズしてゆく。

  追記に (長文ご容赦) ▼


FC2ブログランキング にほんブログ村 IT技術ブログ Webサイト構築へ ブログ王ランキング 人気ブログランキング 人気ホームページランキングへ


more

************************************************
◎ ページ用テンプレートの攻略 の巻 :Drupalはどう?
************************************************


 昨日下準備。
 覚えることはたくさんあるのだろうが、
 実際に作業して覚えてゆく、いつもの流儀で。

 ■テンプレート変数


  これは、
 ・ページ用テンプレート変数である page.tpl.php
  中のみで使えるもの(らしい)
  おいおいまとめてゆきたいが
  すでにきれいに整理されている方がいらっしゃる。
  (当たり前か。有難く利用させていただく)

テーマ変数(page.tpl.php)
テーマ変数(page.tpl.php) テーマ変数 とも
 いうのですね。

 ・・・こちらでは
    ・テンプレートファイル自体を
     整理いただいて、非常にわかり易い。
     ・PHPTemplate テンプレートファイル



 【実践】
  ・昨日
   ・デフォルトの設定で、ブログ形式で
    すべてのコンテンツが、最初の頁に一覧表示されているのを
    やめたくて、
    ・ひとつひつのコンテンツごとに
     ・[掲載のオプション] で
      ・フロントページへの掲載
       をはずしていたのだが。
   これは、おばかさん でしたね。


  ■トップページ判定を行い、
   トップページを違うレイアウトにする


   方法は2通りあるようです。
   □トップページかどうかを判定する
    $is_front(テンプレート変数) を利用
    (※わかり易い)
   □トップページ用テンプレートファイルの利用
    ※テンプレートに慣れる為、こちらの方法で・・・


   ■トップ用テンプレートファイルの準備
    ・page-front.tpl.php という名前で
     用意する。
     (※この名前で用意しておくと
       優先的に読み込まれる)


 


   ・動きを確認するため、2つほど
    コンテンツ(node)の
    フロント掲載オプションを オンにしておいて
    インストール終えれば、自動的にセットアップウィザード始まる
    ▼
   ・新しく用意した page-front.tpl.php
    コンテンツ表示部分をコメントアウト
<div id="content-content">
<?php # print $content; ?>
</div>
    ▼
    おぉ。確かに消えた(驚くほどのことではない)
    おぉ。確かに消えた(驚くほどのことではない)

  ■管理用の左のブロックは
   不要なのではずす。
   管理用の左のブロックは不要なのではずす
   (※これは、管理セクションの[ブロック]設定だろう)


   ■管理セクション>[サイトの構築]>[ブロック] で
    ・sidebar first に設定されている
     それぞれ [詳細]設定で
     ・ナビゲーション
      ・特定ロールへのブロック表示:管理者(のみ)
     ・ユーザログイン
      ・カスタム表示設定:
       このブロックはデフォルトで表示されない
     ※これから 管理セクションに入るときは
      http://***.net/user/login
      入ればいいわけだ。


    表示確認
    ※ログインがセッション保存されているので
     他のブラウザ(IE)で
     アクセスしてみる
    ▼
    他のブラウザ(IE)で
    OK!
    ・・・ しかし、
    IEブラウザの左下に 例の▲マークが。
    IEブラウザの左下に 例の▲マークが
    何なんだ。32行目・・・というと、
    昨日コメントアウト はずした
<script type="text/javascript">
<![CDATA[//>
jQuery.extend(Drupal.settings, { "basePath": "/" });
<!]]>
</script>
 これかぁ。はいはい。
    /includes/common.inc の2207行目
  $embed_prefix = "";
$embed_suffix = "";
 とする。
    (ここは、本当にこれでいいのか、要検証課題)
    ▲マーク は消えた。

  ■キャッチリード
   (Drupal テンプレート変数では、$site_slogan ですか)
   センター合わせを修正しよ。
   センター合わせを修正しよ
   (※これは、スタイルシートでしょう)


   ■ソースでは、
    ・div id="preface"
     > div id="preface-wrapper"
      > div id="mission"
     という構造の中で、表示されていて、
     ・div id="preface-wrapper"
      (よく使われる)
      class="clearfix" が設定されている。


 


    スタイルシート:style.css の中で、
#mission {
padding: 8px 0;
text-align: center;
}
 とあるので、これを修正。
#mission {
padding: 8px 0;
text-align: left;
}
    ▼
    ちと間延び
    ちと間延び。
    ・右側には用意したいものがあるので
     とりあえず、"。" で自動改行するように、
     page-front.tpl.php で、
<div id="mission"> 
<?php # print $mission; ?>
<?php print str_replace("。","。<br />",$mission); ?>
</div>
    ▼
    ひとまず、これでいいか
    いづれは、divブロックで右側を構成する予定で
    ひとまず、これでいいか。
    (あ、page.tpl.php も変えておかなきゃな)

    と、作業しつつ・・・
    違うな。これは
     ・新しく(ヘッド部分の ブロック作成して)
      それで共通利用するのかな・・・
     などとも悩んだが、そのうちわかるだろ。


    ここは、まず感じた
    ・他のエリア
     ・サイドバー や
     ・コンテンツエリア
     などには いくつもの
     エリアテンプレートがあり、
      ・block.tpl.php
      ・box.tpl.php
      ・comment.tpl.php
      ・node.tpl.php
      ・search-result.tpl.php
      ・views-view.tpl.php など。
    なんで?
    ・ヘッド部分
    ・フッター部分 は無いのだろ?
    を解消したし。


    テンプレート変数は、
    ・page.tpl.php や
    ・page-front.tpl.php でしか使えない
    ということだけど、


    このテンプレートphpの中で、
    部品化して、includerequire してもいいのかな?


    やってみる。


    ・page-front.tpl.php のヘッド部分を、
     inc_header.php として別に用意し、
    ・ のヘッド部分の記述を、

<div id="header">
<? require_once("*****/inc_header.php"); ?>
</div><!-- /header -->
 としてみる。
     ▼
    他のブラウザ(IE)で
    おっ。大丈夫やん。使えるんだ。
    これは有難し。
    本当はこんなやり方駄目なんだろうけど、
    これで、各部品化できて効率上がるぞ。
    (※間違っている方法かもしれない。
      良い子のみなさんは真似されないほうが・・・)
    ・page.tpl.php にも同じ処理を。
    ・さらに、フッター部分も部品化。


     ・・・とんかんとんかん・・・


 


     さらにさらに部品化進め、page-front.tpl.phpは、
<? require_once("*****/inc_htmlstart.php"); ?>
<head>
<? require_once("*****/inc_htmlhead.php"); ?>
</head>
<body class="<?php print $body_classes; ?>">
<div id="page" class="clearfix">
<div id="header">
<? require_once("*****/inc_header.php"); ?>
</div><!-- /header -->
<div id="preface">
<? require_once("*****/inc_preface.php"); ?>
</div><!-- /preface -->
<div id="main">
<div id="main-wrapper" class="clearfix">
<? require_once("*****/inc_sidebar_first.php"); ?>

<div id="content-wrapper">
<? require_once("*****/inc_help.php"); ?>
<? require_once("*****/inc_messages.php"); ?>
<? require_once("*****/inc_breadcrumb.php"); ?>
<? require_once("*****/inc_content_top.php"); ?>

<div id="content">
<? require_once("*****/inc_content-tabs.php"); ?>
<? require_once("*****/inc_sidebar_last.php"); ?>
<div id="content-inner">
<?php if ($title): ?>
<h1 class="title"><?php print $title; ?></h1>
<?php endif; ?>
<div id="content-content">
<?php # print $content; ?>
</div>
</div><!-- /content-inner -->
</div><!-- /content -->

<? require_once("*****/inc_content-bottom.php"); ?>
</div><!-- /content-wrapper -->

<? require_once("*****/inc_sidebar_last2.php"); ?>
<? require_once("*****/inc_postscript.php"); ?>
<? require_once("*****/inc_footer.php"); ?>

</div><!-- /main-wrapper -->
</div><!-- /main -->
</div><!-- /page -->
<?php print $closure; ?>
</body>
</html>
 こんなん、なっちゃいました。

  しかし、これでほんとにいいのかな?
  と、思いつつ、
  「こりゃ柔軟性あって、ほんと使い易いぞ」
  とほくそ笑んで。本日終了。

commentsコメント
comment_post












管理者にだけ表示を許可する
commentトラックバック
トラックバックURL:
http://metaboy.blog23.fc2.com/tb.php/1219-8243e6af
ようこそ
Add to Google 創るmetaboy:RSSフィード
My Yahoo!に追加
最新記事のRSS | 問い合わせ

仕事検索、アルバイト検索、依頼仕事の検索ポータル - 仕事検索.COM - www.jobkensaku.com ツクルン

創るmetaboy - WEB創る、サイト創る、何創る - 創ったmetaboy

 

リンク集

 

最近の記事

 

ブロとも申請フォーム
Sponserd by

さくらのレンタルサーバ さくらのレンタルサーバ
大容量・高機能レンタルサーバー heteml 大容量・高機能レンタルサーバー heteml
XREA (ValueDomain)
お名前.com お名前.com
名づけてねっと名づけてねっと
ムームードメインムームードメイン

 

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。