トラックバック機能の追加
2005年6月20日
nucleusには標準ではトラックバック機能がついておらず、この機能を使うためにはプラグインとして導入する必要がある。そこで、Nucleus情報::暫定版というサイトのTrackBackプラグインの使い方という記事を参考にして、トラックバック機能を追加した。
必要なプラグイン、NP_TrackBack.phpは、このページからダウンロードした。『TrackBackプラグインの使い方』に書かれたとおりの設定を試みたが、この記事に書かれてあるとおり、NP_TrackBack.phpを変更しないとあまりうまく行かないようである。使用しているスキンとの相性が悪いようだ。記事で使用されているNucleusのバージョンと、使用中のバージョン(v3.2日本語版)が異なることも関係するかもしれない。
試行錯誤の結果、次の通り設定した。
スキンの変更(defaultスキン使用)
テンプレート編集で、indexテンプレートの『アイテムの本体』に
<div class="contentitem3">
<a href="<%itemlink%>#trackback"><%TrackBack(count)%> TrackBacks</a>
</div>
を挿入。
テンプレート編集で、itemテンプレートの『アイテムの本体』の最後に
<!--TrackBack-->
</div>
<div class="content">
<div class="contenttitle">
<a name="trackback" id="trackback"></a>
<h2>TrackBack</h2>
<%TrackBack(list)%>
<!--EndTrackBack-->
を追加。
テンプレート編集で、itemテンプレートの『アイテムを編集するためのリンク』の最後に
<div class="contentitem5">
<a href="<%TrackBack(pingformlink)%>">Send TrackBack</a>
</div>
を追加。
apache.confの変更
次の内容を追加
NP_TrackBack.phpの変更
このスクリプトの記述をみると、コメント欄にはNucleus2.0への対応は書かれてあるが、3.0への対応は書かれていない。どうやら、そのあたりに不具合の原因が有りそうな感じである。
スクリプトを良く眺めてみると、スキンとのフィッティングは、最初の方にある"class NP_TrackBack"中の"function init()"を変更すれば良さそうである。ここのタグ指定を色々変えて、defaultスキンに合うようにした。バージョンを、1.23bj_k1.0bとしておいた(ここからダウンロードできます)。
さらに変更(2005-10-18)
まず、.htaccessに
を追加し、NP_TrackBack.phpを変更して
及び
とした(ver 1.23bj_k1.1b)。
まとめ
以上の変更で、トラックバック機能がNucleus3.2jで無事働いている。プラグインの基本的な動作の部分は、Nucleus2.0用のプラグインでも問題なく、スキンとの相性に関する部分だけを変更すれば良いらしい。
必要なプラグイン、NP_TrackBack.phpは、このページからダウンロードした。『TrackBackプラグインの使い方』に書かれたとおりの設定を試みたが、この記事に書かれてあるとおり、NP_TrackBack.phpを変更しないとあまりうまく行かないようである。使用しているスキンとの相性が悪いようだ。記事で使用されているNucleusのバージョンと、使用中のバージョン(v3.2日本語版)が異なることも関係するかもしれない。
試行錯誤の結果、次の通り設定した。
スキンの変更(defaultスキン使用)
テンプレート編集で、indexテンプレートの『アイテムの本体』に
<div class="contentitem3">
<a href="<%itemlink%>#trackback"><%TrackBack(count)%> TrackBacks</a>
</div>
を挿入。
テンプレート編集で、itemテンプレートの『アイテムの本体』の最後に
<!--TrackBack-->
</div>
<div class="content">
<div class="contenttitle">
<a name="trackback" id="trackback"></a>
<h2>TrackBack</h2>
<%TrackBack(list)%>
<!--EndTrackBack-->
を追加。
テンプレート編集で、itemテンプレートの『アイテムを編集するためのリンク』の最後に
<div class="contentitem5">
<a href="<%TrackBack(pingformlink)%>">Send TrackBack</a>
</div>
を追加。
apache.confの変更
次の内容を追加
<IfModule mod_php4.c> php_value mbstring.language Japanese php_value mbstring.detect_order ASCII,JIS,UTF-8,EUC-JP,SJIS php_flag mbstring.encoding_translation On </IfModule>
NP_TrackBack.phpの変更
このスクリプトの記述をみると、コメント欄にはNucleus2.0への対応は書かれてあるが、3.0への対応は書かれていない。どうやら、そのあたりに不具合の原因が有りそうな感じである。
スクリプトを良く眺めてみると、スキンとのフィッティングは、最初の方にある"class NP_TrackBack"中の"function init()"を変更すれば良さそうである。ここのタグ指定を色々変えて、defaultスキンに合うようにした。バージョンを、1.23bj_k1.0bとしておいた(ここからダウンロードできます)。
さらに変更(2005-10-18)
まず、.htaccessに
RewriteRule ^trackback-([0-9]+).html+ action.php?action=plugin&name=TrackBack&tb_id=$1
を追加し、NP_TrackBack.phpを変更して
function getTrackBackUrl($itemid) { global $CONF; //return $CONF['ActionURL'] . '?action=plugin&name=TrackBack&tb_id='.$itemid; return $CONF['IndexURL'] . 'trackback-'.$itemid.'.html'; }
及び
//$url = createItemLink($itemid); $url =$blog->getURL().'item-'.$itemid.'.html';
とした(ver 1.23bj_k1.1b)。
まとめ
以上の変更で、トラックバック機能がNucleus3.2jで無事働いている。プラグインの基本的な動作の部分は、Nucleus2.0用のプラグインでも問題なく、スキンとの相性に関する部分だけを変更すれば良いらしい。