トップ 差分 一覧 Farm ソース 検索 ヘルプ RSS ログイン

BugTrack-plugin/108

ページの作成や編集にはユーザ登録が必要です。

TrackBackPingプラグイン v0.4

  • 投稿者: zedosho
  • カテゴリ: 新規
  • 優先度: 低
  • 状態: 着手
  • 日時: 2004年04月16日 14時58分44秒

 内容

最新バージョンはv0.4です。trackback_for_3_5_x_v0_40.lzh(440)。v0.3では、Ping送信時にexcerpt(要約)が空のまま送信されるバグがありますので、是非入れ替えをお願いいたします。

FreeStyleWikiにTrackBack機能を付け加えるプラグインです。mttrackback1x互換pingの送信、受信が可能です。

インストール

  • ファイルをダウンロードし、解凍します。
  • 解凍されたファイルを、それぞれ、pluginディレクトリ、tmplディレクトリ、configディレクトリにインストールします。(v0.2よりNet::Trackbackモジュールは使用しなくなりました。)
  • さらにtb.cgiをwiki.cgiと同じディレクトリに設置し、パーミッションを755に設定します。
  • v0.3系よりv0.4へアップデートする場合には、configディレクトリ以外の全てのファイルを入れ替えてください。
  • v0.3よりv0.31へアップデートする場合には、pluginディレクトリの入れ替えとtb.cgiの設置だけで最新になります。
  • v0.32,v0.31,v0.3よりv0.33にアップデートする場合には、trackback.dat以外の全てのファイルを入れ替えてください。

動作環境

当方はバージョン3.5.5にて動作確認しておりますが、3.5系であればいずれのバージョンでも動作すると思われます。

Ping動作確認

以下の表の通り動作します。

◎ 正常に動作する。○ 動作するが難あり。△ 動作するが深刻な問題あり。× 全く動作しない。

v0.31(04.05.08現在)(v0.4,v0.32,v0.33についても同様です)

実装名 TBP→各実装 各実装→TBP 備考
Movable Type v2.64
JUGEM TBP→JUGEMの場合、TBP側のURLが100文字で切り落とされてしまうので、長いURLを送信した場合にJUGEM側から正常にジャンプできない
MyProfile × MyProfileの送信するPingはXML-RPC形式のため、TBPでは受付不可。正常に動作します(コメント欄参照)。
MEMORIZE
livedoor Blog 送信のみ04.06.27確認。受信確認06.03.08
はてなダイアリー 受信のみ06.03.08確認
fc2 blog 受信のみ06.03.08確認

各実装の挙動については、トラックバック - .oO .oO ズレにも多少まとめてあります。

使用方法

TrackBackPing送信

  1. 管理者としてログインする
  2. pingを送信したいページを表示した後、ページ右上のメニューの「ping」をクリック
  3. ping送信先のURLを入力し、送信ボタンをクリック
    1. (v0.4以降)送信先のTrackback受付文字コードを指定します。
    2. この時、ページの要約を入力すると、ページ文章からの抽出を行わずに、入力された要約をPingに使用します。要約が入力されていなければ、ページ文章の先頭より自動的に要約を抽出します。
    3. ping送信先のURLとしてトラックバック用のURL以外のページが指定された場合、指定ページ内のRDFを探知して、トラックバック用URLの抽出を行います(TrackBack Auto Discovery)。トラックバック用URLが抽出された場合には、一覧が表示されますので、トラックバックしたい記事のラジオボタンを選択し、送信ボタンをクリックします。

TrackBackPing受信

  1. 明示的に受け付けページを指定したい場合には、TrackBackPingを受け付けるページに、以下を記入する。(v0.4以降)全てのページに対して受付をしたい場合には、Footerにプラグインの指定をした後、設定画面で「TB/以外のすべてのページ」を選択します。
{{trackback}}
  1. すると、TrackBack受付用URLが表示されるので、TrackBackを送りたい人はMovableType、及び、互換TrackBackツールを使用して、そのURL宛にpingを送信する
  2. TrackBackPing対象ページに受信したTrackBackの情報が表示される

(v0.32以降)

オプション未指定時には、TrackBack設定画面で適用した表示方法でトラックバックの一覧が表示されます。明示的に表示方法を指定したい場合には、以下のオプションを付加します。

{{trackback link|include}}

"link"が指定されている場合には設定画面の適用に関わらず、トラックバック一覧画面へのリンクを表示します。"include"が指定されている場合には設定画面の適用に関わらず、トラックバックURLと過去のトラックバック一覧を表示します。

