trackbackの履歴
テストもかねて。よかったらこのコードでいいかも聞かせてください。
テーブルを作る。
CREATE TABLE b2trackback (
ID int(11) unsigned NOT NULL auto_increment,
trackback_url varchar(100) NOT NULL default ‘’,
post_ID int(11) NOT NULL default ‘0′,
KEY ID (ID)
) TYPE=MyISAM;
b2edit.phpの
trackback($tb_url, stripslashes($post_title), $excerpt, $post_ID);
のつぎに、
##
$trackback_title=stripslashes($post_title);
$query = “INSERT INTO b2trackback VALUES (’0′,’$tb_url’,'$post_ID’)";
$result = mysql_query($query);
if (!$result) {
die ("There is an error with the database, it can’t store your comment…
Contact the <a href=\"mailto:$admin_email\">webmaster</a>;");
}
##
で、b2template.functions.phpに以下の関数を付加。。
function tb_send(){
global $id;
$query="SELECT * FROM b2trackback WHERE post_ID = ‘$id’";
$result=mysql_query($query);
$myrow = mysql_fetch_array($result);
echo $myrow[1];
}
これでいいはず。
で、適当に<? tb_send() ?>を呼び出す。
TrackForwardのb2版ですね。これは面白い試みだと思います。
MySQLの文法は全くと言って良い程分からないので、何とも言えません。
phpもあまり分からないのですが、
$trackback_title=stripslashes($post_title);
の行は必要なさそうです。
この機能の問題として、
「TrackBackを送ったURLが分かっても、元記事の場所は『分かる人』にしか分からない」
という点があると思います。
リンクにして表示したら良いんじゃないかなと始めは思ったのですが、
リンクにしてもほとんど意味がないんですね。
TrackBackを送るURLから、その元記事のURLに変換できれば良いのですが、
ツール毎に変換ルールが異なるので、
どのツールを使っているのか、変換ルールはどうなるのか、
一々調べなければなりません。
スマートな方法ではないですが、現状では最も現実的な方法かもしれません。
「TrackBackを送るURLに、ある引数を与えてアクセスした場合、
元記事にリダイレクトする」
という機能を実装するのが理想的ですが、
それはTrackBackを受ける側に実装してもらわないとダメですね。
なかなか難しいです。
Comment by mash — 2003/03/11 @ 2003/03/11 02:00 JST
Comment by jouno — 2003/03/11 @ 2003/03/11 02:55 JST