2005年01月11日

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

サイドメニューにある 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 追記
モジュール化対応版を公開しました。

Posted by yujiro at 2005年01月11日 17:10
トラックバックURL

このエントリーのトラックバックURL:
http://yujiro.dyndns.org/blog/koikikukan/mt-tb.cgi/475

トラックバック実行後、タイムアウトした旨のメッセージが表示されることがありますが、トラックバック先の処理は(これまでの経験上)正常に終了しています。正常に送信されたかどうかはトラックバック先の個別アーカイブページ等をご確認ください(タイムアウトについてはこちらの記事を参照ください)。
また同一のトラックバックが重複してしまった場合、こちらで気がついた時に適宜削除しておりますので削除のご連絡は不要です。ただし期間が空いている場合(数日とか)は気がつかない場合がありますのでご連絡ください。

トラックバック

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

トラックバック時刻: 2005年01月11日 22:34

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

トラックバック時刻: 2005年01月11日 23:09
コメント

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

投稿者 さえら : 2005年01月11日 22:06

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

投稿者 198 [TypeKey Profile Page] : 2005年01月12日 00:28

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

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

投稿者 yujiro : 2005年01月12日 01:48
コメントする




保存しますか?

(書式を変更するような一部のHTMLタグを使うことができます)

コメントありがとうございます。投稿が反映されるまでに時間がかかる場合がありますが「投稿」ボタンを続けてクリックされないようお願い致します。またコメント投稿処理が終了しない場合、トップページに反映されない場合がありますがコメントは正常に投稿されています(サーバ側の不具合のようです。こちらで操作してページに反映させています)。また1回のクリックでも重複してしまう場合がありますが適宜削除しておりますのでご連絡は不要です。