また、TrackBack一覧画面へのリンクを文中に入れたい場合には、インラインプラグイン"itrackback"を使用します。

この文章へのトラックバックは{{itrackback}}です。

TrackBack設定

  1. 管理者としてログインする
  2. pingを送信したいページを表示した後、ページ右上のメニューの「ログイン」をクリック
  3. 管理用メニューより「トラックバック設定」をクリック
  4. 要約バイト数、Auto-Discovery用RDFの出力有無を設定し、「設定を保存」をクリック

(v0.4以降)

トラックバックプラグインを埋め込んだページ以外でもトラックバックの受付が可能になりました。ただし、トラックバック用のページである「TB/〜」は受付が出来ません。設定画面より「受付可能ページ」の「TB/以外のすべてのページ」を選択してください。

また、一般ユーザでも送信が可能になりました。設定画面より「一般ユーザーのトラックバック送信可否」の「一般ユーザーも可能」を選択してください。

(v0.32以降)

パラグラフプラグイン"trackback"のデフォルトの表示形式を設定できるようになりました。

仕様一問一答

  • pingできるのが管理者だけなのはなぜ?
    • wikiは誰もが編集できるので、適当なことを書かれて勝手にpingを送られてしまうとトラブルが起きることは容易に想像ができます。TrackBack機能を必要とする人は、主にサイト管理者でwiki内の記事についてそれなりの制御ができる人だと思われますので、特に問題ないと思います。
  • ページ作成後、自動pingはしないのか?
    • 本家のMovableTypeのように「下書き」「公開」のような明確な区分がないので、どの時点でページを完成とみれば良いのかは、システム上から判断がつきません。記事が日々追加、更新されるのがwikiの醍醐味ですから、その度にpingを送信するのは相手先に対していささか迷惑であると思います。
  • excerpt(要約)は何が使用されるの?
    • v0.3より、ページの要約を別途指定することができるようになりました。また、要約を指定しない場合には、これまで通り、要約としてページ先頭の内容を自動抽出します。抽出する要約の文字数については、右上メニューの「ログイン」→「トラックバック設定」で設定出来ますが、Movable Typeではデフォルト255文字らしいので、そのままでも良いでしょう。
  • TrackBackの一覧を編集したいのだけれど。
    • リンク切れ、送信側のミスなどの理由で編集を行いたい場合には、TrackBackの一覧が「TB/(TrackBack受信ページ)」というページ名で保存されていますので、このページを編集してください。
  • TrackBackプラグインの表示箇所にスタイルを適用したい。
    • v0.3より、このプラグインによる表示箇所は<div class="trackback"></div>が指定されており、CSSによるスタイルの変更が可能になりました。以下は、設定例です。
/* トラックバック */

div.trackback {
  font-size        : 80%;
  margin-top       : 4px;
  margin-bottom    : 4px;
  word-break       : break-all; /* IEのみ */
  overflow         : auto;      /* FirefoxでURLが長くなっても良いように */
}

div.trackback h3 {
  font-size        : 80%;
  border-left   : #5A8FC6 0px solid;
  border-top    : #5A8FC6 1px dotted;
  border-right  : #5A8FC6 0px solid;
  border-bottom : #5A8FC6 0px solid;
  font-family   : Verdana,Arial,Helvetica,sans-serif;
  padding-top   : 2pt;
  padding-left  : 0pt;
  margin-top       : 4px;
  margin-bottom    : 4px;
}
    • v0.32よりインラインプラグイン"itrackback"が追加されています。このプラグインによる表示箇所は<span class="itrackback"></span>が指定されていますので、個別に表示スタイルを変更できます。
    • また、v0.32以降ではトラックバック一覧表示画面が追加されましたが、この表示箇所は<div class="trackback trackbacklist"></div>が指定されています。上記のCSSと組み合わせて以下のような記述を追加すれば、基本的な表示ルールはCSSのクラスtrackbackに準じたまま、見出しの表示方法を変えることが出来ます。
