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
関連記事
人気エントリー
トラックバックURL


コメントする

*必須



お知らせ:2008年5月現在、多忙のため、7月頃までコメントを速やかに回答できない状態が続きます。ご質問の内容によっては回答が7月以降になる可能性がありますので、予めご了承ください。

太字 イタリック アンダーライン ハイパーリンク 引用

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

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

Now loading...
Entries of this Category
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 ...
BlogPeople
Now loading...
Syndicate this site
FeedBurner(RSS1.0/RSS2.0/Atom)
Counter
これまでのアクセス
クリエイティブ・コモンズ・ライセンス
Powered by
Movable Type 4.1
 
List Me!