2005-02-26 アーカイブ

http://hxxk.jp/2005/02/26/

Movable Type 2.x でトラックバックを一括管理するテンプレート

記事データ

投稿者

望月真琴

投稿日時

2005-02-26T22:48+09:00

タグ
概要

Movable Type 2.x は各記事の編集画面からしかコメントやトラックバックを削除できないので、 Recent Reaction template ver.3 を改造して、一括管理するテンプレートを作ってみました。

リプライ

2 件のリプライがあります。

記事本文

Movable Type 2.x はトラックバックを一括管理できない

MTのVersionを3にあげればメニュー画面からでも簡単に削除できるのかなぁ。

そうそう、 Movable Type 2.x は各記事の編集画面からしかコメントやトラックバックを削除できないんですよね。 いやあ不便でした。 ( 昔を懐かしむな )

で、疑問にお答えすると、 Movable Type 3.x だとコメントやトラックバックの一括管理ができます。

  1. 管理画面のメニューから「トラックバック」をクリック。
  2. トラックバックのフィルタリングや一括削除が可能になっています。

Movable Type 2.x でトラックバックを一括管理する

管理画面から管理できないのなら、管理するテンプレートを作ってしまえばいいのです。 Recent Reaction template ver.3 で記事ごとにトラックバックをまとめるテンプレートを作成しましたので、それを元にしたテンプレートを作ることで、管理を効率よく行うことができます。 必要なプラグインやソースコードの解説は Recent Reaction template ver.3 を参照してください。

ただし、次項で提示するテンプレートを利用する場合は、 Movable Type における CSRF の可能性と各種対処法 - weblog 内に mt.cgi へのリンクアンカーを作成しないをよく読んだ上で利用してください。 具体的な対策としては、「テンプレートの出力ファイルを BASIC 認証をかけたディレクトリ内に作るか、出力ファイル自体に BASIC 認証をかけるようにする」、または「自分にしか見えない [編集] リンクを作る | alectrope を参考にして cookie の判別を行うようにする」などの対策が考えられます。 逆に、これらの対策を採らない、もしくは採ることができない場合は次項のテンプレートから Edit 周りの記述を削除してください

トラックバック管理テンプレート

<?xml version="1.0" encoding="<$MTPublishCharset$>"?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">

<head>
  <meta http-equiv="Content-type" content="text/html;charset=<$MTPublishCharset$>" />
  <title><$MTBlogName$> - トラックバック管理</title>
</head>

<body>

<h1><$MTBlogName$> - トラックバック管理</h1>
  
  <dl>
    <MTEntries recently_pinged_on="1000">
      <dt>
        <a href="<$MTEntryLink$>"><$MTEntryTitle$></a>
        <!--[ <a href="<$MTCGIPath$>mt.cgi?__mode=view&#38;_type=entry&#38;id=<$MTEntryID$>&#38;blog_id=<$MTBlogID$>">Edit</a> ]-->
        <!-- http://hxxk.jp/2005/05/13/2105#sub-20050513-15 の対策を採ることができる場合のみこの Edit リンクのコメントを外す -->
      </dt>
      <dd>
        <ol>
          <MTPings lastn="1000">
            <li><a href="<$MTEntryLink$>#p<$MTPingID$>"><$MTPingDate format="%Y/%m/%d %H:%M"$></a> : <a href="<$MTPingURL$>" rel="nofollow"><$MTPingBlogName$> - <$MTPingTitle$></a></li>
          </MTPings>
        </ol>
      </dd>
    </MTEntries>
  </dl>
  
  <p>
  Powered by <a href="http://www.movabletype.org">Movable Type <$MTVersion$></a>
  </p>

</body>

</html>

補足

Movable Type 2.661 でも recently_pinged_on Plugin は動作するようです。 xrea サーバにインストールした Movable Type 2.661 では確認できました。

なお、今回はトラックバックに限定していますが、コメントも同様に管理することができます。 適宜ソースコードは改変してください。

リプライ

2 件のリプライが送られています。 この記事に対するご意見やご質問、ご感想などありましたら個別記事ページの送信フォームからお送り下さい。