div.trackback.trackbacklist h3 {
  border-top     : #9DB2BE 0px dotted;
  border-left    : #5A8FC6 0px solid;
  border-right	: #5A8FC6 0px solid;
  border-bottom	: #5A8FC6 2px solid;
  font-size      : large;
}
  • TrackBackPingの文字コードはどのように判定しているの?
    • 文字コードの判別については、本家の仕様の中には含まれておらず、日本国内でローカルな仕様が乱立している状態ですので、暫定的に下記のように実装しています。
      • パラメータ「charset」に文字コードの指定があれば、それを使用
      • パラメータ「charset」が指定されていない場合、パラメータ「ie」に文字コードの指定があれば、それを使用
      • 上記のパラメータが指定されていなかった場合、Jcode.pmの自動判定に掛けて、文字コードを判別
    • charset,ieに指定できる文字コードは、euc-jp,shift_jis,utf-8,iso-2022-jpです。
  • TrackBack先のURLが通常のURLと異なるのはなぜ?
    • MovableTypeのTrackBackの実装では、URL中に日本語が使用されることが考慮されていないため、使用することが出来ません。そのため、TrackBack元のページ名から割り出した英数字のみで構成されるIDを使用して、ページを表示するようにしています。
  • TrackBack先の一覧を別ページに表示したいのだけれど。
    • デフォルトでは、TrackBack一覧をTrackBack対象ページにincludeして表示します。別ページに表示する場合には、以下のようにオプションをつけることによって、TrackBack一覧ページへのリンクを貼ることができます。
{{trackback link}}

(04.05.08追加)

  • なぜ、tb.cgiを追加したの?(v0.31のみ)
    • Trackbackの実装の中にはPing送信先のURLにパラメータ付きのURLを使用していると、パラメータを無視してPingを発信するものがあり、このプラグインで正常にPingを受け付けることができませんでした。
    • そのため、更に厳密にMovable Typeの実装に合わせ、追加パス情報(環境変数PATH_INFO)を使用してページを特定しています。
    • tb.cgiの挙動は、追加パス情報よりページ名を取り出した後、Trackbackに必要なパラメータをURLにセットした後、wiki.cgiにリダイレクトしているだけです。つまり、Ping受付処理自体は今までどおり、wiki側で行っています。

対応表

受信したTrackBackを別ページに記録する仕様の利点と欠点を理解する目的でこの項目を作りました。実際には、以下でいうA案が採用されています。

  • A案⇒受信したTrackBackは、「TB/」を頭につけた別のページに記録する
  • B案⇒受信したTrackBackは、目的のページの所定の位置に直接追記する
  A案 B案
ページ数が 増える 増えない
本文とTBを別々に凍結を管理 できる できない
1ページが長くなりがち 関連はない なるかもしれない
別ページに表示する形式にできる できる 苦しい(JavaScriptを併用するなど、変則的方法はありえる)
内容を解析しやすい。表示をフィルタしたりとかデータ解析をする やりやすい 実装次第だができる
一覧表示のバリエーション リスト形式で一覧、リンクして別ページで表示、短い形式・・・など テンプレートの仕組みを導入すれば変更可能と思われる

お名前: コメント:

ファイル構成

  • /
    • tb.cgi - Ping受信用CGI(v0.31以降、これだけパーミッションは755)
  • /plugin/trackback
    • Install.pm
    • PingFormHandler.pm - ping先指定
    • SendPingHandler.pm - ping実行
    • ReceivePingHandler.pm - ping受信時処理
    • TrackBack.pm - パラグラフ、インライン処理(インライン処理はv0.32以降)
    • TrackBackUtil.pm - 共通処理
    • TrackBackGateHandler.pm - トラックバック用リダイレクト処理
    • TrackBackList.pm - トラックバック一覧表示用基底クラス(v0.32以降)
    • TrackBackListHandler.pm - トラックバック一覧画面表示処理(v0.32以降)
    • AdminTrackbackHandler.pm - ping設定画面
  • /tmpl/
    • admin_trackback.tmpl - ping設定画面用テンプレート
  • /config/
    • trackback.dat - トラックバック用設定ファイル

(04.05.02追記)パーミッションは当方全て644で動かしていますが、サーバによって違いがあるので、全ファイルを読み書きできるようにすれば、とりあえずOKだと思います(ちなみに、書きこみをするのはtrackback.datのみ)。(04.05.08追記)パーミッションは当方、tb.cgiのみ755、その他のファイルについては全て644で動かしていますが、サーバによって違いがあるので、tb.cgiは実行可に、その他ファイルを読み書きできるようにすれば、とりあえずOKだと思います(ちなみに、書きこみをするのはtrackback.datのみ)。

既知の問題・要望・TODO

解決済みの問題・要望・TODO

