plugins:trackback

NP_TrackBack.php

トラックバック機能を付加するプラグイン。

バージョン2.x系

General Plugin info
作者: rakaz + nakahara21 + hsur
最新のバージョン: 2.0.3 jp13 (2008/12/14)
入手先: http://blog.cles.jp/np_cles/category/31/subcatid/3
ソース: Nucleus Japan SVN
フォーラム参照先: http://japan.nucleuscms.org/bb/viewtopic.php?t=1715

バージョン1.2x系 (非推奨)

General Plugin info
作者: Wouter Demuynck + Taka + nakahara21 + hsur
最新のバージョン: 1.23bj7++++ (R2)
入手先: http://blog.cles.jp/item/984
フォーラム参照先:

バージョン1.5x系 (非推奨)

General Plugin info
作者: Wouter Demuynck + Taka + nakahara21 + suomi + kimitake
最新のバージョン: 1.52j
入手先: http://kimitake.blogdns.net/item/68
フォーラム参照先:

インストール方法

  1. Zipファイルを展開して、中身をサーバーのプラグインディレクトリにアップロードする
  2. 管理画面からプラグインをインストールする

このプラグインの使い方

スキン/テンプレートへの記述

受け取ったトラックバックの一覧表示

  • <%TrackBack(list)%>

    受け取った全てのトラックバックをページ内に表示

  • <%TrackBack(list, limit5)%>

    最新の5件だけを表示して、あとは折りたたむ

  • <%TrackBack(list, limit0)%>

    受け取ったトラックバックをすべて折りたたむ

※ 折りたたまれているトラックバックのリストは、展開リンクをクリック時にバックグラウンドでサーバからデータを取得します(Ajax)。 ですので、多量のトラックバックを受けている記事については、ページ描画時間の節約になるでしょう。

記事にTrackbackURLを自動検知してもらうためのコードを埋め込む

<%TrackBack(code)%>

この埋め込まれたコードは、トラックバックURLの自動検知(Trackback Auto-Discovery)に使用されます。(自分で利用するのではなく、引用記事を書く相手側が利用する物です)
この記述を行っていない場合は、相手側はリンクを張って記事を書いても手動でurlを入力してトラックバックしてもらわなければなりません。
※この記述をしないことでspamが少なくなることがあります。

TrackbackURLを表示

<%TrackBack(url)%>

トラックバック受付入力フォームページへのリンクurlを表示

使用例:

<a href="<%TrackBack(form)%>">トラックバック手動フォームはこちら</a>

また、便利な使い方としては、このプラグインのオプション(編集)画面にてトラックバック表示専用テンプレートの「フッタ」の所に、

この記事への手動トラックバックは
<a href='<%form%>' onclick='window.open(this.href, 
"trackback", "scrollbars=yes,width=600,height=340,left=10,top=10,status=yes,resizable=yes");
 return false;'>こちらのフォーム</a>からどうぞ。

と書き足しておくと、上記<%TrackBack(list)%>を書いた箇所に自動的にこの手動pingフォームへのリンクが表示され、手動pingフォームがポップアップするようにできます。

トラックバック手動送信用URL

該当のエントリから手動でトラックバックを送信するためのリンクを生成します。
通常のトラックバック送信では送信するトラックバックの要約文などは自動生成されたものが使用されますが、このリンクを用いると要約文などを自分でカスタマイズして送信することができるようになります。

<%TrackBack(sendpinglink)%>

受け取ったトラックバックの総数を表示

<%TrackBack(count)%>

トラックバック送信元に要求するリンクurlを表示

<%TrackBack(required)%>

<%if%>の拡張 (Nucleus 3.3以降)

設定に応じて表示内容を変化させることができる<%if%>を使うことができます。

<%if(TrackBack,key,value)%>
hogehoge
<%endif%>

※"TrackBack"の部分は大文字小文字の区別があるので注意!

  • key (判定の種別)
    • accept トラックバックを受け付けているか否か(省略時デフォルト)
    • required 言及リンクチェックを行うか否か
  • value (判定の扱い)
    • yes keyの判定が真の場合に、ifタグで囲まれている内容を表示(省略時デフォルト)
    • no keyの判定が偽の場合に、ifタグで囲まれている内容を表示

例:トラックバックを受け付けている場合のみURLを表示し、受け付けていない場合には「Trackbackは受け付けていません」を表示する場合

<%if(TrackBack)%><%TrackBack(tburl)%><%endif%>
<%if(TrackBack,accept,no)%>Trackbackは受け付けていません<%endif%>

