本文へジャンプする
カテゴリー選択 »
全てを表示
Tips
その他
スキン
ピックアップ
プラグイン
レビュー
Tipsのタグ一覧 »
一覧を開閉する
プラグイン
ハック
v2.5b
UTF-8
fancyurl
v3.3
スキン
インストール
v2.0
TrackBack
デバッグ
xrea
bookmarklet
スパム
MySQL
Blacklist
v3.2
ログ
スキン変数
v3.1
RSS
ブログ別
文字化け
コメント追跡
BOM
CustomURL
MultipleCategories
mod_rewrite
コメントの最大量
google
Javascript
ライブラリ
Markdown
CSS
phpMyAdmin
nucleus
robot
固定リンク
テンプレート
スクリーンショット
サブドメイン
テンプレート変数
PHP
Counter
移行
P3P
セットアップ
リファラー
« スキン/テンプレート変数を残しつつ無効に
変数ダンプ »

ブログツール、NucleusCMSに関する情報を掲載

[引っ越しました] 過去記事を datoka.jp/old にまとめてます。
ブログだとか
Nucleusだとか
制作物だとか

この記事の概要

しばらく前からここのサイトのトラックバックURLがちょっと違うって気づきました?

長いURLを収めるためにフォームの入力フィールドを置くのはやだな、とミタメ的な理由で改造をしてたんですが、今回はその解説。__mode=rss(まみおさんの改造版で対応)についてもついでに。

action.phpからの解放

URLがやたら長いのは、action.phpを通してプラグイン名などのいろんなパラメータを受け渡してるから。なので、こっち側からの送信はともかく、外からのトラックバックを受信するURLだけはaction.phpを通さないしくみを作りたい。

ということで、action.phpがあるディレクトリにtrackback.phpというファイルを置いて、そこにトラックバック受付専用の仕事をさせることに。その中身がこれ。

$CONF = array();
include('./config.php');    // common functions

$pluginName = 'TrackBack';
// only continue when the plugin is really installed
if (!$manager->pluginInstalled('NP_' . $pluginName))
    exit;

$plugin =& $manager->getPlugin('NP_' . $pluginName);
if (!$plugin) exit;

if ( requestVar('id') ) $_REQUEST['tb_id'] = requestVar('id');
else if ( requestVar('entry_id') ) $_REQUEST['tb_id'] = requestVar('entry_id');

$plugin->handlePingXML();

ファイル置きました:Trackback Ping Receiver

関数内じゃないのにreturnしてた、と慌ててさっきexitに書き換えたのですが、PHPはグローバルスコープのreturnはアリだったんですね

やってることは、このファイルからNP_Trackbackのping処理部を呼んでるだけなので割りとシンプル。記事idの受け取りはentry_idでも受け付けるようにしてます。理由は後述。

追記:この記事はv1.2系のNP_Trackback用です。v2系用の場合、最後の行はhandlePingXML()ではなく、handlePing()になります。 またv2系にはすでにプラグイン側で短縮URLが用意されてるので、それを利用したほうがいいかも。詳細は「NP_Trackback v2系への移行&Tips」のほうに書いてます。

URL表示を修正

今までのURLではなくtrackback.phpのほうを指すために、NP_Trackbackの中身をいじります。オリジナルのgetTrackBackUrl()関数を・・・

function getTrackBackUrl($itemid) {
    global $CONF;
    return $CONF['ActionURL'] . '?action=plugin&name=TrackBack&tb_id=' .$itemid;
}

下の記述に変更。

function getTrackBackUrl($itemid) {
    global $CONF;
    //hack
    $baseurl = preg_replace('{^(.+)/action.php}', '$1/', $CONF['ActionURL']);
    return $baseurl.'trackback.php?id=' .$itemid;
}

追記:最後に、NP_Trackback のはじめのほうにあるHTMLの入力フィールドを省けば終了です。<tburl>をふつうのテキストとして表示してもうるさく感じないはず。

トラックバック情報のロボット収集もOK?

これをやっておくとVer1.23bj7で対応してる __mode=rss と絡めて、"トラックバックURL?__mode=rss&entry_id=xxx"という Movable Type っぽい呼び出しができるので、'item' スキンタイプにきちんと <%TrackBack(tbcode)%> を埋め込んでおけばトラックバック情報をrssで収集するロボットにも対応できてそう。

同じようにMTらしく __mode=view も実装できなくはないけど Nucleus では意味が無いので省略。

コメント一覧

pukka:

はじめまして。最近 Nucleus 使い始めたものです。
こちらの tips、早速 参考にさせていただきました。
おかげでスッキリしましたです。どうもありがとうございます。

yu:

コメントありがとうございます>pukkaさん
お役に立てたようで何よりです。