v0.4で実装済み。

  • 管理者だけでなくログオンユーザーでもpingが使える設定があるとうれしいです。
  • cocolog宛の送信に失敗する(「指定のページにはトラックバックできる記事がありません」)。
    • 「送信元URL が必要です」というエラーが返却されているよう。 ←間違い。
    • 「DBD::Pg::st execute failed: ERROR: Invalid UNICODE character sequence found (0xec0004) at xxx」というエラーが発生している模様。現状EUC固定で送信しているため、utf-8に変換して送らないとダメかもしれない。
    • →utf-8の送信で正常に受付されることを確認。
  • pingが使用できないユーザの場合はメニュー自体表示されないようにする。
    • 要パッチ取り込み。
  • HeaderやFooter等でtrackbackを呼び出して、全てのページでpingを受けれると便利。

更新履歴

v0.33→v0.4(2005.5.14)

  • トラックバック送信先の文字コードを指定可能(UTF-8,EUC-JP,SJIS)。
  • 送信権限がない場合には、adminmenuにpingのメニューを表示しないように変更。
  • 一般ユーザでのトラックバック送信を可能にするモードを追加。
  • トラックバックプラグインを埋め込んでいないページに対するping受信を可能にするモードを追加。
  • RDF探知画面でのFormのダブルクォーテーションの開始忘れを修正。

v0.32→v0.33(2004.08.14)

  • ページ名にスラッシュを含むページに対してトラックバックが出来なかったバグを修正
  • RDFのURLがおかしかったため、正常に動作しなかったバグを修正
  • itrackbackに対してトラックバックが出来なかったバグを修正
  • トラックバックを受け付けた直後より次にどこかのページが更新されるまで、RSSのURLがtb.cgiになっていたバグを修正
  • 要約の自動抽出の際に、除去できない見出しの記号があったので、正しく抽出できるように修正

v0.31→v0.32(2004.06.30)

  • Farmに対応
  • wikiのCGI名称が"wiki.cgi"以外に変えられている場合に正常に動作しないバグを修正
  • linkオプション指定時、トラックバック用のリンクも別ページに表示するよう仕様を変更
  • linkオプション指定時、リンクの表示を変更し、"Trackback(3)"の要領で件数を表示する
  • インラインプラグインitrackbackでパラグラフプラグインlinkオプション指定時と同様のトラックバック用のリンクを表示
  • 管理画面より、パラグラフプラグインのデフォルトのトラックバック表示スタイルを設定可能(link/include)
  • itrackbackとトラックバック表示画面用にCSSのclass属性を追加。

v0.3→v0.31(2004.05.08)

  • Trackback受付用のCGIを新規作成
  • 上記に伴うTrackback用URLの修正
  • 要約の文章が送信されないバグを修正
  • debug.logというファイルが出力されてしまうバグを修正
  • 送られてきたTrackbackのexcerpt(要約)に改行が複数含まれていると除去されないバグを修正

v0.2→v0.3(2004.03.29)

  • Trackbackに際して、要約を自分で入力できるようにした
  • Trackback Auto Discorveryに対応
    • Trackback Auto Discorvery用のRDFを元記事に埋め込み
    • Ping送信時にトラックバック用のURLが入力されていない場合には、自動的に指定ページのRDFを探査し、トラックバックを送る記事を選択可能
  • Trackback部分に対するCSSの適用が可能(単にDIVにclass指定してるだけだが)
  • 設定画面による要約バイト数、RDF出力の有無の設定
  • その他、細かいバグ修正

v0.1→v0.2(2003.09.04)

  • TrackBackPing受信機能を追加。
  • TrackBackPing送信時に文字コード指定を追加。
  • TrackBackPing送信時のexcerpt(要約)を最初に出現する見出しの内容から、先頭より255文字に変更。
  • Net::Trackback.pmの使用を廃止し、独自実装。
  • 日本を含むURLが通らないケースがあるため、TrackBack先に残すURLに独自のIDを使用するよう変更。

v0.1

  • TrackBackPing送信機能を実装。

関連サイト

作者ページ

TrackBack一般

文字コード

