NP_Permalink導入時のトラックバック

NP_Permalink導入時のトラックバック

Author : pushman|Nucleus|2005-11-22 Tue 11:31

慎重にチェックしたつもりでしたが、詰めが甘かった…「Nucleusの個別アイテムページのURI」でお礼とご報告がてら dj k!ng さんのこの記事「NP_Permalink」にトラックバックを打ったんですが、なんとまあ URI「http://blog.heartfield-web.com/item_85.html」となっています。改造前のままですね。軽いパニックになりましたが、深呼吸ののち対策を施したので、そのメモ。

> dj k!ng さん
何度もトラックバックをしてすみません。

以下試行錯誤ログ。

  • NP_Permalink で実際の URI を生成しているわけではないから、NP_TrackBack を改造しなければ。
  • …確か NP_TrackBack は globalfunctions.php の「createItemLink」関数を利用している…
  • キーワードが登録されているテーブルは「nucleus_plugin_permalink」のみなので、「createItemLink」関数内でこれを呼び出す必要がある。
  • 呼び出し方がわからないので、「NP_Permalink」内の処理をごっそりコピー。
  • カテゴリー名も必要。カテゴリーで記事を分けたことを大後悔。呼び出し方がわからず四苦八苦。カテゴリーの説明を呼び出すプラグイン「NP_CatDesc」の処理をコピーし修正。

上記修正前。

function createItemLink($itemid, $extra = '') {
	global $CONF;
	if ($CONF['URLMode'] == 'pathinfo')
// MagicalURL
//		$link = $CONF['ItemURL'] . '/item/' . $itemid;
		$link = $CONF['ItemURL'] . '/item_' . $itemid . '.html';
	else
		$link = $CONF['ItemURL'] . '?itemid=' . $itemid;
	return addLinkParams($link, $extra);
}

修正後。

function createItemLink($itemid, $extra = '') {
	global $CONF;
//pushman
//NP_Permalink
    $result = sql_query('SELECT name FROM ' . sql_table('plugin_permalink') . ' WHERE (itemid = ' . intval($itemid) . ')');

    if (mysql_num_rows($result) > 0)
    {
      $object = mysql_fetch_object($result);
      $name = $object->name;
    }
//NP_CatDesc
        $query = "SELECT cname "
               . "FROM ".sql_table('item').", ".sql_table('category')." "
               . "WHERE icat=catid "
               . "AND inumber=$itemid";

        $results = mysql_query($query);
        $row = mysql_fetch_assoc($results);
        $cname = $row['cname'];

//namhsup
	if ($CONF['URLMode'] == 'pathinfo')
// MagicalURL
//		$link = $CONF['ItemURL'] . '/item/' . $itemid;
		$link = $CONF['ItemURL'] . '/' . $cname . '/' . $name . '.html';
	else
		$link = $CONF['ItemURL'] . '?itemid=' . $itemid;
	return addLinkParams($link, $extra);
}

「pushman」から「namhsup」までが今回追記したところ。今のところは問題なく動いてます。これから先は定かではありませんが…

コアの修正を極力しないという誓いが、もはや意味を成さなくなってますね。これ専用のプラグインをつくればいいのか。しかしなんかとても回りくどい処理をしてしまっているような気がしますねぇ。まあこれ以上 Nucleus に望むことはないので、最後の修正にしたいです…

ほかの注意事項とまとめてみました。
NP_Permalink|導入まとめ

Tag(s): NP_Permalink / コア改造

Comments

Posted by dj k!ng2005-11-22 Tue 13:04

トラックバックの URI は手動で直しておきました :-)

Posted by dj k!ng2005-11-22 Tue 13:07

コメント投稿後にリダイレクトされるページが 404 エラーになってました. リダイレクト URI が "ttp://blog.heartfield-web.com/nucleus/nucleus/np_permalink_to_trackback.html" のようになっています. カテゴリ名がだぶって出力されているようです.

Posted by pushman|2005-11-22 Tue 13:51

dj k!ng さん
猛烈お世話になっております。
そしてご迷惑おかけしております。すみません。

さらに、修正、ご報告ありがとうございます。このコメント投稿後、現象を確認して、さらに修正します。ほんとにありがとうございます。

しかし…なぜ…orz

Comment Form (policy)

(メールアドレスは非公開です)

Others
Newest 5 Items

NP_GoogleMapsにオリジナルマーカーを表示

BLOG.phpのPHP Warning

CPIでNucleus(UTF-8)

NP_znItemFieldEX|「本日」の条件判断を修正

NP_OnlyImg|高さを有効に

Nucleus CMS: Pure Publishing