TopMovable Typeカスタマイズ最近のトラックバック > エントリー・アーカイブで同一カテゴリーのトラックバックを表示する
2006年5月30日

エントリー・アーカイブで同一カテゴリーのトラックバックを表示する

Posted at May 30,2006 1:50 AM
Category:[エントリー, サイドバー, トラックバック, 最近のトラックバック]
Tag:[, , ]

Movable Type のエントリー・アーカイブで同一カテゴリーのトラックバックだけを表示するカスタマイズです。ご質問を頂きましたので本エントリーにて紹介致します。

基礎知識として、エントリー・アーカイブで MTPings タグを普通に利用するだけでは、該当エントリーのトラックバックしか表示されません(アーカイブページに「最近のコメント」「最近のトラックバック」を表示する参照)。そういう訳でプラグインをいくつか試してみましたが、そのまま使うことで表示を満足するものはありませんでした(あったらすいません)。

で、自分でプラグインを作成するスキルもないので、勝手ながら Ogawa::memoranda さんの Recently pinged on Plugin を下記の通り改変させて頂き、表示させることができました。

プラグイン:Recently pinged on Plugin
改変内容:エントリー・アーカイブで同一カテゴリーのトラックバックだけを表示する

プラグインのダウンロード、インストール等につきましては配布元の記事を参照ください。

1.プラグインの修正

recently-pinged-on.pl に下記のパッチをあててください。パッチ適用前にファイルのタブ文字を半角空白8文字に変換してください。

--- recently-pinged-on.pl.bak   Tue May 30 01:14:15 2006
+++ recently-pinged-on.pl       Tue May 30 01:16:35 2006
@@ -41,7 +41,7 @@
     my $blog_id = $ctx->stash('blog_id');
     my ($start, $end) = ($ctx->{current_timestamp},
                          $ctx->{current_timestamp_end});
-    my $cat = $ctx->stash('archive_category');
+    my $cat = $ctx->{current_archive_type} eq 'Individual' ? $ctx->stash('entry')->category : $ctx->stash('archive_category');
 
     require MT::TBPing;
     my $iter = MT::TBPing->load_iter({ blog_id => $blog_id },
@@ -63,6 +63,7 @@
         my $entry = MT::Entry->load($entry_id) or next;
 
         next if $entry->status != MT::Entry::RELEASE();
+        next if !$cat && $ctx->{current_archive_type} eq 'Individual';
         next if $cat && !$entry->is_in_category($cat);
         next if $start && $end && ($entry->created_on < $start || $entry->created_on > $end);

パッチの利用方法が分からない方は、下記の recently-pinged-on.pl の抜粋を参考に、赤色部分を削除して青色の行を追加してください。*1

          :
my $blog_id = $ctx->stash('blog_id');
my ($start, $end) = ($ctx->{current_timestamp},
                     $ctx->{current_timestamp_end});
my $cat = $ctx->stash('archive_category');
my $cat = $ctx->{current_archive_type} eq 'Individual' ? $ctx->stash('entry')->category : $ctx->stash('archive_category');
          :
        (中略) 
          :
    require MT::Entry;
    my $entry = MT::Entry->load($entry_id) or next;
 
    next if $entry->status != MT::Entry::RELEASE();
    next if !$cat && $ctx->{current_archive_type} eq 'Individual';
    next if $cat && !$entry->is_in_category($cat);
    next if $start && $end && ($entry->created_on < $start || $entry->created_on > $end);
          :

一応確認したつもりですが、改変内容に不備(他のアーカイブで仕様通りに動作しない等)がございましたらご指摘ください。

2.テンプレートの設定

エントリー・アーカイブのサイドバーの任意の位置に「最近のトラックバック」を表示する下記のタグを設定します。これまで表示していた「最近のトラックバック」のタグは削除してください。
あまり差異はありませんが、デフォルトテンプレートと公開テンプレートの2種類を挙げておきます。

2.1 デフォルトテンプレートの場合

<div class="module-archives module">
<h2 class="module-header">Entries of this Category</h2>
<div class="module-content">
<MTEntries recently_pinged_on="5">
<a href="<$MTEntryLink$>"><$MTEntryTitle$></a>
<ul>
<MTPings lastn="5">
<li><a href="<$MTPingURL$>" rel="nofollow"><$MTPingTitle$></a><br />
[<$MTPingBlogName$>] <$MTPingDate format="%m/%d %X"$></li>
</MTPings>
</ul>
</MTEntries>
</div>
</div>

2.2 公開テンプレートの場合

<div class="sidetitle">
Recent Comments
</div>
<div class="side">
<MTEntries recently_pinged_on="5">
<a href="<$MTEntryLink$>"><$MTEntryTitle$></a>
<ul>
<MTPings lastn="5">
<li><a href="<$MTPingURL$>" rel="nofollow"><$MTPingTitle$></a><br />
[<$MTPingBlogName$>] <$MTPingDate format="%m/%d %X"$></li>
</MTPings>
</ul>
</MTEntries>
</div>

*1:色覚障害等で色が識別できない場合は、サイト右上の「Styles」メニューにある Gray Scale をクリックしてください。IEではグレースケール表示され、青色部分が下線表示、赤色部分が二重下線で表示されます。Firefox/Opera ではカラー表示のままですが下線表示に切り替わります。なお設定の都合上、リンクとテキスト表示が判断できなくなりますので予めご容赦ください。

Posted by yujiro   このページの先頭に戻る
関連記事
この記事を読んだ人はこんな記事も読んでいます
人気エントリー
Hatena Hot Entries
Hatena Entries
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


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

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

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

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

Now loading...
Introduction
Entries of this Category
Recent Entries
Recent Comments
Recent Trackbacks
QRcode

現在停止中です
携帯電話からこのQRcodeを撮影することで携帯用URLを取得することができます

URI for cellular phones
ギターに入った猫
Styles
Font Size
Default
For defective color vision
Gray Scale
RGB Color
Search this site

このブログをメールで購読する by:FeedBurner

loading ...
Categories
Monthly Archives
BlogPeople
Syndicate this site
FeedBurner(RSS1.0/RSS2.0/Atom)
Counter
これまでのアクセス
クリエイティブ・コモンズ・ライセンス
Powered by
Movable Type 5.12