Trackback Auto Discovery

 コメント

  • 3.5.3で使ってみようと思ったのですが、発信は出来ても受信が出来ません。パーミッションの指定が問題なのかなと考えているのですが、「ファイル構成」の段落にでもフォローして頂けると助かります。 - む。 (2004年05月01日 11時54分08秒)
  • パーミッションの設定を追加しました。ただ、他のプラグイン等と同様に設置すればいいだけなので、パーミッションの指定が問題になる可能性は少ないかもしれません。Pingの状況を詳しく教えていただけると、フォローできるかもしれません。 - zedosho (2004年05月02日 09時59分06秒)
  • FSWiki ←→ FSWikiのpingは発信・受信とも想像通り動作するのですが、レンタルblog(MyProfile、JUGEM、あとどっかのTypePad系) → FSWiki のpingが反映されませんでした。FSwiki → blog は問題ありませんでした - む。 (2004年05月02日 18時23分44秒)
  • MyProfileはなんのメッセージもでませんでしたが、JUGEMで打ったときは送れなかった旨のエラーメッセージがでました。 - む。 (2004年05月02日 18時25分11秒)
  • AnHttpd(+ActivePerl+w2k)で動作確認してみた限りでは、FSWikiでやりとりしたときはリクエストが動作しているようですが、blogからのpingに対しては無反応でした。 - む。 (2004年05月02日 18時27分17秒)
  • MyProfile→FSWikiだと、確かに受信されませんね。確認しました。 - zedosho (2004年05月04日 15時41分41秒)
  • こっちで試してみたんですけど、MyProfileはTrackbackといいつつも、XML-RPCベースの通知を行っているようですね。現状、こちらには対応していませんので、MyProfileからのPingは受けられません。 - zedosho (2004年05月04日 17時31分35秒)
  • JUGEMから送信されたパラメータには、action等の必要な情報が欠落してしまっているので、正常に受けられない様子です。TrackbackURLが?を含んだパラメータ付きのURLになっていることが原因のようです。パラメータを使わないURLでTrackbackURLを表現できれば良いんですけど、現状不可能なようです。どうしようか…。 - zedosho (2004年05月04日 17時49分42秒)
  • TrackBack PING URLには、PATH_INFOを利用してtb_idをあらわすのがよくある方法だとおもいます。 - いしだなおと (2004年05月05日 23時14分48秒)
  • そうなんですよね。FreeStyleWikiだとPATH_INFOはFarmの子Wikiを特定するときに用いられちゃうので、使えないんですよ。今、別CGIでwiki.cgiをラップして無理矢理動作させるようかと思って試行錯誤しているのです。ttp://xxx/wiki/tbproxy.cgi/FugaFugaみたいにすると、トラックバックを受け付けてくれるようにしようかなと。 - zedosho (2004年05月06日 07時58分54秒)
  • 環境変数いじりまくっていろいろ試してますが、今のところうまくいってませんね。それでもダメならプロキシのCGIにするのもいいかと思ってるんですが、プロセスが2重に立ち上がっちゃうのが気持ち悪いので、とりあえず次善策として考えています - zedosho (2004年05月06日 08時03分47秒)
  • なるほどFarmとかち合うわけですね。するとやはりwiki.cgiで受けるのを止めるほうがうまくいきそうな感じはします。データファイルに追記するだけなら、専用のCGI単独で処理は完結しませんか。処理が終わったらリダイレクトすればいいのかなと思ったのですが。 - いしだなおと (2004年05月06日 11時35分54秒)
  • どうも、ありがとうございます。結局、PATH_INFOからパラメータを抜き出した後、リダイレクトさせてwiki.cgiで受けるようにしてしまいました。JUGEMからうまくトラックバックを受けることができたので、他の環境でも試してみようかと思っています。リダイレクトでPing元の挙動がおかしくならなければ、この方法でいきたいと思っています。 - zedosho (2004年05月06日 13時35分38秒)
  • じつは仕様一問一答で2点ほど、よくわからなかった箇所があるのですが、質問してもよろしいでしょうか? - いしだなおと (2004年05月06日 22時12分55秒)
    • 「TrackBack先のURLが通常のURLと異なるのはなぜ?」であるように、URLには日本語が使えないのは解るのですが、どうして、単純にurlencodeするだけでなく、特別な変換を行っているのでしょうか。
    • 「TrackBackの一覧を編集したいのだけれど。」でも触れられているように、あるページ名に対して、頭にTB/を付けた別の名前でTrackBackを保存する仕様になっています。利便性などいくつかの理由でそうなったとは思うのですが、直接、当該ページに追記する実装も選択肢としてはありえるわけで、(bbsとbbs2の関係に似ている)それぞれの長所短所をどのように見積もったのか、経緯などあれば参考にお聞きしたいです。ちなみに、青島さんによるYukiWiki用のTrackBackの実装では、当該ページに直接追記するようになっています。(関係ないといえば関係ないですが・・・。)
  • なぜこんな話を持ち出すのかというと、私はFSWikiLite用にTrackBack受信機能を作ろうとしていて、できれば互換性を確保したいのです。しかし仕様の背景を知っておきたいということがあります。 - いしだなおと (2004年05月06日 22時37分49秒)
  • まず、一番目ですが、MovableTypeの実装に関連します。urlencodeされたURLをMTが受け取った後、このURLをデコードした状態で貼り付けてしまうので、ブラウザ上のトラックバック送信元のURLをクリックしても正常に動作しないのです。CGI.pmが自動的にデコードした結果をそのまま使用しているためでしょう。 - zedosho (2004年05月07日 08時19分05秒)
  • 二番目の質問ですが、受け付けたトラックバックの一覧をページ中に表示するか、別ページに表示するか切り替えられるようにしたかったからです。 - zedosho (2004年05月07日 08時29分19秒)
  • 付け加えると、同一ページに保存するよりも別ページの方がページ内容を解析しやすいので、表示をフィルタしたりとかデータ解析がやりやすい、と思ったからです。 - zedosho (2004年05月07日 08時32分56秒)
  • >むさん。新バージョンをリリースしましたので、難はありますが、JUGEMでも動作すると思います。Typepadでの動作確認がとれないので、もし出来れば動作確認とっていただけるとありがたいのですが。お願いできますか。 - zedosho (2004年05月08日 15時01分38秒)
  • 素早い対応ありがとうございます。今忙しい状況なので後回しになりますが確認次第レポートさせて頂きます。 - む。 (2004年05月09日 08時56分53秒)
  • 確認取りました。以前、受信できなかったMEMORIZE?とJUGEMで動作確認できました。さっそく使わせて頂きます。ありがとうございました。 - む。 (2004年05月09日 19時32分34秒)
  • MT用にTB URLを変換する件です。なるほどわかりました。これはMTに限らず、TB URLをクエリパラメータでやり取りする限り起こりえますね。今回、tb.cgiにPATH_INFOで渡す仕様にした結果、この問題は(特別な変換をしなくても)起こらなくなるのではないかと思うのですが、どうでしょう。(自信なしです。私がしらべれば済む話ですけど、できていません・・・) - いしだなおと (2004年05月09日 22時03分53秒)
  • Myprofileの、XML-RPCで送られるPingというのは、TrackBackとはいえないですね。更新Ping(weblogUpdates.ping)と混同されていませんでしょうか? - いしだなおと (2004年05月09日 22時10分43秒)
  • >むさん。ありがとうございます。動作確認表に追加していただけるとありがたいです。 - zedosho (2004年05月10日 07時55分16秒)
  • >いしださん。まず、MyProfileのトラックバックですが、仰せの通りです。更新Pingと勘違いしていました。参考URLの通りにやったらうまくいきました。あー、これはかなり致命的な間違いです。 - zedosho (2004年05月10日 08時02分29秒)
  • TB URLの件ですが、これはTBP→MTで更新した場合に、MT上の通知元の記事(FreeStyleWikiで書かれた教えたい記事)のURLがMT上で化けてしまうのわけですので、今回の修正では、通常のエンコードに変更できないと思います。 - zedosho (2004年05月10日 08時47分01秒)
  • Farmをつかっているとうまく機能しなかったのでhackしました。ご確認ください。 - matto (2004年05月27日 11時09分17秒)
  • wiki.cgi を埋め込まず、 $wiki->config("script_name") を使うようにしていただけると嬉しいです。 - Kuboon (2004年06月23日 21時18分48秒)
  • Wiki トップの名前を変えていると tb.cgi に書き代わらないのを直すパッチです。 - gyo (2004年06月24日 15時31分41秒)
