日本語版のはずなのにプラグインオプション等が英語表記だったのが不評だったようなので、今回のバージョンアップではそのあたりを重点的に日本語化してみました。表示のテンプレートについても日本語化されたものがデフォルトににしています。
ダウンロードはこちら [NP_TrackBack v2.0.3 jp4][492clicks]
bugfix版のNP_Trackback v2.0.3 jp5をリリースしています。
※使い方についてはplugins:trackback [Nucleus CMS Japan Wiki]を参照してください。
※アップグレードの際には一旦プラグインをアンインストールすることをお忘れなく。
動作確認はNucleus 3.23(UTF-8)、PHP 4.4.2環境で行っています。
動作確認報告、バグ報告はこのエントリへ、コメント・トラックバックをお願いします。
† [Added] AutoDiscoveryURL出力時にSpamCheckを行うようにした
以前、NP_Blacklistに引っかかるipからのアクセスの際にはTrackback Auto Discovery用のRDFコードを吐かないようにする実験をしていましたが、それなりの成績を収めることが出来たので、機能として取り込みました。
† [Added] メッセージ、デフォルト値を日本語化
英語のメッセージ、デフォルト値を極力日本語化しました。
† [Added] 大手ASPの言及リンクチェックの際にURLのリダイレクトを解除するようにした
詳細については「NP_Trackbackでトラバ返し?」で解説していますが、以下のサービスの言及リンクチェックの際に、URLリダイレクト処理を自動的に解除する処理を埋め込みました。
・NP_Trackback
・はてなダイアリー
・TBPingLinkLookup (MovableType用プラグイン。miyagawaさん作)
・MT::Plugin::BanNoReferTb (MovableType用プラグイン。naoyaさん作)
・livedoorBlog
はじめまして。NP_TrackBackはもちろん、このサイトを大いに利用させてもらっています。
早速ですが、NP_TrackBack 2.0.3jp4 (on Nucleus 3.23(UTF-8)) の管理画面において、自Blog(TB元)のタイトルに 「&」 とか 「<」 とかそーゆー文字が入っているとXMLパースエラーとなるのを発見しました。
で、trackback/index.php を修正し、自分なりに対策をとってみました。次リリースでの反映をご検討いただければと思っています。
268行から
$rrow['story_url'] = $oPluginAdmin->plugin->_createItemLink($rrow['story_id'], $blog);
--> 追加 $rrow['story'] = htmlspecialchars($rrow['story']);
$items[] = $rrow;
343行から
$rrow['story_url'] = $oPluginAdmin->plugin->_createItemLink($rrow['story_id'], $blog);
-->追加 $rrow['story'] = htmlspecialchars($rrow['story']);
$items[] = $rrow;
481行から
{
-->追加 $irow['ititle'] = htmlspecialchars($irow['ititle']);
$items[] = $irow;
以上です。
ありがとうございます。
とりあえずタイトルについてはstrip_tags()はかけようと思うのですが、さらにhtmlspecialchars()はするべきなのかどうなのかというのはちょっと迷うところです。
本来の使い方では、タイトルにおいて&を表示する場合には実体参照(&)を使っているはずなので、本来の使い方をしている人の表示が変になるというのはちょっと気が引け手しまいます。ただ、パースエラーだとさすがに使えないので、それもやむなしかもしれません。
もうちょっとこちらでも考えてみます。
いつもプラグインの開発、ありがとうございます。
最近、新しいサーバーでNucleus323utf8をテスト中なのですが、こちらのNP_TrackBack v2.0.3 jpxのインストールも動作も問題ないのですが、唯一DBリストアの際に下記のエラーがリストア完了時に表示されるようになりました。
SQL Error: BLOB column 'link' used in key specification without a key length
エラーは出ますがリストアは正常に終了しています。
なお、この現象はNP_TrackBack v2.0.3 jpxがインストールされている場合においてのみ表示されことは、プラグインの切り分けテストで確認しております。
まだトラックバックは1つも受信していない状態です。
表示の内容からお心当たりはございますか?
このエラーを見て気になるのは以下の2点です
・linkのカラムがBLOB型になっている。
・keyのlengthが指定されてないエラーであること。
NP_TrackbackのSQLではlinkのカラムはTEXTなっていて、keyのlengthは100に設定されています。
おそらくですが、バックアップ時のにTEXT→BLOBになり、keyのlengthが抜けているので正常にリストアできていないのではないかと思います。
もうちょっと環境について教えてください。
まず、使っているMySQLのバージョンはいくつでしょうか?また、DBリストアしているとのことですが、バックアップとリストアは具体的にはどのような方法やツールを使って行っているのでしょうか。
お手数をおかけいたします。
MySQL 4.0.26ございます。
バックアップとリストアは、Nucleus323utf8の「DB保存/復元」でしています。
先ほど、念のためMySQLをクリアし、ゼロからやり直してみました。
標準のSkinFiles以外のプラグインが何もインストールされていない状態で、バックアップ→復元でエラーはありません。
次に、NP_TrackBack v2.0.3 jp4をインストールし、すぐにバックアップ→復元で、前述のエラー表示が再現。しかし復元自体は正常に完了しています。
といった状況でございます。
どうやらこれは「DB保存/復元」のバグのようです。ソースを読む限りではバックアップ時にkeyのlengthが生成されないようになっているようです。
とりあえずエラーの直徹的な原因はNucleusのコアの問題なので、コアを修正してもらうしかないのですが、さしあたっての対応策として、バックアップファイルの下記の部分を
#
# TABLE: nucleus_plugin_tb_lookup
#
DROP TABLE IF EXISTS >nucleus_plugin_tb_lookup;
CREATE TABLE nucleus_plugin_tb_lookup(
link text NOT NULL,
url text NOT NULL,
title text,
PRIMARY KEY (link)
);
下記のように書き換えるとエラーはでなくなるはずです。
#
# TABLE: nucleus_plugin_tb_lookup
#
DROP TABLE IF EXISTS >nucleus_plugin_tb_lookup;
CREATE TABLE nucleus_plugin_tb_lookup(
link text NOT NULL,
url text NOT NULL,
title text,
PRIMARY KEY (link(100))
);
根本的な回避策はこれから考えてみます。。。。。
# 以下、独り言です。
# なんで、Nucleusコアが自前ででCREATE文を構築ルーチンを持ってるんだろ。
# show keysとかつかってチマチマやるんだったら、show create tableで一撃なのに。。。。
PRIMARY KEY (link(100)) と.splのソースを修正することで回避できました。
ありがとうございました。本当に頭が下がります。
ソースを見ていただいたということは、貴殿がご使用の環境においても同じ症状なのですね?
エラー表示が出る出ないはサーバーによって違うということなのですね。
ソースを見ていただいたということは、貴殿がご使用の環境においても同じ症状なのですね?
はい。私の環境でも、同じ症状です。
エラー表示が出る出ないはサーバーによって違うということなのですね。
すいません。これは僕が「DB保存/復元」を使ったことがなかったので、そういうエラーが出るということを知らなかったというだけです。
はじめまして
URL周りを弄ってる時にトラックバックを送ったので、トラバ元のURLがおかしくなっていました
(あくまでもこちらのミスであって、プラグインの不具合ではありません)
現在正しいURLへリダイレクトするように設定しました
hsur様、ならびにここを読まれている皆様に大変ご迷惑をおかけしましたことをお詫びします
お知らせありがとうございます。
そんなに気にしなくてもいいですよ。。。
# こちらでもTBのURLを訂正しておきました。
# こちらでもTBのURLを訂正しておきました。
ありがとうございます
お手数おかけしました
こんにちは。
v2.0.3 jp4 を、MB のインストールされていない状況(mb_emulatorが稼動)で使用すると、NP_TrackBack.php の 2161 行目でプロセスが停止しました。mb_convert_encoding() は存在するものの、mb_substitute_character()が存在しないことが原因のようです。この行をコメントアウトすると、無事に動きました。サーバには、Apache 2.0.55 + PHP 4.4.1.1 (Windows)を使用しています。
ありがとうございます。mb_emulatorにはmb_substitute_character()がないということを認識していませんでした。
対応的にはKatsumiさんの対応でOKです。次のバージョンより、エラーが出ないように修正したいと思います。
# だいぶFixも溜まってきたので、そろそろjp5のリリース準備をしようと思います。
# 後、未処理のバグはsuomiさんに指摘されているcurl関連のところかなぁ。
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。