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

>「[ソフトウェア]」

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

今回、

ソフトウェア

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

変更点は:

style-sites.css

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

html_item.skin

  1.  
  2. <div class="category">
  3. <a href="<%=$site_base%>rnote.php?u=<%=$Category_Dir%>"><%=$Category%></a>
  4. </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) の中の、

  1. while($tagstr=SkinTagChk('Category',$a,$opt)){
  2. $dd = explode("/",$dir);
  3. $cn = '';
  4. if(sizeof($dd)>1){
  5. foreach($dd as $dd) if($dd){
  6. if(isset($category_name[$dd])) $dd=$category_name[$dd];
  7. $cn .= '/'.$dd;//カテゴリ名がなければカテゴリキーを使用する。
  8. }
  9. }else{
  10. if(isset($category_name[''])) $cn=$category_name['']; else $cn='Home';
  11. }
  12. $a=str_replace($tagstr,preg_replace('/^\//','',$cn),$a);
  13. }

の部分を、下のように変更する。

  1. while($tagstr=SkinTagChk('Category',$a,$opt)){
  2. $cn = '';
  3. $cd = preg_replace('/^\//','',$dir);
  4. $cd = preg_replace('/\/$/','',$cd);
  5. if(isset($category_name[$cd])) {
  6. $cn=$category_name[$cd];
  7. } else {
  8. $cn=$dir;//カテゴリ名がなければカテゴリキーを使用する。
  9. }
  10. $a=str_replace($tagstr,preg_replace('/^\//','',$cn),$a);
  11. }

また、 SkinTagChk(‘Category’,$a,$opt) の while ループの直前に、下を追加する。

  1. while($tagstr=SkinTagChk('Category_Dir',$a,$opt)){
  2. $cn = '';
  3. if(isset($category_name[$dir])) {
  4. $cn=$category_name[$dir];
  5. } else {
  6. $cn=$dir;//カテゴリ名がなければカテゴリキーを使用する。
  7. }
  8. $a=str_replace($tagstr,$cn,$a);
  9. }

これで、サブカテゴリ works/software/ が「冬星のソフトウェア」と表示され、リンクも貼られるようになる。

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

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