KC:

TrackBack URLがスッキリしました。ありがとうございます。

preg_replaceを使用している部分ですが、$CONF['IndexURL']に変更して使用しています。

yu:

コメントありがとうございます>KCさん
たしかに「サイトのURL」とaction.phpのある場所が一致してれば$CONF['IndexURL']で統一できますね。
僕のところはそこを分けてしまってるのであんな書き方になってます。

tom:

別なサイトでtrackback URLを"http://mysite.com/trackback/11"と言う風にするHackを使った所、確かにそう表示されるのですが、この短くしたURLにtrackbackのpingを打てないので、yuさんの方法で"http://mysite.com/trackback..."と言う風にした所、上手くpingを打てました。

ただ、LocalのURLにpingを打てないのですが、何処をどの様にhackしたら良いのでしょうか?

tom:

先ほどlocal pingについて質問させていただいたtomですが、以下のページの方法で全て解決しました。

http://www.d-nest.net/item/14

私のコメント2件、削除していただいても構いません。

お世話様

yu:

報告ありがとうございます。handleLocalPingの修正ですね。
同じことで悩む方もいるかもしれませんのでコメント残しておきます。

yutaka:

便利なプラグインありがとうございます。
>NP_Trackback のHTMLの入力フィールドを省けば終了です。
この部分と
><tburl>をふつうのテキストとして表示してもうるさく感じない
テキスト表示の方法を少し説明していただけないでしょうか?
よろしくお願いします。

yu:

HTMLを知っていればいじるのは簡単だと思うのですが、一応補足しておきますね。

NP_Trackback.phpの、init()内に表示用テンプレートが定義されてます。そこの 'LIST_HEADER' と 'NO_TRACKBACKS' の
<input class="formfield" size="70" accesskey="4" value="<%tburl%>" />
を、たとえば <%tburl%> だけにすると、平文でトラックバックURLを表示できます。

yutaka:

無事URLだけにできました。
URLも短くなりすっきりしました。ありがとうございました。

brand:

‘NP_Trackback のはじめのほうにあるHTMLの入力フィールドを省けば’とありますが、どの部分ですか?具体的に教えてください。お願いします。

yu:

すぐ上のコメントでこのことについて触れてると思いますが。
(Ver1.23bj7以外のバージョンだとまたやり方が違うかもしれません)

Tuna:

はじめまして
URLを短くする方法活用させていただき大変助かっております。

先日Nucleusの日本語版の3.22が出たのでアップデートを行ったのですが
トラックバックの追加ができなくなってしまいました・・・

エラーには以下のように表示されています
PHP Fatal error: Call to undefined function: handlepingxml() in /mynucleusdirectory/trackback.php on line 21

どうやらTrackback Ping Receiverの最後の行で
呼んでいるhandlepingxmlがないのが原因みたいですが
解決方法はご存知ですか?

yu:

Tunaさん、はじめまして。
うちの環境ではv3.22にしても問題は出てないようです。

たぶんNucleus本体のアップデートが原因ではなくて、トラックバックプラグインのアップデートをしたとかじゃありませんか?
もしそうであれば新しいプラグインのほうのhandlepingxml()の役割をする関数を代わりに呼べばいいんだろうとは思いますが。

Tuna:

yuさん 返答ありがとうございます。