<%if%>の拡張 (Nucleus 3.24以前)

ブログのトラックバックの有効/無効に対応したif拡張が使えます。

※この拡張は歴史的経緯により日本語版のコアにあらかじめ改造が加えられていたため、このような動作が可能でした。3.3よりこの部分が削除されたためこの方法は使えません。

<%if(blogsetting,trackback,1)%>
hogehoge
<%endif%>

ローカルトラックバックの表示

ローカルトラックバックを表示します

<%TrackBack(locallist)%>

バージョン2.0.3 jp3のオプション

プラグインのオプション指定画面

np_trackbak203オプション画面

  1. Accept pings – トラックバックの受付をするかどうか
  2. Allow sending pings – トラックバックの送信を可能にするかどうか
  3. Auto-detect Trackback URLs as you type – autodiscovery機能(記事内のリンク先のTrackbackURLの自動検知)を使うか否か
  4. Only allow valid itemids as trackback-ids – ping受付時に有効なitemidかどうかをチェックするか否か
  5. Header – トラックバックの一覧表示の際の出力テンプレート(リストの先頭に使用)
  6. Empty – トラックバックの一覧表示の際の出力テンプレート(1件も受け取っていない時に使用)
  7. Item – トラックバックの一覧表示の際の出力テンプレート(各リストの表示に使用)
  8. Footer – トラックバックの一覧表示の際の出力テンプレート(リストの末尾に使用)
  9. Header (Local) – ローカルトラックバックの一覧表示の際の出力テンプレート(リストの先頭に使用)
  10. Empty (Local) – ローカルトラックバックの一覧表示の際の出力テンプレート(1件も受け取っていない時に使用)
  11. Item (Local) – ローカルトラックバックの一覧表示の際の出力テンプレート(各リストの表示に使用)
  12. Foote (Local) – ローカルトラックバックの一覧表示の際の出力テンプレート(リストの末尾に使用)
  13. Trackback count (none) – 各記事に埋め込むトラックバック数表示(受取ゼロ時)
  14. Trackback count (one) – 各記事に埋め込むトラックバック数表示(受取1件時)
  15. Trackback count (more) – 各記事に埋め込むトラックバック数表示(受取2件以上時)
  16. Date format – 日時の表示フォーマット
  17. Send e-mail notification on ping receipt – ping受付時にメール送信するかどうか
  18. Which e-mail address to send these notification to? – お知らせメールの送信先
  19. Clear the database when uninstalling – プラグインの削除時にデータを削除するかどうか
  20. Hide external URL – 一覧表示の際にトラックバック送信元URLを隠すか否か(「はい」の場合は送信元urlを埋め込まずに自サイトurlからリダイレクトジャンプ)

ブログごとのオプション指定画面

np_trackback2xのブログオプション画面

  1. Accept pings w/o link ? – トラックバック元にping先記事へのリンクがない場合の受付動作
    • Yes:リンクがなくてもトラックバックを許可する(従来と同じ)
    • No(block):リンクがない場合トラックバックを保留(block)にする(デフォルト)
    • No(ignore):リンクがない場合トラックバックを拒否する
  2. Accept pings to this blog – トラックバックを有効にするか否か
    • はい(Yes):有効にする(デフォルト)
    • いいえ(NO):有効にしない

記事ごとのオプション指定画面

np_trackback2xのアイテムオプション画面

  1. Accept pings – この記事がトラックバックを受付するか拒否するか
  2. Accept pings w/o link ? – この記事がリンクなしトラックバックを受付するか拒否するか
    • default:blogオプションの設定に従います(デフォルト)
    • yes:リンクがなくてもトラックバックを許可する(従来と同じ)
    • no:リンクがない場合トラックバックを拒否する

表示用テンプレート

