オリジナルの rNote では、記事表示部分の上に表示されるナビゲーション部分、

>「」へのコーナーを表示中です。(全部で???件の投稿があります。)

の部分も、サブカテゴリのディレクトリ works/software を作り、カテゴリ名に「冬星のソフトウェア」と指定した場合に、

>「ホーム/works/ソフトウェア

のように表示されてしまう。

これを、

>「ホーム/works/冬星のソフトウェア」のコーナーを表示中です。(全部で???件の投稿があります。)

のように表示できるように修正した。

rnote.php の function Navi_ForthBack(&$fi,$opt) の中の、

    // Category name
    $d0 = explode("/",$dir);
    if(isset($category_name[''])) $cn=$category_name['']; else $cn='Home';
    $category = '<a href="'.MakeLinkUrl().'">'.$cn.'</a>';
    $dd = '';
    foreach($d0 as $a) if($a){
        $cn = $a; if(isset($category_name[$cn])) $cn=$category_name[$cn];
        $dd .= $a.'/';
        $category .= '/<a href="'.MakeLinkUrl($dd).'">'.$cn.'</a>';
    }

の部分を、下のように修正する。

    // Category name
    $d0 = explode("/",$dir);
    if(isset($category_name[''])) $cn=$category_name['']; else $cn='Home';
    $category = '<a href="'.MakeLinkUrl().'">'.$cn.'</a>';
    $dd = '';
    $cd = '';
    foreach($d0 as $a) if($a){
        if ($cd == '') $cd = $a; else $cd .= '/' . $a;
        if(isset($category_name[$cd])) $cn=$category_name[$cd];
        $dd .= $a.'/';
        $category .= '/<a href="'.MakeLinkUrl($dd).'">'.$cn.'</a>';
    }

これで、希望するような形で表示されるようになる。

キーワード: rNote ナビゲーション


これまで、当サイトの記事の右上には、

>「[ソフトウェア]」

のように、記事のカテゴリーが表示されていた。

今回、

ソフトウェア

のように見た目を変更した。

変更点は:

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/ が「冬星のソフトウェア」と表示され、リンクも貼られるようになる。

[コメントの受付は終了しています ]
この記事のリンク元 | 14 |

キーワード: rNote カテゴリー


これまでは、当サイトの記事の下部には、

>「この記事に属するキー: [rNote] [XML-RPC]」

のように、その記事に設定されたキーワードの一覧を表示していた。

今回、

>「キーワード: rNote XML-RPC

のように見た目を変更した。

変更点は:

style-sites.css

.key a, .category a {
    padding:3px;
    background-color: #f0f0f0;
    border: 1px solid #a0a0a0;
    text-decoration: none;
}

html_item.skin

<if def_tag="Keys">
< div class="keys">
< p style="text-align: right">キーワード:
<?php
  $string = '<%=$Keys%>';
  $tkn = strtok($string,",");
  while ($tkn !== false) {
    echo " <span class=\"key\"><a href=\"<%=$site_base%>rnote.php?m=search&cache=off&q=$tkn&u=&cmt=1&and=1\">$tkn</a></span>";
    $tkn = strtok(",");
  }
?>
</div>
</if>

キーワード: rNote キーワード keys