/ / 最新

swk's log - clsearch.cgi の詳細モード

2005-11-03

* clsearch.cgi の詳細モード [logging][chalow]

chalow に付属する検索 CGI の clsearch.cgi が,いつの頃からか詳細モー ド ($mode == 1) だと記事タイトルや日付を表示してくれなくなってて, あれ? とか思いつつ放置していた.

で,ふと思い立って中身を読んでみたところ,ページの最小単位が日ごとか らアイテムごとに変わったときの副作用だと理解した.

詳細モードの動作は,

  • cl.itemlist から文字列を検索して,ファイル名と記事 ID を得る
  • 該当するファイルから,<!-- start:$id --> と <!-- end:$id --> の間を抜き出して (get_item) 表示

となっている.日ごとページから抜き出していたときは記事タイトルが start: 〜 end: 間に含まれていたけど,アイテムごとページの場合,デフォルト のテンプレートだと記事タイトルは <h1>〜</h1> の方にあるので,結果と して記事タイトル無しのまま抽出されて並ぶことになる.

というわけでアイテムページのテンプレートでも,start: 〜 end: 間に記 事タイトルとかを書いてやるようにすれば,clsearch.cgi はちゃんと表示 してくれる.<h1>〜</h1>の方はどうしましょうかね,と思ったけど,両方 に書いておくことにした.ちょっと変かな.まあいいよな.

さて日付はどうしよう.というか仕組みを考えると,アイテムごとページが 導入される前から日付は表示されていなかったってことになるな.よく覚え てないけど.一番簡単なのは,start: 〜 end: 間に日付も入れてしまうっ て方法かな.

<!-- start:<TMPL_VAR name=ymdi> -->
<div class="day">
<h2><span class="date"><a href="<TMPL_VAR name=ymd>.html">
<TMPL_VAR name=ymd></a></span></h2>
<div class="body">
<div class="section">
<h3 class="subtitle"><TMPL_VAR name=header> <TMPL_VAR name=cat></h3>
<TMPL_VAR name=content>
                        (中略)
</div><!-- section -->
</div><!-- body -->
</div><!-- day -->
<!-- end:<TMPL_VAR name=ymdi> -->

start: 〜 end: の意味を変えちゃうのでちょっと危険な香りもする.日ご とページの方の start: 〜 end: と構造が変わっちゃうし.これが嫌な場合 は clsearch.cgi をいじるしかないかなあ.

(実は最初は clsearch.cgi をいじってたんだけど,結局元に戻して以上の ような対処に落ち着いた)

最終更新時間: 2007-08-20 03:32


Shingo W. Kagami - swk(at)kagami.org