「サブカテゴリー内での移動」で書いたコードはなんとなくそれっぽく動いてたですが、事典ではやっぱり「あ行」→「か行」みたいに連続して移動できた方が便利な気がして、ずっと切り替え方式にしたいと思いつつ放置してたわけですが、ようやくまじめに取り組むことにしました。
というわけで、<%=$site_items%> の引数に continue="[on|off]" を追加です。いい名前が思いつかなかったのでこんなんです。省略時のデフォルトは off。
記事の複数表示時は何を指定しても無効で、記事を単独表示するとき on 時は従来通り同階層のカテゴリー含めて前後にページ移動し off 時はそのカテゴリー内でのみ前後移動するです。
実際の修正では continue の結果を bool 型にして SelectFileList() に渡し、
if(FORTHBACKMODE) $d0=ereg_replace('/.*$','',$dir); else $d0='';
を
if( FORTHBACKMODE )
{
if( $continue ) { $d0 = ereg_replace( '/.*$', '', $dir ); }
else { $d0 = $dir; }
}
else { $d0 = ''; }
に差し替えました。
さらに、<%=$navi_forthback%> では表示対象項目が所属するカテゴリーの情報を表示するよう修正しています。
こちらは Navi_ForthBack() という関数で、
if(FORTHBACKMODE) $dir=ereg_replace('/.*$','',$dir); if($dir) $dir.='/';
を
if( ! preg_match( '/\/$/', $dir ) ) $dir.='/';
に、
if($opt['mode']!='compact')
$rep .= ' (Total '.$fi[INFO_TOTAL]." items)</p>\n";
else
$rep .= '('.$fi[INFO_TOTAL].")<br>\n";
を
if($opt['mode']!='compact')
$rep .= ' (Total '.$g_dirlist[ $dir ][ DIRLIST_NUMITEM ]." items)</p>\n";
else
$rep .= '('.$g_dirlist[ $dir ][ DIRLIST_NUMITEM ].")<br>\n";
if( ! isset( $g_dirlist[ $dir ] ) ) print $dir;
に差し替えてるです。
とりあえずそれっぽく動いてるような気がするですが、さてどうでしょう…。
この記事へのリンク 1 件

