Individual Entry

MT の Recent TrackBack で連続したトラックバックをヘッダー化する方法 [要Plugin : MTCollate , MTPingedEntry]

Date
2004-10-20 T14:10:34+09:00
Category
Tags
  • No tags available
Reactions

同じ記事に連続してトラックバックをされた場合、トラックバックされた記事のタイトルなりを括ってヘッダー化します。以前ツリー化と書いていましたが、正確な表現ではなかったので訂正させてください。

というのも、[a] の記事に11月20日にトラックバックされ、[b] の記事に11月22日に、そしてまた[a]の記事に11月30日にされたとしたら、20日と30日は同一の記事にトラックバックされているのにソートはされないので同一のタイトルで括ることが出来ないからです。要は、時間に遡行性が無いってことです。そこを上手くしたかったら、よく jugem ユーザーさんが使っている JavaScript が使用できるように弄ったら良いかと思います。

ツリー化する方法が見つかりました。詳しくは「MT で Recent Trackbacks のツリー化 [要Plugin]」で。

ヘッダー化前

下準備。最新数件のトラックバックしたブログを表示しリンクを貼る機能がデフォルトでありますが、トラックバックされたエントリーを表示する機能が何故か無いので、MTPingedEntryというプラグインを導入しておく。
すると、トラックバックされた自分のブログのエントリー、URL を表示できるようになり、一例ですが左のスクリーンショットのようになります。

ヘッダー化成功

上のスクリーンショットを例に話を進めますが、トラックバックされたエントリーが下の2件でかぶっているのでそれをヘッダーにして括れないかと考えたところ、MTCollateというプラグインでできました。

結果、下のスクリーンショットのように。ついでなので、MTCollate の説明もしてみました。

MTCollate の概要

Displaying (heterogeneous) lists of items sorted by multiple item attributes.

直訳すると多数のアイテム属性によってソートされたアイテムのリストの表示(異なるデータを混同してのソートも可能)。と言う感じでしょうか。もう少し詳しく見ると

The MTCollate plugin gives you great flexibility in sorting listings (for example, descending by date while ascending by time) and allows you to list heterogeneous data (for example, entries, comment and trackback pings together sorted by time). It even allows you to sort by non-continuous values (for example, categories could be sorted by other than name or id).

多種多様な柔軟性を持ったソートの仕方を可能にするプラグインということでしょう。以前にもカテゴリーの順序を並び替える時に使いました。ソートにかなりの幅が出ます。

例えば、エントリー・コメント・トラックバックなどの異質のデータを時間によってソートできるとも書いてあるので、まだまだ別な使い方がありそう。

導入方法

MT Extensions: MTCollate 1.1でダウンロードし、「plugins」ディレクトリ内にアップするだけ。これで、MTCollate 独自の拡張タグが使用できるようになります。

大雑把な拡張タグ説明

MTCollate works by building a virtual collection of records using the MTCollateCollect, MTCollateRecord and MTCollateSetField container tags.

中略

Once a collection has been built, its contents can be displayed using the MTCollateList and MTCollateField tags. MTCollateIfHeader and MTCollateIfFooter tags can be used to separate records that are listed, similar to MTDateHeader and MTDateFooter.

大雑把に訳せば、名前を適当に付けて、その名前を元に好きなようにソートする。ということ。使用するタグは以下の通り。

  • ソートする為に自由に名前を定義する。
    • <MTCollateCollect> : 定義部分の開始
    • <MTCollateRecord> : 名前を付ける部分を括る
    • <MTCollateSetField name="●●"> : 名前を自由に付ける。as long as their names are unique ということで、名前が被らなければ(ユニークであれば)どんな名前をつけても良いよう。
  • 一旦定義したら、自由にソートできます。
    • <MTCollateList> : ソート開始
    • <MTCollateField name="●●"> : SetField で付けた部分を名前を同一にして置換
    • <MTCollateIfHeader> : <MTDateHeader> と似た動作をする。省略可能なので必要な場合のみ使用。
    • <MTCollateIfFooter> : <MTDateFooter> と似た動作。同上。