インストール直後のデフォルト値

  • Header
    <div class='tb'>
    	<div class='head'>Trackback</div>
  • Empty
    	<div class='empty'>
    		There are currently no trackbacks for this item.
    	</div>
  • Item
    	<div class='item'>
    		<div class='name'><%name%></div>
    		<div class='body'>
    			<a href='<%url%>'><%title%>:</a> <%excerpt%>
    		</div>
    		<div class='date'>
    			<%date%>
    		</div>
    	</div>
  • Footer
    	<div class='info'>
    		Use this <a href='<%action%>'>TrackBack url</a> to ping this item (right-click, copy link target).
    		If your blog does not support Trackbacks you can manually add your trackback by using <a href='<%form%>' onclick='window.open(this.href, "trackback", "scrollbars=yes,width=600,height=340,left=10,top=10,status=yes,resizable=yes"); return false;'>this form</a>.
    	</div>
    </div>
  • Header (Local)
    <div class="tblocal">
    	<div class="head">Local Trackback</div>
  • Empty (Local)
    
    
  • Item (Local)
    	<div class="item">
    		<div class="body">
    			<%delete%> <a href="<%url%>"><%title%></a>: <%excerpt%>
    		</div>
    		<div class="date">
    			<%timestamp%>
    		</div>
    	</div>
  • Footer (Local)
    	</div>
  • お知らせメールのタイトル
    New Trackback received for ID <%tb_id%>
  • お知らせメールの本文
    Your weblog received a new trackback from <%blogname%> for ID <%tb_id%>. Below are the full details:
    
    URL:	<%url%>
    Title:	<%title%>
    Excerpt:	<%excerpt%>
    Blogname:	<%blogname%>

この内部テンプレートの中で使用できる変数

  • Header, Empty, Footer
    • <%action%> – TrackBack URL
    • <%form%> – 手動pingフォーム表示ページへのリンクURL
    • <%admin%> – この記事へのTBを編集(削除/ブロック切替等)する管理画面へのリンク
    • <%pingform%> – この記事を他サイトへTBするpingフォームページへのリンク
  • Item
    • <%action%> – TrackBack URL
    • <%form%> – 手動pingフォーム表示ページへのリンクURL
    • <%name%> – ping元のブログ名
    • <%title%> – ping元の記事タイトル
    • <%excerpt%> – ping元の記事の要約文(400字切り詰め)
    • <%url%> – ping元の記事のURL
    • <%date%> – pingを受けた日時
  • お知らせメールのタイトル, 本文
    • <%tb_id%> – 新着pingを受けた記事のid番号
    • <%url%> – ping元の記事のURL
    • <%title%> – ping元の記事タイトル
    • <%excerpt%> – ping元の記事の要約文(切り詰めなし)
    • <%blogname%> – ping元のブログ名

※お知らせメールのタイトル, 本文のテンプレートは、NP_TrackBack.phpにハードコーディングされています。

バージョン1.x系のオプション

アップグレードの手順

バージョン1.x系 → バージョン2.x系へは、データを保持したままアップグレードすることができます。

  1. 旧バージョンのプラグインファイルはリネームなどして保存しておいてください。
  2. 旧バージョンがインストールされている状態でオプションの設定値をメモしておいてください。
  3. サーバファイルを上書きした後にプラグインの管理ページでアンインストール → 再インストールします。
  4. プラグインオプションでテンプレートを指定します。
    旧バージョンではプラグインファイル内にテンプレートを内部保存しています。上記手順で保存しておいた旧バージョンのプラグインファイルの中を参考に、同じように調整してください。(もしくはデフォルトのままから直接リデザインでもOK)
  5. 同様に、オプション値も上記手順でメモしたものを参考に設定します。
  6. 旧データを保持されたい方は、テーブルの再構成が必要です。
    このプラグインの管理ページを開くと、テーブルのupgradeボタンが表示されますのでポチッとしてください。

Tipsと裏技

2.0.3よりトラックバックURLの短縮化が標準機能になっています。

ただしこの機能は受信が可能になっただけで<%TrackBack(url)%>で表示されるURLは自動的に短くなりません。短いURLで実際に運用する際には<%TrackBack(url)%>と記述していた部分を<%sitevar(url)%>item/<%itemid%>.trackbackもしくは<%itemlink%>.trackbackと書きかえる必要があります。

希望事項

既知の問題点

  • バージョン1.x系では記事の編集画面を開くと同時に記事内リンクの自動検知を強制的に行うため、多量のリンクを書いた記事を編集する場合は、時間がかかったり正常にページが開けなくなる。

開発履歴

このNP_TrackBackは、英語版のいくつかのバージョンをベースに、日本語対応を行った上でさらに独自の機能を付加しています。
現在、v1.2系、v1.5系については現在メンテナンスが行われていません。
新規にインストールする際にはv2.0系を使用することを推奨します。

※v1.2系、v1.5系の機能については全て2.0系に実装されています。
※また、オリジナルの英語版2.0.3は他言語対応版ですのでそのまま使用することもできます。(ただし、保存データは実体参照ですので直接DB編集には難があります)

バージョンの系統について

