rNoteによる記事の並び。
Topページではskinのsortオプションで「コメント込みで更新が新しい順」に並ぶようにしているのだが、後から日付指定で表示する時には「同じ日の記事は古い順」に並べたいと感じていたので、Topページ以外では「古い順」になるように変更して日付指定では期待通りに表示されるようになった。
ところが先月分を見ようとした際にも、1日分から「古い順」に表示されてしまい、違和感大爆発。やはり先月分は月末から表示した方が良い気がする。で、各方向から検討の結果、skinのマクロで条件を細分化できるようflagに"bDaily"と"bMonthly"を追加する事に。
というわけでrnote.phpのskin_macro関数を
case 'flag':てな具合に改造し、"yyyy-mm-dd"という年月日指定がされている時にだけ「古い順」で並ぶよう変更した。
switch($value){
case 'bHome':
if(($_GET['u']=='')&&($_GET['d']=='')) $bFlag = true;
break;
// bDaily対応 by YANO
case 'bDaily':
if(ereg("^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]\$",$_GET['d'])) $bFlag = true;
break;
// bMonthly対応 by YANO
case 'bMonthly':
if(ereg("^[0-9][0-9][0-9][0-9]-[0-9][0-9]\$",$_GET['d'])) $bFlag = true;
break;
PHPのereg関数の正規表現で数字を表わすメタキャラクタ\d
が期待通りに判定されなかったので、止む無く[0-9][0-9][0-9][0-9]
というベタな書き方に。つまらんとこで随分と時間を浪費してしまったな~。
【参照】
●rNote http://rinn.e-site.jp/rnote/