これまで、当サイトの記事の右上には、
>「[ソフトウェア]」
のように、記事のカテゴリーが表示されていた。
今回、
>ソフトウェア
のように見た目を変更した。
変更点は:
style-sites.css
.key a, .category a {
padding:3px;
background-color: #f0f0f0;
border: 1px solid #a0a0a0;
text-decoration: none;
}
html_item.skin
<div class="category">
<a href="<%=$site_base%>rnote.php?u=<%=$Category_Dir%>"><%=$Category%></a>
</div>
この変更で、外見に関してはOK。(置換命令 Category_Dir はサブカテゴリのカテゴリキーを表示させるためにrnote.php にコードを追加する。詳細は後述。)
続けて、サブカテゴリの場合の表示の修正を行う。
例えば、 works/software/ というディレクトリを掘り、 works/software/ のカテゴリ名を「冬星のソフトウェア」とするために、 rnote_config.php に、
>$category_name['works/software'] = '冬星のソフトウェア';
と書いても、オリジナルの rNote では、カテゴリ名に、「works/software/」としか表示されない。これを、「冬星のソフトウェア」と表示されるように変更を加える。
// ITEM用スキン処理・本体
function GetContentsEach($fname,$skin,$bSingle) の中の、
while($tagstr=SkinTagChk('Category',$a,$opt)){
$dd = explode("/",$dir);
$cn = '';
if(sizeof($dd)>1){
foreach($dd as $dd) if($dd){
if(isset($category_name[$dd])) $dd=$category_name[$dd];
$cn .= '/'.$dd;//カテゴリ名がなければカテゴリキーを使用する。
}
}else{
if(isset($category_name[''])) $cn=$category_name['']; else $cn='Home';
}
$a=str_replace($tagstr,preg_replace('/^\//','',$cn),$a);
}
の部分を、下のように変更する。
while($tagstr=SkinTagChk('Category',$a,$opt)){
$cn = '';
$cd = preg_replace('/^\//','',$dir);
$cd = preg_replace('/\/$/','',$cd);
if(isset($category_name[$cd])) {
$cn=$category_name[$cd];
} else {
$cn=$dir;//カテゴリ名がなければカテゴリキーを使用する。
}
$a=str_replace($tagstr,preg_replace('/^\//','',$cn),$a);
}
また、 SkinTagChk(‘Category’,$a,$opt) の while ループの直前に、下を追加する。
while($tagstr=SkinTagChk('Category_Dir',$a,$opt)){
$cn = '';
if(isset($category_name[$dir])) {
$cn=$category_name[$dir];
} else {
$cn=$dir;//カテゴリ名がなければカテゴリキーを使用する。
}
$a=str_replace($tagstr,$cn,$a);
}
これで、サブカテゴリ works/software/ が「冬星のソフトウェア」と表示され、リンクも貼られるようになる。