定義部分で

<MTCollateSetField name="tbed_url"><$MTPingedEntryLink$></MTCollateSetField>

としたら、ソート部分では

<MTCollateField name="tbed_url">

とします。

実例

実際どうしたかを見た方が分かりやすいのでタグを並べて説明。collection のいい日本語が見当たらなかったので、そのまま用います。

<!-- MTCollate を用いた時にのみ適用される collection の定義をする -->

<MTCollateCollect> // 定義部分の開始
<MTPings lastn="5"> ←トラックバックを扱うので
<MTCollateRecord> // 名前の定義
<MTPingedEntry> ← プラグイン「MTPingedEntry」に掛かる部分を括る
	<MTCollateSetField name="tbed"><a href="<$MTPingedEntryLink$>" title="TrackBackされた記事"><$MTPingedEntryTitle$></a></MTCollateSetField>
</MTPingedEntry>
	<MTCollateSetField name="ping_url"><$MTPingURL$></MTCollateSetField>
	<MTCollateSetField name="ping_title"><$MTPingTitle$></MTCollateSetField>
	<MTCollateSetField name="ping_site"><$MTPingBlogName$></MTCollateSetField>
	<MTCollateSetField name="ping_date"><$MTPingDate format="%m.%d"$></MTCollateSetField>
</MTCollateRecord>
</MTPings>
</MTCollateCollect>
<!-- 定義した collection の名前を用いて実際にソートする。ちなみに、この場合は SetField で名付けた tbed を元にヘッダーを作成しました。 -->

<dl class="utility">
	<dt>Recent Trackbacks</dt>
	<dd>

<ul>
<MTCollateList> // collection の表示、ソートを開始

	<MTCollateIfHeader name="tbed"> // ヘッダー
	<li><MTCollateField name="tbed">
	</MTCollateIfHeader>
	<br />└ <a href="<MTCollateField name="ping_url">" title="<MTCollateField name="ping_title">"><MTCollateField name="ping_site"></a> - <MTCollateField name="ping_date">
<MTCollateIfFooter name="tbed">
	</li>
</MTCollateIfFooter>
</MTCollateList>
</ul>

</dl>

タグ内にも書きましたが、トラックバックのツリー化をするに当たって、トラックバックされた URL(SetField で tbed を定義)をヘッダーを作る基準にしました。

参考までに、MTCollate を用いる以前の(上のスクリーンショット)タグ

<dl class="utility">
	<dt>Recent Trackbacks</dt>
	<dd>
	<ul class="sidemenu">
<MTPings lastn="5">
	<li><MTPingedEntry><a href="<$MTPingedEntryLink$>" title="TrackBackされた記事"><$MTPingedEntryTitle$></a><br />
	└ <a href="<$MTPingURL$>" title="<$MTPingTitle$>"><$MTPingBlogName$></a> -<$MTPingDate format="%m.%d"$></MTPingedEntry></li>
</MTPings>
</ul>

</dd>
</dl>

追記というか訂正 at 2005-11-30

まどろっこしい記述があったので、訂正。あと、タイトルを少しだけ正確に変更。

Comment [4]

(o) : 2004-11-30 (Tue) 12:35  ▼Reply

ソートしていないからうまく行かないんだと思いますよ。

&lt;MTCollateList sort="ping_entry_link"&gt;
...
&lt;/MTCollateList&gt;

こんな感じにする必要があります。あと、&lt;MTCollateList&gt;〜&lt;/MTCollateList&gt;の中にMTPingedEntryは不必要です。

(o) : 2004-11-30 (Tue) 12:37  ▼Reply

sort="tbed_url"の間違いです。すみません。

涼@管理人 : 2004-11-30 (Tue) 17:04  ▼Reply

ご指摘ありがとうございます。訂正しておきました。

あと、「tbed_url」でソートすると、トラックバックされた記事のみですが投稿されたエントリーの順番で表示されてしまうのです。試行錯誤してみたのですが、もう諦めてます。PHP や Javascript を上手く使うと出来るんでしょうけど、如何せんアタマが無いので(苦笑)