--- TrackBack.pm.dist   2004-05-08 12:35:04.000000000 +0900
+++ TrackBack.pm    2004-06-24 14:55:10.000000000 +0900
@@ -28,6 +28,7 @@
 sub new {
    my $class = shift;
    my $self = {};
+   $self->{tb_cgi} = "tb.cgi";
    return bless $self,$class;
 }
 
@@ -55,11 +56,11 @@
    # 追加パス情報(PATH_INFO)を使用するため、ちゃんとcgiのURLがついていないと、
    # 使い物にならないのであった。
    if($scripturl =~ m|/$|) {
-       $scripturl .= 'wiki.cgi';
+       $scripturl .= $wiki->config("script_name") ;
    }
    my $pagename = $wiki->get_CGI()->param('page');
    my $pageurl = $self->_get_pageurl($scripturl, $pagename);
-   my $trackbackurl = $self->_get_trackbackurl($scripturl, $pagename);
+   my $trackbackurl = $self->_get_trackbackurl($wiki, $scripturl, $pagename);
 
    #トラックバック検知用のRDFの表示
    my $rdf = $self->_get_trackbackrdf($pagename, $pageurl, $trackbackurl);
@@ -100,13 +101,15 @@
 sub _get_trackbackurl{
 
    my $self = shift;
+   my $wiki = shift;
    my $scripturl = shift;
    my $pagename = shift;
 
    #Trackback受付用のURLを変更
 #  return &Util::escapeHTML($scripturl ."?action=RECEIVEPING&page=" 
 #              . &Util::url_encode($pagename));
-   $scripturl =~ s/wiki\.cgi/tb\.cgi/;
+   my $script_name = $wiki->config('script_name');
+   $scripturl =~ s/$script_name/$self->{tb_cgi}/;
    if($scripturl =~ m|/$|) {
        return &Util::escapeHTML($scripturl . &Util::url_encode($pagename));
    }else{
  • 対応表とスタイル設定のドキュメントに一部追加しました。Farmとスクリプト名変更時の対応については、もうしばらくお待ちください。 - zedosho (2004年06月27日 18時43分36秒)
  • v0.32をリリースしました。それに伴い、上記のドキュメントに対して大幅な加筆を加えました。 - zedosho (2004年06月30日 15時16分36秒)
  • ドキュメントのバージョン表記がところどころ3.02などとなっているのはドキュメントエラー? - Kuboon (2004年07月04日 19時32分59秒)
  • すみません。その通りです。修正いたしました。 - zedosho (2004年07月05日 07時50分28秒)
  • calendarプラグインで出力されるページには外部からトラックバックを送る事が出来ない様です。日記で使っているので出来れば使えると嬉しいのですが。 - R (2004年08月11日 23時18分26秒)
  • 調査したところ、ページ名にスラッシュを含んでいるページに対してトラックバックができないようです。対策いたします。 - zedosho (2004年08月12日 19時36分07秒)
  • 直感ですが、いわゆる「%2F問題」の可能性もありそうに思いました。羊堂本舗 ちょきRewrite Ruleの、「というか、Apache 一般の動作として」のくだりを参照してみはいかがでしょうか。 - いしだなおと (2004年08月12日 21時43分51秒)
  • v0.33をリリースしました。calenderプラグインによって生成されたページに対してもトラックバックできるようになりました。その他にも重症なバグを修正したので、更新履歴をご確認ください。 - zedosho (2004年08月14日 17時13分39秒)
  • おかげさまできちんと送信出来ております。素早い対応有り難う御座いました。 - R (2004年08月17日 13時42分20秒)
  • v0.33を入れたのですが、送信はできたものの受信が出来ませんでした。環境は、Windows2000サーバ、IIS5.0です。JUGEMからの送信では、失敗した旨のエラーメッセージが表示されていました。FSWiki→FSWikiの場合は、「指定のページにはトラックバックできる記事がありません」とのエラーになります。 - kuwa (2004年08月19日 19時36分52秒)
  • pingは、管理者ログインしないと出来ない仕様になっていますが、メニュー自体表示されないようにしてはいかがでしょうか? - Kuboon (2004年10月19日 10時28分12秒)
  • パッチも作ってみました。 http://wiki.trick-with.net/TrackbackPingPatch.html - Kuboon (2004年10月19日 10時34分37秒)
  • しばらく使ってみたところ、cocolog 宛だと必ず送信失敗してるようです。[ - 名無しさん (2005年02月09日 00時24分02秒)
  • 続き。「指定のページにはトラックバックできる記事がありません」が出ます。ひとまずご報告。 - 名無しさん (2005年02月09日 00時24分32秒)
  • HeaderやFooter等でtrackbackを呼び出して、全てのページでpingを受けれると便利だと思うんですがいかがでしょう。(Footerにtrackbackを入れるとpingが受け取れないことに気づくまでしばらくはまりました。) - DOR (2005年02月17日 17時42分44秒)
  • あと、管理者だけでなくログオンユーザーでもpingが使える設定があるとうれしいです。 - DOR (2005年02月17日 17時43分59秒)
  • ページ中ほどに「既知の問題・要望・TODO」を追加し、v0.33以降の要望をまとめました。まだ、問題の切り分けすら出来ていないので、検討事項ということにしておいてください。 - zedosho (2005年03月25日 01時49分05秒)
  • どなたか、IISでの動作実績のある方いませんか?その際の設定内容を知りたいのです。 - zedosho (2005年03月25日 02時00分41秒)
  • cocologについては、トラックバックの文字コードの問題のようです(断定は出来ないが)。かなり昔からトラックバックはUTF-8が標準になっているようで、その点まったく気が付かなかったのは、かなり致命的でした。というわけで、次バージョンはUTF-8対応する予定です。 - zedosho (2005年03月29日 01時10分54秒)
  • ご検討ありがとうございます、せっかくなのでもう1点アイデアを。権限がない場合、右上のメニューにpingが表示されないと便利かと思います。 - DOR (2005年04月09日 15時40分22秒)
  • 自分の意見、全部ご対応いただけたんですね、ありがとうございます!早速活用させていただきますね。何か気づいた点があればまた報告させていただきます。 - DOR (2005年05月17日 08時24分47秒)
  • 今更気づいたのですが、なんでステータスが「保留」になっているんでしょう?意図があって変えられたんでしょうか? - zedosho (2005年07月12日 22時35分36秒)
  • 誰かが変えたんだと思います。ディストリビューション取り込みのためにステータスを変える場合は必ずコメントを入れますので、それ以外でステータスが変わっていたら元に戻していただいて構いません。 - たけぞう (2005年07月13日 11時30分19秒)
  • 3.5.11で取り込む予定です。 - たけぞう (2005年12月13日 23時53分01秒)
  • はてなからの移行を考えていまして。このプラグインが使えると便利なのですが ここでやってみたのですが 上手く行きません。どなたかhelp願えないでしょうか? - kitta (2006年02月04日 11時21分29秒)
  • 最新の中で埋もれてしまったので再度質問、はてなダイアリーとマップで利用出来た人いますか? - kitta (2006年02月06日 13時10分59秒)
  • Macで解凍して サーバにアップしてたのですが receivepinghandler.pmのコメントがeuc-jpなんですが どうもreceivepinghandler.pm自体のコードは別な様です。あと、trackbacklist.pmはShift_jisの様です。これで正常に解凍出来てるのでしょうか? どなたか教えて下さい。 - kitta (2006年02月08日 12時39分01秒)
  • 遅くなって申し訳ありません。はてなダイアリーとはてなマップについては、いずれも正常に受け付けてくれないようです。本文中に送信先のページのリンクを張った状態でも「http://d.hatena.ne.jp/xxxx/ was not found in your page」のようなエラーが発生しています。おそらく、はてな側が送信元のページを正しく解釈できていない可能性があります。(どちら側に原因があるかは判然としないのですが) - zedosho (2006年02月13日 22時14分12秒)
  • もう一点、モジュールの文字コードと改行の件ですが、SJISやCRLFが混在してしまっているようです。凡ミスで非常にお恥ずかしいのですが、支障があるようでしたら手動でコード変換していただけるとありがたいです。 - zedosho (2006年02月13日 22時18分52秒)
  • zedoshoさん。コメント有り難うございます。はてなの件、やっぱりですか。受信は出来るんですけどねぇ。 文字・改行コードの件、動作に問題無い様です。レンタルサーバ側の環境(自動広告挿入)の問題が大きかった様です。揚げ足取る様な指摘してすみませんでした。 - kitta (2006年02月14日 11時17分56秒)
  • FSWIKI3.5.10でスクリプトネームをindex.xcgとしてxreaで運用しています。送信は出来るのですが、受信ができません。tb.cgiのパーミッション、perlパスは確認済みです。 - golgotha (2006年03月04日 03時36分04秒)
  • 自己解決しました。http://〜省略〜/index.xcg/ページ名 と表示されるためでした。暫定的に自分でhttp://〜省略〜/tb.cgi/ページ名と表記して回避しています。 - golgotha (2006年03月08日 22時19分02秒)
  • 参照権限のデフォルトを「誰でも可能」以外にしているときにTrackbackを初めて受け付けると、Trackback専用ページの参照権限がデフォルトのままになってしまい、元記事ページは参照できるのにTrackback一覧ページが参照できない、ということになってしまいます。手元の環境では、元記事の参照権限と一致させるためにReceivePingHandler.pmの166行目(元記事のタイムスタンプ更新の次の行)に次のコードを入れてみました。(Patchじゃなくて済みません…) - はしもと (2006年03月22日 01時27分01秒)
#トラックバック専用ページの参照権限を元記事にあわせる
$wiki->set_page_level($pagename,$wiki->get_page_level($targetpage));
お名前: コメント: