選択されたアーカイブリンクを強調表示する
Tag:[]
サイドメニューにある Monthly Archives および Categories のリンクをクリックした時に該当のリンクを強調表示させるカスタマイズです。
本カスタマイズは下記の記事を参考にさせて頂きました。ありがとうございました。
ここではカスタマイズ方法のみ記しておりますので機能の詳細につきましては参照元の記事をご覧ください。
以下カスタマイズ方法です。なおオリジナルは 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 追記
モジュール化対応版を公開しました。
- label 要素を用いてトラックバックURLを1クリックで選択状態にする
- 選択されたアーカイブリンクを強調表示する(モジュール化対応版)
≫ 選択されたアーカイブリンクを強調表示! from やむやむ
小粋空間 さまの 「選択されたアーカイブリンクを強調表示する」 を真似して、 サ... [続きを読む]
≫ “選択されたアーカイブリンクを強調表示する”を試すの巻 from TOY COZY MUSEUM 別館
"Monthly Archive"や"Categories"、もしくはエントリー... [続きを読む]
(@^^@)/コンバンワ カテゴリーも、日付アーカイブも 両方やってみました。
MTTagInvoke は、以前 こんなこと した時に 使ったので、既に plugins フォルダに MTTagInvoke.pl が入ってました。
それで、うちは サイドメニューの一つ一つを全て、個別のインデックス・テンプレートにして モジュール化してるんですけど、
(月別アーカイブも、カテゴリ別アーカイブも、です。)
その 個々のテンプレートに MTTagInvoke tag の記述をして テンプレートを単独で再構築すると
エラーになりましたので、日付アーカイブや、カテゴリーアーカイブにタグを直接記述して、やっとOKでした。
両方とも、選択したアーカイブのリンクが 太字でバッチリ強調表示されてます。
んばわー。利用させてもらいましたー。
プラグインて、モジュールと相性悪かったりするんですかねぇ。
ウチの場合更にプルダウンだったりするので、どうにもこうにも・・・。(笑)
サイドバーだけに再度やってみました・・・。|彡サッ
>さえらさん
こんばんは。
ご利用&ご指摘ありがとうございます。
どうもモジュール化されたものには向いてないみたいですね。
まあ賑やかしということで。
>198さん
こんばんはー。
サイドバーだけに、ドバーッと(意味なし)。