2005-05-15T15:06+09:00 - スト印メンテ:TB spam対策 < スト印

  メールをチェックしてると、来ました来ましたスト印へ大量のspam投稿メールがヽ(;´Д`)ノ と、よく見たら今回はコメントspamではなくてトラックバックs...

2006-10-01T15:40+09:00 - トラックバックスパム < riemagu log

最近ひどい…ので、対策を施してみた。うまくいくかな? 参照:BiancaのTrackBackSpam対策【トラックバックスパム対策】 それからこれまでのト...

Recent Reaction template ver.3

記事データ

投稿者

望月真琴

投稿日時

2005-02-26T20:58+09:00

タグ
概要

Recent Reaction template ver.2 とほぼ同じテンプレートですが、使用するプラグインを別の物に変えることでテンプレートの記述を簡潔にしました。

リプライ

リプライはまだありません。

記事本文

Recent Reaction template ver.3 の概要

Recent Reaction template ver.2 とほぼ同じテンプレートですが、使用するプラグインを別の物に変えることでテンプレートの記述を簡潔にしました。

  1. recently_pinged_on Plugin
  2. 必須プラグイン
  3. テンプレートの作成手順
  4. テンプレートの記述例
  5. サンプル
  6. Recent Comments の解説
  7. Recent Trackbacks の解説
  8. 活用例
  9. 関連リソース
  10. トラックバック送信先

recently_pinged_on Plugin

この際なので随分前に作ったMTEntriesコンテナにrecently_pinged_onというオプションを追加するプラグインも公開しておきます。 recently_commented_onと同様に下のような感じで使えます。

recently_commented_on のトラックバックバージョンだと考えて差し支えありません。 トラックバックを受信した順に記事を並べ、記事ごとにトラックバックを羅列します。

必須プラグイン

これ以外のプラグインは特に必要ありません。 解説は前項と同じなので省略します。

テンプレートの作成手順

スクリーンショットは使い回しですので、ファイル名などの細かい部分が違いますが、大した問題じゃないのでそのままにしています。 適宜読み替えてください。

  1. スクリーンショット テンプレートをクリックします。
  2. スクリーンショット 新しいインデックス・テンプレートを作るをクリックします。
  3. スクリーンショット テンプレートの名前を Recent Reaction template ver.3 にし、出力ファイル名を recent_reaction_3.html にしてください。 ( これらは一例です。 お好きな名前にしていただいて構いません。 また、 Movable Type の使用環境に合わせて、拡張子を適宜 .html や .shtml や .php に変更してください。 ) インデックス・テンプレートを再構築するときにこのテンプレートを自動的に再構築するにチェックを入れてください。
  4. スクリーンショット テンプレートの中身テンプレートの記述例を参考にして記述します。
  5. スクリーンショット 保存をクリックします。
  6. スクリーンショット このテンプレートを再構築するをクリックして完成。

テンプレートの記述例

最低限の要素と、該当部分だけを記述しています。 スタイルシートやナビゲーションなどは各自追加してください。

<?xml version="1.0" encoding="<$MTPublishCharset$>"?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">

<head>
  <meta http-equiv="Content-type" content="text/html;charset=<$MTPublishCharset$>" />
  <title><$MTBlogName$> - Recent Reaction ver.3</title>
</head>

<body>

  <h1><$MTBlogName$> - Recent Reaction ver.3</h1>
  
  <h2>Recent Comments</h2>
  
  <dl>
    <MTEntries recently_commented_on="1000">
      <dt><a href="<$MTEntryLink$>"><$MTEntryTitle$></a></dt>
      <dd>
        <ol>
          <MTComments sort_order="descend">
            <li>c<$MTCommentID$> - <a href="<MTCommentEntry><$MTEntryLink$></MTCommentEntry>#c<$MTCommentID$>"><$MTCommentDate format="%Y/%m/%d %H:%M"$></a> : <$MTCommentAuthor$></li>
          </MTComments>
        </ol>
      </dd>
    </MTEntries>
  </dl>
  
  <h2>Recent Trackbacks</h2>
  
  <dl>
    <MTEntries recently_pinged_on="1000">
      <dt><a href="<$MTEntryLink$>"><$MTEntryTitle$></a></dt>
      <dd>
        <ol>
          <MTPings lastn="1000">
            <li>p<$MTPingID$> - <a href="<$MTEntryLink$>#p<$MTPingID$>"><$MTPingDate format="%Y/%m/%d %H:%M"$></a> : <a href="<$MTPingURL encode_xml="1"$>" rel="nofollow"><$MTPingBlogName$> - <$MTPingTitle$></a></li>
          </MTPings>
        </ol>
      </dd>
    </MTEntries>
  </dl>
  
  <p>
  Powered by <a href="http://www.movabletype.org">Movable Type <$MTVersion$></a>
  </p>

</body>

</html>

サンプル

これはサンプルなので、 2005-02-26T20:30:48+09:00 時点のコメントやトラックバックで作成しており、自動での再構築はしないようにしています。 必ずしも最新のコメントが反映されているとは限りません。

Recent Comments の解説

hxxk.jp - Recent Reaction ver.3 の Recent Commnets の欄を見ればお分かりになると思いますが、記事ごとに投稿されたコメントをまとめて、かつコメント投稿日時が最も新しいものを子に持つ記事が一番上に来るようになっています。 これは <MTEntries> タグの属性として recently_commented_on を指定することで実現しています。

サンプルではこの値に 1000 を指定していますが、これはコメントが投稿された記事を最大 1000 件表示し、コメントの投稿日時がより新しいものを子に持つものを順に並べるという結果を得ることができます。 サイドバーなどに用いる場合は適宜この値を減らしてください。

Recent Trackbacks の解説

基本的には Ogawa::Memoranda: recently_pinged_on Plugin の記述を参考にしています。 ただ、あちらの記述では dt 要素に対して dd 要素を複数並べているのに対し、一つの記事に対するトラックバックは一つの dd 要素にまとめ、その中で ol 要素を使って羅列しています。

サンプルでは <MTEntries recently_pinged_on="1000"> および <MTPings lastn="1000"> のように指定していますが、これはトラックバックが送信された記事を最大 1000 件表示し、さらに記事ごとに最大 1000 件のトラックバックを表示するという結果を得ることができます。 サイドバーなどに用いる場合は適宜この値を減らしてください。 ちなみに、 <MTPings lastn="n"> の値をあまり小さくすると、多くのトラックバックが寄せられる記事の場合は古いトラックバックは表示されなくなることがあります。

活用例

  • 独立したテンプレートとして使用するのでなく、ソースの一部分を各種テンプレートに組み込み
  • コメントやトラックバックの管理に

リプライ

リプライはまだ送られていないか、管理者の承認待ち状態です。 この記事に対するご意見やご質問、ご感想などありましたら個別記事ページの送信フォームからお送り下さい。

補足情報

著作、講演、制作実績など