Web Artisan Blog - ウェブ アルチザン ブログ

Nucleus:テンプレートの切り替え方法(スイッチ):プラグインは使わない

Nucleus (35 items)

2004年11月08日

カテゴリーによって、テンプレートを変えたい場合。
いろんな方法があるかも知れませんが、プラグイン等を使わない方法です。
しかも簡単にできます。

この投稿の為に無理やりといった感がありますが、
当サイトで言えば、about Site Memberabout This Site
それら以外という切り分けをしてみました。
「メインの目次ページ」についてですが、
上記2つのカテゴリーの各記事の見た目と、以外のカテゴリーの各記事の見た目。

@ WEB Artisan Diary (69 items)
2004-11-05 by ossi


このようなヘッダー部が当サイトの各記事にはありますが、
上記2つのカテゴリーに関しては無くしてみました。

これには、2つのテンプレートを用意し、以下の方法で実現できました。
正直、当サイトに関しては、カテゴリー毎に見た目はあまり変えたくないのですが、
あくまで、この投稿の為、そして実例としてこのようにしてみました。。。
<スポンサードリンク>
(1)新規Blog作成
まず、テンプレートを切り分けるまとまりで、Blogを分けます。
当サイトで言えば、上記2つのカテゴリーは「aboutblog」、
以外は「artisanblog」として切り分けます。
今回の流れで言えば、「artisanblog」が既に作成されているBlogなので、
「aboutblog」を新規で作成します。
その際、選択するのは、

2.高度な方法: 現在のblogで使用しているスキンにotherblogというコードを使った記述を加えます。この方法では、同じページ内で複数のblogを展開することが可能となります。


です。

(2)カテゴリー作成
新規でBlogを作成すると、次にそのBlogのカテゴリーを作成します。
当サイトで言えば、「aboutblog」に、
「about Site Member」と「about This Site」カテゴリーを作成しました。

(3)記事投稿(記事の移動)
(2)で作成したカテゴリーに記事を投稿(アイテムの追加)します。
当サイトのように、既に記事がある場合は、その記事を移動させます。
流れ的には、「artisanblog」の「about Site Member」の記事を、
「aboutblog」の「about Site Member」に移動、といった感じです。
このように移動した場合、
「artisanblog」の「about Site Member」等は必要無くなったので、
このカテゴリーは、記事の移動後に削除します。

(4)テンプレートの作成
まあ、最初に作っておくべきかもですが、新しいテンプレートのレイアウトを作成します。
当サイトで言えば、ヘッダー部を無くすだけですので、
ヘッダーが付いている今まで使っていた「artisandefault」テンプレートを複製し、
「aboutdefault」テンプレートを作成します。

(5)スキンの編集
最後にスキンの修正です。
当サイトで言えば、「メインの目次ページ」のスキンを修正します。
ポイントとしては、スキン変数「if」をうまく使うことです。
まず、修正した実際のコードです。

■画面右の各コンテンツ部
 <div id="contents">
  <%if(category)%>・・・(A)
   <a href="#footer-contents"><%category(name)%>の過去記事一覧は画面下にあります。</a>
   <%if(blogsetting,bname,WEB Artisan)%>・・・(B)
   <%otherblog(artisanblog,artisandefault,10)%>・・・(C)
   <%else%>
   <%otherblog(aboutblog,aboutdefault,10)%>・・・(C)
   <%endif%>
  <%else%>
   <%otherblog(artisanblog,artisandefault,10)%>・・・(A)
  <%endif%>
 </div>



■画面左のカテゴリー選択部(メニュー)
 <div id="sidebar-a">
  <p>+ C a t e g o r i e s +</p>
  <%categorylist(artisandefault,artisanblog)%>・・・(D)
  <%categorylist(aboutdefault,aboutblog)%>・・・(D)
 </div>



(A)TOPページ表示時の処理
”<%if(category)%>”を使用し、
カテゴリーが選択された・されていない場合の表示内容を設定します。
当サイトTOPページからアクセスされた場合、カテゴリーは選択されておらず、
if文のelseに入ります。
”<%otherblog(〜”を使用し、「artisanblog」の最新記事10を表示することになります。
※「otherblog」を使用するのも重要です。

(B)カテゴリー選択時の処理
カテゴリーが選択された場合、(A)のif文はtrueとなって(B)の処理に入ります。
で、ここで更にif文を使用します。
”<%if(blogsetting,bname,WEB Artisan)%>”は、
”今表示されているBlogの名前が、「WEB Artisan」であれば”という意味です。
このtrue・falseによって、テンプレートを切り分ける処理を(C)で行うことになります。

(C)テンプレートの切り分け
(B)の結果がtrueの場合は、現在表示中のBlogが「WEB Artisan」、
すなわち前まであったBlogです。
その場合は、”<%otherblog(artisanblog,artisandefault,10)%>”。
つまり、「artisandefault」のテンプレートを使用して、
「artisanblog」を表示する事になります。
falseの場合、これが今回新たに追加したBlogにあたる訳です。
この場合は、”<%otherblog(aboutblog,aboutdefault,10)%>”。
「aboutdefault」のテンプレートを使用して、「aboutblog」を表示する事になります。
これで、テンプレートの切り分けができました。

(D)カテゴリー表示の調整
(C)までで一通りの動きは実現できたわけですが、
新しくBlog作成しているので、スキン内の他の記述を見なおす必要が出てきます。
当サイトでいえば、メニューにあたるカテゴリー一覧部分。
ここでは、”<%categorylist(〜”を使用し、
「artisanblog」と「aboutblog」の両方のBlogのカテゴリーを常に表示するように設定します。
※もちろん、これ以外の見直しもサイトによっては必要です。


以上の流れで、めでたくテンプレートを切り分ける事が出来ました。
サイトによっては、「メイン目次ページ」以外のスキンも修正する必要があるでしょう。
手間ですが、簡単ですね。
これも、うまく構造化されているNucleusの機能を使った一例かもです。。
<スポンサードリンク>
前の記事 次の記事

Comments

コメントは、まだ書かれていません

Add Comments

Trackback

トラックバックはありません

Trackback URL

http://www.res-system.com/weblog/action.php?action=plugin&name=TrackBack&tb_id=343