以前は、まみお氏のサイトのNP_TrackBack201jp2を使っていて
つい先日フォーラムからhsur氏のNP_TrackBack201jp2_C2をダウンロードし、
入れ替えたのが原因かと思い調べてみましたが
両方ともNP_Trackback.php内にhandlepingxml()はありませんでした(汗

以前から正常に動いてなかったのかもしれない(汗

ちょっと自分でもわけわからなくなってきてしまったので
プラグインを元に戻したり
handlepingxml()のかわりにhandleping()に書き換えたりして
試行錯誤してみます。

yu:

すみません、僕はいまだにv2.xに乗り換えてないのでそのへん気づいてませんでした。
ソースをぱっと見しただけですが、handleping()に書き換え、でOKそうですね。

Tuna:

handlePingXML()をhandlePing()に書き換えてうまくいきました~

ご助言どうもありがとうございました。

トラックバック一覧

[Trackback] NP_Trackback1.23bj7++++ (R2)のトラックバックもを短く華麗に美しく。

NP_Trackback1.23bj7++++ (R2)のトラックバックもを短く華麗に美しくしよう!!。 [ 参照ページ ]・Trackback URLをすっきり短くする - Nucleusだとか ・NP_TrackBack v1.23bj7++++ (R.2) - NP_cles() NP_Tra...

[Trackback] TinyURLは使えないらしい。。というウワサ。。。。。

これまでTinyURLというサービスを使っていたんですが ちょこちょこと 「あれれれ???」というウワサを聞き 使い変えています。 その『あれれれ???』なウワサと言うのは 「tinyURLが正常な認識をしない。らしい。」 ・・・・という話。 &amp;gt;正常な認識をしない。..

[Trackback] NP_Trackback1.23bj7++++ (R2)のトラックバックもを短く華麗に美しく。

NP_Trackback1.23bj7++++ (R2)のトラックバックもを短く華麗に美しくしよう!!。 [ 参照ページ ]・Trackback URLをすっきり短くする - Nucleusだとか ・NP_TrackBack v1.23bj7++++ (R.2) - NP_cles() NP_Tra...

[Trackback] URL変更&amp;FancyURL化完了

Nucleus をルートディレクトリに移転し、FancyURL化をやりなおし、ブログ導入前のメモもエントリとして投稿して、とりあえず一通り見られるようになりました。あとはちょこちょこ更新していきます。 どうやら...

[Trackback] TrackBackのUrlを短くしてみる

Nucleusを使っていて、大変だなと思うのが自分で機能を探してインストールしないといけないこと。ほしい機能は探せばなんとかあるのですが、使用方法がよくわかんなかったりします。(でも、作者さんには感謝です。...

[Trackback] Nucleus事始 - プラグイン

インストールするだけでもいいものも多いですけれど。 2006年01月12日現在、HYADES WAVESには利便性を高めるために、以下のプラグインを入れています。 ・NP_Skinfiles ・NP_TrackBack ・NP_CT ・NP_Multi...

[Trackback] Trackbackプラグイン設置。

Nucleusに、トラックバックのプラグインを導入しました。 こちらのフォーラムを参考に、 トラックバックができるようになりましたので、 みなさまからのトラックバック大歓迎でございます。 それと、トラック...

[Trackback] TrackBackのURLを短くしました

TrackBackのURLを「Nucleusだとか」を参考にして短くしました。 簡単にまとめるとこんな感じです。 「action.php」のあるディレクトリに以下の内容で「trackback.php」を作成します。 「NP_TrackBack.php」...

[Trackback] トラックバック機能無いのか

blogっていうとトラックバックだろ、みたいなイメージがあったので、動作試験で...

[Trackback] Trackback URLをすっきり短くする

当サイトではNucleus3.21&TBプラグインはVer1.23bj7なので大丈夫かどうか微妙な線だったのですが、こちらの記事を参考に作業してみたらあっさりと出来ました。 少しアクションURLが短くなって入力フィールド使わ...

[Trackback] NucleusのTrackBackのURLを見栄えよくしよう!

大手のブログサイトなんかでは、TrackBackのURLは、 http://xxx.xx/trackback/123 なんてCGIを意識させないURLになってます。 これを実現する方法としてApacheのmod_rewriteを使う...

[Trackback] NP_TrackBack

いつも探しているので、メモにしておきマイケル 自分メモ pluginの参考は、ここがベースです http://japan.xiffy.nl/CategorizedPlugin

[Trackback] NP_Trackback

やっとトラックバックできるようになりました。 いやー結構苦労しました。 トラックバックは送信できるけど、受信ができない 現象にだいぶ悩まされました。 どうも「NT_Trackback.php」内のjencodingの中で...

[Trackback] Trackback Spamをそこはかとなく防ぐ

 以前そのうち書きますといっておいてすっかり忘れていたエントリです^^;  ただし前提条件として、だとかさんのTrackback URLをすっきり短くするで紹介されている、Trackback Ping Receiverを導入している...

[Trackback] トラックバックとか

そういえば、数日前に意味もわからずトラックバックの プラグ院を入れてみました。 ちゃんとできてるかな? おっさんにはなかなか難しいです。

[Trackback] Trackback Plugin

なんかうまく打てないなあ。 タイムラグの問題? Trackback Pluginを入れてその後Trackback URLをすっきり短くした。 追記 お、ちゃんと打ててる打ててる。 そしてこちらへのトラックバックが入ったときレイアウトが崩...

[Trackback] やっぱり短いのがいい

Trackback URLをすっきり短くする - Nucleusだとか ↑ ここを参考にさせていただきまして、トラックバックURLを短くしました。 やっぱり短いほうが見栄えがいいです~ でも、テキストボックスみたいのが消えないんで...

[Trackback] trackback 周りの構築(NP_Trackback 整備)

TrackBack周りの整備中。 まだ完全には確認をしていないが、ぼちぼち出来ているようだ。先人の知恵とは偉大なものだと思う。以下、行った作業を覚書としてまとめる。

[Trackback] TrackBackを華麗に美しく。

やたらと長いトラックバック。 ソレを短くスッキリ爽やかにさせる方法です。 ココを参照。 Trackback URLをすっきり短くする - Nucleusだとか 以下覚え書き。 action.phpがあるディレクトリにtrackback.phpというファ...

[Trackback] Trackbackを短く

もーなんつーの? すっきり短いトラックバックURLがカッコ良い訳ですよ。 Trackback URLをすっきり短くする - Nucleusだとか ここに書いてる通りやっただけなんですけども。

[Trackback] トラックバック機能追加。

世間様が使っておられるblog並みにトラックバックできるように、NP_TrackBack123bj7.zipを落としてきて『TrackBackプラグインの使い方』をみながら作業。 記事の日付が2003年12月21日21時48分とかなっててちょっと...

[Trackback] [no title]

トラックバックは便利な機能ですが、標準状態では、トラックバック用 URL は、 http://xn--qckyd1ct91n4x4a.jp/action.php?action=plugin&amp;name=TrackBack&amp;tb_id=1 のような長いものになっています。 もちろんこのま...

[Trackback] Hoppyブログ、スタートです。

ブログのポータルを目指しているのに自分のブログがないのは色々とアレだろう、ということで、早速付けてみました。このブログでは、Hoppyがいろいろなブログにおじゃまして、これは面白い! と思った記事をどん...

[Trackback] トラックバックの送信はできてたのですが………

★どうやら、トラックバックの受信ができていなかったようで。  まあ、トラックバック周りについてはトラックバックのURLを短くしたいがためにyuさんの記事を参考にして色々とスクリプトをいじってたので、その辺...

[Trackback] Trackback URL表示

たかぷーさんを迷子にさせてしまった私は、今まで棚上げしていた2つの作業を 突貫工事で終わらせてしまうことにした。 まずは個別アイテムページのサイドメニューにこっそり置かれていたTrackbackURLを コメントと同...

[Trackback] プラグイン:NP_TrackBack

Nucleusにはトラックバック機能がついていませんが、プラグインをインストールすればOKです。 xx.nakahara21.netの「NP_TrackBack バージョン1.23bj7」からDLさせていただきました。 ありがとうございますm(_ _)m MT...

[Trackback] トラックバック関連で色々更新のテスト

テストですトラックバック関連の挙動をイマイチ理解していなさげだったので、本日色々見直してみました。 トラックバックURLを短くする TrackBackプラグインの使い方 Trackbackしたい! 今迄曖昧だった事がスッキリと...

[Trackback] Trackbackまわりをすっきり :: Nucleus

TrackBackまわりをすっきりさせようということで、 まず、URLを変更。下記のサイトを参照しました。 Trackback URLをすっきり短くする - Nucleusだとか ということで、action.phpがあるディレクトリにtrackback.php...

[Trackback] さらにトラックバック時のURLを短くする

調べていると、トラックバックの追加と だいたいワンセットで実装しているケースが 多いみたい。 配布元を参考にして、入手したphpを またpluginディレクトリにアップロード。 従来からある、NP_Trackbackの内容を以下...

[Trackback] Nucleus: 導入プラグインの紹介

このエントリーでは、Nucleus システムで今使っているプラグインを紹介。 (Nucleus 系の情報はネット上にバラバラに散らばっていて、けっこう時間がかかってしまう。しかも「導入した」一言だけ書いてあったりす...

[Trackback] 4日目

「Trackback URLをすっきり短くする」方法があるので取り入れる。 yuさんの配布しているファイルをpluginディレクトリにupし、NP_Trackbackの中身を修正して上書き。 これでTrackback URLが短くなった。。。らしい...

[Trackback] Nucleus 導入メモ - 02

予告どおり導入メモの続きです。 Nucleus 入れてないひとには、意味のない記事で申し訳ないのですが、使ってみればわかりますよー(誘 # うーん、これって自分のためだけのメモになりそーな予感。 今回は NP_TrackBa...

[Trackback] Nucleus設定日記2

今日は Trackback URLをすっきり短くする というのをやってみました。   昨日、ある程度ですが、Nucleusのプラグインまわりのやり方がわかったので、今日はさっそく、上記サイトからphpファイルをDLし、自分の nucleus/...

[Trackback] Trackback URLをすっきり短くした

  Nucleusをペコペコ触りだして幾日か経ちました。 色々な情報サイト(といってもウチからリンクしてるとこくらいしか知らない)を見て 無い頭をフル回転してカスタマイズ(というほど大げさでもないか……)してい...

[Trackback] TrackBackのFancyURL化

FancyURLの手法を利用して、ココログなどで使われているような  http://**.com/trackback/123 の形でトラックバックを受け付けるようにする方法。

関連がありそうな記事一覧

ページの先頭に戻る