過去、日本のNucleusユーザーの間で比較的認知されているバージョンは大きく分けて4つありました。

  • 英語版v1.2をベースに日本語化したv1.23bj7
  • このv1.23bj7をベースに、いくつかの独自機能を付加したv1.23bj7++++ R.2
  • 同じく、v1.23bj7をベースに、自動検知機能を向上した英語版v1.5の差分をマージして独自機能を付加したv1.53j
  • 英語圏で開発の進んだv2.0.3を実質上ベースに日本語化した上で独自機能を付加したv2.03jp

その関係で、系統ごとにバージョンが分かれています。

バージョン2.x系

  • version2.0.3 jp12 [2008-12-14] by hsur Read here
    • [Fixed] Pingフォームへのリンクを開こうとするとInvalid or expired ticket.になる問題を修正
    • [Fixed] TrackBack送信時のエラーハンドリングを改良した
    • [Fixed] TrackBackの文字コードの検出が正しく行われない場合がある問題を修正
  • version2.0.3 jp12 [2008-01-12] by hsur Read here
    • [Fixed] エラーメッセージの文字コードが適切でなかった問題を修正
    • [Fixed] トラックバックの送信文字コードをUTF-8固定にした
    • [Fixed] トラックバック可/不可の判定がおかしかった問題を修正
  • version2.0.3 jp11 [2007-09-30] by hsur Read here
    • [Added] SuperAdmin以外でもTrackbackが管理できるようにした
  • version2.0.3 jp10 [2007-06-30] by hsur Read here
    • [Fixed] mysql_query()をsql_query()に変更
    • [Changed] 実体参照テーブルについてNucleus標準ものを使うようにした
    • [Changed] インストールできるバージョンを3.3以降した
    • [Changed] Ricoを2.0にアップデートしたのに伴い、管理画面の機能を増強
    • [Added] コメント部分でもテンプレート変数が使えるようにした
    • [Fixed] トラックバック送信部分の不具合を修正(FC2対策)
    • [Changed] UserAgentをオリジナル版にあわせて変更
    • [Changed] TrackBackのレスポンスの解析にXMLパーサーを使うようにした
    • [Fixed] 言及リンクチェックの不具合を修正
    • [Fixed] 言及リンクチェックの用のURL生成ルーチンの不具合を修正
  • version2.0.3 jp9 [2007-05-04] by hsur Read here
    • [Added] doIf()を追加(Nucleus 3.3向け)
    • [Added] URLが無効なトラックバックを無視するようにした
  • version2.0.3 jp8 [2007-03-18] by hsur Read here
    • [Fixed] 管理画面でStoryのリンクの不具合を修正
    • [Changed] URL抽出ルーチンを改良
    • [Changed] 管理画面へのリンクを修正
    • [Changed] 管理画面のページングをAjax対応にした
    • [Changed] トラックバック通知アドレスをブログごとに設定できるようにした
  • version2.0.3 jp7 [2006-11-26] by hsur Read here
    • [Changed] SpamChekについて微調整
    • [Added] Ticket処理を追加(CSRF対策)
    • [Fixed] URLに&が入っているときの動作を変更
    • [Added] 管理画面にアイコンを追加
  • version2.0.3 jp6 [2006-09-30] by hsur Read here
    • セキュリティの向上
  • version2.0.3 jp5 [2006-09-16] by hsur Read here
    • getPermaLinksFromText()内のURL抽出ルーチンの不具合を修正
    • Auto-Discovery時にSQLエラーが出る不具合を修正
    • 管理画面でパースエラーが出る場合がある不具合を修正
    • SQLのクォートを"から'に変更
    • mb_emulator環境にてエラーが出る問題を修正
    • curlが有効な環境でエラーが出る問題を修正
  • version2.0.3 jp4 [2006-07-15] by hsur Read here
    • AutoDiscoveryURL出力時にSpamCheckを行うようにした
    • メッセージ、デフォルト値を日本語化
    • 大手ASPの言及リンクチェックの際にURLのリダイレクトを解除するようにした
  • version2.0.3 jp3 [2006-05-13] by hsur Read here
    • ひとつのエントリに重複してトラックバックが送られてきた場合に無条件でメール通知される問題を修正
    • <%TrackBack(form)%>で表示されるリンクを押して表示されるフォームの日本語化
  • version2.0.3 jp2 [2006-04-15] by hsur Read here
    • ローカルトラックバック対応 (v1.5x相当)
    • 管理画面の細部を改良
  • version2.0.3 jp1 [2006-04-08] by hsur Read here
    • SpamCheck API 2に対応
    • SendTrackbackイベントとRetrieveTrackbackイベントへの対応
    • Trackback URLs生成の見直し
    • リンクなしトラックバックのはじき方が指定可能に
    • <%if%>拡張への対応
  • version2.0.1 jp c3 [2006-02-25] by hsur Read here
    • 管理画面のTB一覧でXMLのパースエラーを排除
    • Trackback一覧の表示件数制限時の動作バグ再修正(「Show left 1 Trackbacks」問題)
  • version2.0.3 jp2 c2 [2006-01-28] by hsur Read here
    • ping時のUserAgent偽装を排除 (対livedoor用)
    • ping送信時のポート番号が80の場合はポート番号をつけない修正 (対Seesaa用)
    • Trackbackの一覧表示時の負荷を大幅軽減
  • version2.0.1 jp c1 [2005-10-09] by hsur
    • 管理ログの吐き出しバグ修正
    • UTF-8用ユーティリティファイル同梱
    • 管理ページ内のデータ一覧のページングのバグ修正
    • Trackback一覧の表示件数制限時の動作バグ修正
    • redirectがOn/Offできるように
    • エントリごとのTB可否が設定可能に
    • リンクなしTBのブロックできるように
  • version2.0.1 jp [2005-08-02] by nakahara21 Read here
    • テーブル内データの保存文字コードを英語版仕様の実体参照→自サイト設定に変更
    • バージョン1.x系からのupgradeスクリプト実装
    • 時差対応
    • 自動検知を英語版仕様の記事編集ページopen時→検知ボタン押下時へ変更
    • Trackback元へのリンクをリダイレクト方式に
    • Trackback一覧の表示件数制限 + ページング
    • 複数同時Ping対応
    • UTF-8エンコードによるpingの選択可能

