これまで、当サイトの記事の右上には、
>「[ソフトウェア]」
のように、記事のカテゴリーが表示されていた。
今回、
のように見た目を変更した。
変更点は:
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/ が「冬星のソフトウェア」と表示され、リンクも貼られるようになる。
この記事のリンク元
- http://red-souls.jp/ (14)