選択されたアーカイブリンクを強調表示する

選択されたアーカイブリンクを強調表示する

Posted at January 11,2005 5:10 PM
Tag:[]

サイドメニューにある Monthly Archives および Categories のリンクをクリックした時に該当のリンクを強調表示させるカスタマイズです。
本カスタマイズは下記の記事を参考にさせて頂きました。ありがとうございました。

nlog(n)月別アーカイブ一覧で表示月を強調したい

ここではカスタマイズ方法のみ記しておりますので機能の詳細につきましては参照元の記事をご覧ください。

以下カスタマイズ方法です。なおオリジナルは PerlScript プラグインを利用されていますがここでは php を使ってみました。したがって利用するアーカイブファイルの拡張子が .php になっていることが前提となります。またモジュール化されている場合は正常に動作しませんので予めご了承ください。PerlScriptプラグインを利用される場合は拡張子の制約はありませんので必要な箇所を適宜修正ください。

1.MTTagInvoke のダウンロード

MTExtensions のページより MTTagInvoke をダウンロードしてください(ページ左上に「Download」のリンクがあります)。ダウンロードしたファイルを解凍して MTTagInvoke.pl を plugins フォルダに配置(FTP等によるアップロードを含む)します。

2.Monthly Archives を変更する場合

日付アーカイブテンプレートにあるサイドメニューの Monthly Archives のタグ(下のリスト)の下線部分を削除して、青色のタグを追加してください。例は公開テンプレートのものを利用しています。

<div class="sidetitle">
Monthly Archives
</div>
 
<MTTagInvoke tag_name="MTSetVar" name="thismonth">
<MTTagAttribute name="value"><$MTArchiveDate format="%Y%m"$></MTTagAttribute>
</MTTagInvoke>
 
<div class="side">
<MTArchiveList archive_type="Monthly">
<a href="<$MTArchiveLink$>">
<a href="<$MTArchiveLink$>"<?php $a ="<$MTGetVar name="thismonth"$>"; $b = "<$MTArchiveDate format="%Y%m"$>"; if ($a == $b) print " style=\"font-weight:bold;\""; ?>>
<$MTArchiveTitle$></a> [<$MTArchiveCount$>]<br/>
</MTArchiveList>
</div>

本設定は日別アーカイブページにも適用されます。例えば月別アーカイブと日別アーカイブが同じ「日付アーカイブテンプレート」を利用する設定になっていて(デフォルトではそのようになっています)、カレンダーのリンクが日別アーカイブページになっている場合、カレンダーのリンクをクリックした先のページで該当月が強調表示されます。

3.Categories を変更する場合

カテゴリー・アーカイブテンプレートにあるサイドメニューの Categories のタグ(下のリスト)の下線部分を削除して、青色のタグを追加してください。同じく公開テンプレートのものを例にしています。

3.1 一括表示

<div class="sidetitle">
Categories
</div>
 
<MTTagInvoke tag_name="MTSetVar" name="thiscategory">
<MTTagAttribute name="value"><$MTArchiveTitle$></MTTagAttribute>
</MTTagInvoke>
 
<div class="side">
<MTCategories>
<a href="<$MTCategoryArchiveLink$>">
<a href="<$MTCategoryArchiveLink$>" <?php $a ="<$MTGetVar name="thiscategory"$>"; $b = "<$MTArchiveTitle$>"; if ($a == $b) print "style=\"font-weight:bold;\""; ?>>
<$MTCategoryLabel$></a> [<$MTCategoryCount$>]<br />
</MTCategories>
</div>

3.2 サブカテゴリー表示

<div class="sidetitle">
Categories
</div>
 
<MTTagInvoke tag_name="MTSetVar" name="thiscategory">
<MTTagAttribute name="value"><$MTArchiveTitle$></MTTagAttribute>
</MTTagInvoke>
 
<div class="side">
<div id="categories">
<MTTopLevelCategories>
<MTSubCatIsFirst><ul></MTSubCatIsFirst>
<MTIfNonZero tag="MTCategoryCount">
<li><a href="<$MTCategoryArchiveLink$>" title="<$MTCategoryDescription$>">
<a href="<$MTCategoryArchiveLink$>" <?php $a ="<$MTGetVar name="thiscategory"$>"; $b = "<$MTArchiveTitle$>"; if ($a == $b) print "style=\"font-weight:bold;\""; ?> title="<$MTCategoryDescription$>">
<MTCategoryLabel></a> [<$MTCategoryCount$>]
<MTElse>
<li><MTCategoryLabel>
</MTElse>
</MTIfNonZero>
<MTSubCatsRecurse max_depth="3">
</li>
<MTSubCatIsLast></ul></MTSubCatIsLast>
</MTTopLevelCategories>
</div>
</div>

サブカテゴリーについては MTTopLevelCategories で括られているか、モジュール化されていないとクリックしたカテゴリー自体が表示されませんのでご注意ください。

いずれも表示部分を、

style=\"font-weight:bold;\"

に統一していますが、

class=\"hogehoge\"

に変更し、スタイルシートへ

.hogehoge {
    font-weight:bold;
}

と設定することも可能です。

2005.01.11 追記
モジュール化されている場合は正常に動作しない旨を追記しました。

2005.01.12 追記
モジュール化対応版を公開しました。

関連記事
トラックバックURL


トラックバック

選択されたアーカイブリンクを強調表示! from やむやむ
小粋空間 さまの 「選択されたアーカイブリンクを強調表示する」 を真似して、 サ... [続きを読む]

Tracked on January 11, 2005 10:34 PM

“選択されたアーカイブリンクを強調表示する”を試すの巻 from TOY COZY MUSEUM 別館
"Monthly Archive"や"Categories"、もしくはエントリー... [続きを読む]

Tracked on January 11, 2005 11:09 PM
コメント

(@^^@)/コンバンワ カテゴリーも、日付アーカイブも 両方やってみました。
MTTagInvoke は、以前 こんなこと した時に 使ったので、既に plugins フォルダに MTTagInvoke.pl が入ってました。
それで、うちは サイドメニューの一つ一つを全て、個別のインデックス・テンプレートにして モジュール化してるんですけど、
(月別アーカイブも、カテゴリ別アーカイブも、です。)
その 個々のテンプレートに MTTagInvoke tag の記述をして テンプレートを単独で再構築すると
エラーになりましたので、日付アーカイブや、カテゴリーアーカイブにタグを直接記述して、やっとOKでした。
両方とも、選択したアーカイブのリンクが 太字でバッチリ強調表示されてます。

[1] Posted by さえら : January 11, 2005 10:06 PM

んばわー。利用させてもらいましたー。
プラグインて、モジュールと相性悪かったりするんですかねぇ。
ウチの場合更にプルダウンだったりするので、どうにもこうにも・・・。(笑)
サイドバーだけに再度やってみました・・・。|彡サッ

[2] Posted by 198 : January 12, 2005 12:28 AM

>さえらさん
こんばんは。
ご利用&ご指摘ありがとうございます。
どうもモジュール化されたものには向いてないみたいですね。
まあ賑やかしということで。

>198さん
こんばんはー。
サイドバーだけに、ドバーッと(意味なし)。

[3] Posted by yujiro : January 12, 2005 1:48 AM
コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)