(o) : 2004-11-30 (Tue) 18:11  ▼Reply

確かに。tbed_urlでソートしているのでrecently_commented_onとまったく同じように、というわけにはいきませんね。

Comment form
  • 当エントリーに関連性のないコメントは極力お控え下さい。
Preview Your Comment
ご利用のブラウザ、設定ではご利用になれません

Trackback [6]

Trackback URI
  • 送る前に必ず「トラックバックポリシー」をお読み下さい。
  • 関連性が薄いと判断したトラックバックは削除します。
  • 二重送信した場合など、こちらで適宜対応します。
MTにおけるRecent TrackBackのツリー化 - 自宅サーバであそぼ : 2004-10-28 (Thu) 18:54
徒波 : MT で Recent TrackBack をツリー化する方法 [要Plugin : MTCollate , MTPingedEntry] トラックバックのツリー化。すばらしいです。 でも、何でデフォルトでは出来ないんだろう・・・ 日本に帰ったら早速やってみよう。 http://suzumi.boo.jp/mt_suzumi/mt-t...
TrackBack をツリー化する方法を教えてもらう - r2 : 2004-10-30 (Sat) 02:39
ネコ温度計観測所blogを始めてから、1つの記事に多数のトラックバックをいただく...
最近のトラックバックをエントリごとにまとめて表示 - Ogawa::Memoranda : 2004-12-02 (Thu) 17:51
最近のコメントをエントリごとにまとめて表示するのは、MTEntriesのrecently_commented_onオプションを使うことで簡単に実現できるのですが、トラックバックだとそうはいきません。このエントリでは、最近のトラックバックをエントリごとにまとめて表示する方法を説明しま...
MTのRecent Trackbackで連続したトラックバックをヘッダー化する方法 - Stupid excuse!! : 2004-12-05 (Sun) 20:43
現在Recant Commentsで、同じ記事へのコメントは親記事をヘッダーとし...
トラックバックの表示変えました - Magic White : 2004-12-15 (Wed) 16:08
かなり悩みました。やっと元記事表示する事出来ました。 前壊れた時とは、別のプラグ...
MT/最新トラックバックリストのツリー化 - kankichi@blog:SAKURA edition : 2005-01-25 (Tue) 16:43
以前から気になっていたメニューの最新トラックバックのリスト部分。最新コメントリス...
前後のエントリー
Latest Entries

» 全てのエントリーのタイトル一覧

MovableType [23 items]

» "MovableType"のタイトル一覧

Categories
Recent Comments
大量 Trackback スパムに困り果てて MT-Blacklist を導入
涼@管理人 - 11.22
春団治 - 09.27
パウダーブルー - 04.17
涼@管理人 - 04.18
vappisreryise - 03.14
「タグ」を導入 [plugin : Tagwire Plugin , MTIfEmpty]
yhiroaki - 05.31
涼@管理人 - 06.16
『ER10』 #22 「ドライブ - DRIVE」
通りすがり - 04.14
涼@管理人 - 04.18
Recent Trackbacks
「タグ」を導入 [plugin : Tagwire Plugin , MTIfEmpty]
日刊ジーク - 10.17
Firefox のメインメニューのラベルを変更する 【userChrome.js】
WDF - 11.06
不要なメニューを非表示にする 【userChrome.css】
orioa - 10.29
大量 Trackback スパムに困り果てて MT-Blacklist を導入
KAI_REPORT - 06.21
Firefox で見るソースを見易くする 【userContent.css】
備忘録 - 05.18
読んだり聴いたり

Amazon.co.jp:チェーザレ破壊の創造者 2 (2)

チェーザレ破壊の創造者 2 (2)

惣領冬実

Amazon.co.jp:チェーザレ破壊の創造者 1 (1)

チェーザレ破壊の創造者 1 (1)

惣領冬実

Amazon.co.jp:三四郎はそれから門を出た

三四郎はそれから門を出た

三浦しをん

Syndication
Counter
  • All Pages : T Y