HNS::Tools::HeadLine.pmでサイドバーのデータを生成しているので、それを再利用する感じで。
とりあえずindex.cgiを下記のようにする。
> diff -u index.cgi.in.orig index.cgi.in
--- index.cgi.in.orig Sun Apr 24 08:57:09 2005
+++ index.cgi.in Sun Apr 24 09:04:19 2005
@@ -182,6 +182,14 @@
if ($y < 1970){
$col->ReadRecent($HNS::System::DefaultMax);
} else {
+ use HNS::Tools::HeadLine;
+ my $sectitle = new HNS::Tools::HeadLine;
+ $sectitle->getFileListByPattern($sectitle->diaryDir($y),"$y$m$d");
+ $sectitle->readHnf("d$y$m${d}.hnf", 'side');
+ my @new = @{$sectitle->title};
+ my $stitle = @new[$s];
+ $stitle =~ s/^.*>(.*)<\/a>$/$1/g;
+ $HNS::System::Title .= ' ' . $stitle;
$col->Read($y, $m, $d);
}
}
使うのはHNS::Tools::Title.pmでもいいとは思う。その場合はreadHnfの第2引数をゴニョる必要があるかも。
GRP項目がある場合にずれるな:
どうしようかな。
一番手っ取り早いのはlib/HNS/Tools/HeadLine.pmのsub Parseの最後のほうを
一番手っ取り早いのはlib/HNS/Tools/HeadLine.pmのsub Parseの最後のほうを
if ($grp eq '') {
push(@title, $grp . $newHtml->AsHTML($templ, $params));
};
という感じでGRPはヘッドラインに出さないように殺してしまうことだけど。
「どーでもいいんですが、エントリごとのページを見ている時でも「以上、1 日分です。」と表示されてるのが、ちょっと気になりました。」:
とくひろさんから。
というわけで単純にindex.cgiの$HNS::System::Title .= ' ' . $stitle;の下に
本当はHNS/Collection.pmで
んで
……でも$HNS::Diary::sectionがセットされるタイミングが問題なのかうまくいかないな。とりあえずindex.cgiだけで対処しとくか。
というわけで単純にindex.cgiの$HNS::System::Title .= ' ' . $stitle;の下に
$HNS::Collection::FootMessages{'HasContent'} = "以上です。\n";
としてしまった。本当はHNS/Collection.pmで
%FootMessages =
('HasContent'=>"Diary for %num day(s)\n",
'Section'=>"Diary of one section\n",
'NoContent' =>"No Match\n");
という感じでハッシュを増やしてtheme.phで上書きできるようにしないとhnsの設計を守れないな。んで
# Footer
my $msg_type = $num ? 'HasContent' : 'NoContent';
を
# Footer
if ($num){
if ($HNS::Diary::section){
$msg_type = 'Section';
} else{
$msg_type = 'HasContent';
}
} else{
$msg_type = 'NoContent';
}
という感じか。……でも$HNS::Diary::sectionがセットされるタイミングが問題なのかうまくいかないな。とりあえずindex.cgiだけで対処しとくか。



[ コメントする ]