http://japan.nucleuscms.org/wiki/plugins:itemnaviex
かなり有用に使わせていただいているパンくずリスト作成用プラグインなのですが、ArchiveList のリンクが index.php のみで終わってしまうケースがあります。
ページがない場合、いわゆるトップページの場合は ArchiveList へのリンクではなく、トップページへのリンクになってしまうのです。まぁトップページだったら最新タイトルをサイドバーに表示してるので、ある意味ここがアーカイブリストとも言えますが、名前が ArchiveList なのにトップページへのリンクってどうなんだろう、と思ってたのです。
こういう仕様なので、スキンでは下記のようにページ有無を条件として場合分けし、ArchiveList を出すような EXTRA スキンをわざわざ用意してたりしました。
スキン内の記述例 <div id="contents"> <%if(category)%> <%ItemNaviEX%> <%else%> <%if(hasplugin,VariableGetOption,page)%> <%ItemNaviEX%> <%else%> <%ExtraSkinJP(navi)%> <%endif%> <%endif%>
これはちょっとスマートじゃないと思ってたので、プラグインを改修してみました。
NP_ItemNaviEX.php の290行目くらい
$endKey = $this->scanEndKey($naviUnit);
if($skinType != 'archivelist' && $skinType != 'archive' && $skinType != 'item'){
//20100518_takehana_upd_s
// echo '<a href="'.$naviUnit[$endKey][2].'">» ArchiveList</a>';
if (getVar('page')) {
echo '<a href="'.$naviUnit[$endKey][2].'">» ArchiveList</a>';
} else {
echo '<a href="index.php?archivelist='.$blogid.'">» ArchiveList</a>';
}
//20100518_takehana_upd_e
}
こうすることで、下記のようなスキン記載でも大丈夫になりました。
修正後 <div id="contents"> <%ItemNaviEX%>
だいぶスッキリして、見やすくなったかと思います(まぁ普通にブログ閲覧する時は関係ないんですけれど)。
コメント