バージョン1.2x系

  • version1.23bj7++++ R.2 [2005-07-25] by hsur Read here
    • mbstringの有無判別を除去
  • version1.23bj7++++ [2005-07-09] by hsur Read here
    • 設定を超える件数のトラックバックを別ページで表示する機能を付加
    • 複数のトラックバックを同時に送信する機能を付加
    • リンクのないトラックバックを拒否する設定を追加
    • 要求するリンクurlを表示する変数(<%TrackBack(required)%>)を追加
  • version1.23bj7++ [2004-10-23] by hsur Read here
    • トラックバック元へのリンクをリダイレクトに変更
  • version1.23bj7+ [2004-10-20] by hsur Read here
    • v1.23bj7をベースに、記事ごとにトラックバック受付のOn/Offする機能を付加

バージョン1.5x系

  • version1.52j [2005-02-10] by kimitake Read here
    • 送信時文字コードをUTF-8固定へ
  • version1.51j [2004-11-20] by Taka Read here
    • ローカルpingの際の保存データを送信元・送信先のitemidのみへ
    • ブログごとのオプション設定にTrackBack許可設定を追加
    • アイテムごとの許可設定を追加
    • TB許可記事のみに表示するテンプレート変数(<%TrackBack(listlink)%>)追加
  • version1.5j1 [2004-11-09] by suomi
    • v1.23bj7をベースに、英語版v1.23とv1.5の差分を反映

バージョン1.x系

v1.2x系とv1.5x系のベースになっているのが、v1.23bj7です。

  • version1.23bj7 [2004-02-18] by nakahara21 Read here
    • バグフィックス
  • version1.23bj6 [2004-02-17] by nakahara21 Read here
    • TrackbackURLの自動検知(autodiscovery)対応
  • version1.23bj5 [2004-02-17] by nakahara21 Read here
    • エラーメッセージを言語ファイル使用(他サイトからのレスポンスもちゃんとメッセージを抽出して表示)
    • TrackBackURLに__mode=rssを付加するとそのアイテムの要旨とTrackBack一覧をrdf吐き出し
    • アイテムページのスキンに<%TrackBack(tbcode)%>と書くと、ページの中に自動検知(Trackback autodiscovery)用のコードを埋め込む
    • アイテムの編集ページ内のプラグインオプションでTrackBackURL入力に対応(本文訂正時も訂正後の文章をping)
  • version1.2b改 [2003-11-16] by Taka Read here
    • ローカルpingを別扱い
    • mb関数使えない海外サーバでもjcodeで文字コード変換
    • 要約文格納の255バイトカット対応
  • version1.2b [2003-10-23] by nakahara21
 
plugins/trackback.txt · 最終更新: 2011/03/23 21:28 (外部編集)