NP_Analyze との連携 チョー簡単な FancyURL 実現方法
Aug 22
NP_ContentsList は、コアで用意されているリンク作成用の createLink() ファンクションを呼び出さず自前でリンクを生成しているので、NP_CustomURL で設定した URL が反映されません
これを NP_CustomURL で設定した URL に対応させるためには、NP_ContentsList で生成したリンクを上書きしてやる必要があります
ブログ・カテゴリー・サブカテゴリーの各リンクを生成している部分で NP_CustomURL がインストールされているかどうかで条件分岐させて、インストールされている場合はコアのリンク作成機能を使うようにしてやればいいわけです

変更(挿入)箇所は全部で3箇所です
「function doSkinVar()」内の467行目からの「// sub category ---」で括られているブロックの486行目
$subdata['sublink'] = addLinkParams($catdata['catlink'], array($subrequest => $subdata['subcatid']));

と書いてある次の行に
if ($CONF['URLMode'] == 'pathinfo' && $manager->pluginInstalled('NP_CustomURL')) {
$customurls = $manager->getPlugin('NP_CustomURL');
$subdata['sublink'] = $customurls->_addLinkParams($catdata['catlink'], array($subrequest => $subdata['subcatid']));
}

と挿入、396行目から465行目までの「// Categories --------------------」ブロックの終了後、466行目に
if ($CONF['URLMode'] == 'pathinfo' && $manager->pluginInstalled('NP_CustomURL')) {
$catdata['catlink'] = createCategoryLink($catdata['catid']);
}

最後に348行目の
$data['self'] = $data['blogurl'];

の前の行に
if ($CONF['URLMode'] == 'pathinfo' && $manager->pluginInstalled('NP_CustomURL')) {
$data['blogurl'] = createBlogidLink($data['blogid']);
}

を追加すれば完了です
(行番号はバージョン2.0のものになります)

この改造ともう一つ、NP_TagEX の tag を URL の最後に持ってくる改造はヘルプの最後に書いてるんだけどなぁ……
もしかしてちゃんと表示されません? > ヘルプ

5 Responses to “ NP_ContentsList を NP_CustomURL に対応させる方法 ”

  1. 時武 Says:
    ヘルプファイルがあるのに気がついていませんでした。すいません!

    配布ファイルにReadme.txtみたいな形で同梱すると私みたいな馬鹿野郎が減るかもしれません(^^;;
  2. しづき Says:
    いえいえ、ヘルプ開いても更新履歴よりまだ下に書いてるんで気づき難いのは確かなんで、もっと解りやすい構成を考えようと思います

    今使ってるヘルプの表示方法だと3.3だと使えなくなりそうですし、いい機会だと思います
  3. yama Says:
    佐藤さんのプラグインで見られるような実装だと分かりやすいし必ず読むと思いますが、ああいうヘルプの実装って手間かかるのでしょうね。タブ切り換え形式になってるし。このへんはコア側でサポートしてくれるのが一番よさそう。
    Readme.txtが入ってないプラグインがほとんどですが、これがあると安心します。
  4. しづき Says:
    >佐藤さんのプラグインで見られるような実装
    ちょっと実物は見てないんですが、なんとなくイメージは解りました
    というか、ヘルプページから管理画面へリダイレクトかけると楽かな ^^;
  5. yama Says:
    たとえばNP_znItemFieldEXなんかがそうなんですが、バージョン情報まで表示できる優れモノです。呼び出し方はNucleus標準のそれとは少し違うようで、「?action=help」というクエリが付いてました。

    簡単に考えるなら、管理ページの
    > このプラグインのオプション設定ページへ移動
    > メンバー用 URI 管理ページへ
    の下に
    「ヘルプを表示する」
    を追加するだけでも効果がありそうに思います。

Leave a Reply

OpenID を使ってログインすることができます。

Identity URL:



Web Services by Yahoo! JAPAN

このエントリにトラックバックはありません

この記事のトラックバックURL
http://shizuki.kinezumi.net/item_277.trackback(右クリックで'ショートカットの保存')
トラックバックするにはこの記事へのリンクhttp://shizuki.kinezumi.net/item_277.htmlが必要です