<<    |     |  >>
<<    |     |  >>

カテゴリページのトップに説明を追加してみた


タイトルそのまんまでたいした内容ではありません。カテゴリページへは、画面最上部のカテゴリリンクをご利用ください。ご覧頂くと以下の説明もわかりやすいと思います。

カテゴリページ各々に別々の説明を表示させています。iBlogの場合、カテゴリページは一つのテンプレートから作成されます。
そうすると、カテゴリごとの説明を追加しようとしてもうまくいかないことになります。まぁ単純なことではあるのですが、CategoryUUIDを利用して、各々カテゴリに対する説明文を得るようなjavascriptを作成し、CommonLib.jsに埋め込んでやり、それを引っ張り出して表示させる。そんな方法をとっています。カテゴリが増減した場合、CommonLib.jsをいじってやる必要が生じますが、それはそれ、後で考えます。

実現に当たって、私の場合は次のようにした。まず「CategoryPage.txt」の<ForEachEntry>の前に

<div class="blogbody">
<h3 class="title">&#12371;&#12398;&#12459;&#12486;&#12468;&#12522;&#12399;&#8230;</h3>
<div><script language="JavaScript1.2" type="text/javascript"> getCategoryNotes("<$CategoryUUID$>");</script></div>
</div>
を書き加えます。「&#12371;&#12398;&#12459;&#12486;&#12468;&#12522;&#12399;&#8230;」という記号の羅列は、「このエントリは…」という日本語の実体参照です。getCategoryNotes(CategoryUUID)という関数が、「CommonLib.js」に追加する関数です。
「CommonLib.js」には次のような関数を書き込む。

function getCategoryNotes(categoryUUID){

 var categoryNotesPairs=newArray("C000000","notes01","C000001","notes02");

 for(vari=0;i<categoryNotesPairs.length-1;i++){
  if(categoryNotesPairs[i]==categoryUUID){
   document.write(categoryNotesPairs[i+1]);
   }
  }
 }
尚、categoryNotesPairs 変数に代入する値は、各自のCategoryUUIDとその説明のペアを各自のカテゴリの数だけ並べたものでなければなりません。私は相変わらず手作業で行いました。また、「notes01/notes02」の部分に説明が入るわけですが、これは全て半角もしくは実体参照で書かないとエラーになります。

上記コードは「&」が全角だったり、全角スペースをインデント代わりに使ったりして、適当ではありませんので、コピペは止めましょう。

   Comment   T-Back  
T-Back URL