Home | ArchiveList | Category | About
Home > PC > Nucleus
1 2 3 4... > >>
こちらの記事を参考に、NP_Amazonで処理したいテンプレートでのみ動作するように改修してみました。
パンくずリストとページ前後移動ナビがセットになっているNP_ItemNaviEXというNucleusプラグインがあるのですが、パンくずリストと前後移動ナビを別々に記載したくなりました。

なるべく簡単に実現したいと思って、同じソースを別名にして2つ用意して、別々のプラグインとして登録して、使わない方の機能をコメントアウトする、といった手順で実現しました。

これでも十分だったんですが、せっかくなので引数を追加して自分好みに使えるように改修もしてみました。
最近、Google検索結果で自サイトが「モバイルフレンドリーではありません」と表示されるようになったので、この機会にスマホ対応してみることにしました。

自分が使ってるブログツール Nucleus だと、NP_ChgSkin2SP最新バージョンは1.31)というスマホ対応用のプラグインがあるのですが、環境的な問題があってそのままでは使えませんでしたので、備忘として修正した箇所を書いておきます。
htaccessでURLリダイレクトという記事において、URLにindex.phpという文字列がないときの対処をしようとして失敗しましたが、今回 yama.kymsさんに教えていただいた方法で無事解決ができました。ありがとうございます!

以下に方法を記載します。
NP_Amazon を使われてる方は割と多いと思うんですが、こんなカスタマイズが必要な人は殆ど居ないんじゃないだろうか、ってな自分用改造を行いました。

現在、Nucleus で別ブログにて購入したりレンタルしたり手にしたりしたものを、コメントもなくひたすら記録しているんですが(その名も「手にしたものを淡々と記録するよ」)、自作業の手間を省くために、記事タイトルは入力しないでいました。

amaz-in-g-monkey スクリプト で表示される NP_Amazon 用のタグだけコピーして、記事本文にタグをペーストするだけで済ませてました。基本的に感想とか書く気が無くてひたすらモノを羅列していくだけだし、とにかく入力コストを下げたかったんです。だいたい、記事見れば商品名あるからタイトル無くても問題ないじゃん、って思ってたのです。

ただこれだと、RSS配信する時にタイトルが空なので困ります。ました。のでRSSは用意してなかったんですが、モノブログのRSSツイッター連携して、手にしたモノを自動的にツイートしたくなってきたのです。

そういうわけで、ブログ記事本文に NP_Amazon タグを入力して新規追加した時だけ、自動的に Nucleus アイテムのタイトルに、Amazonから取得した商品名を更新させ、ついでに商品カテゴリも更新するように改造してみたわけです(前置きながっ!)
前回の記事では、プラグイン内で tweetbuzz 提供のAPIを使ってツイート数を表示させてましたが、カウントが不正確なようですので Topsy の API で表示させる事にしました。

今度も API を使うのですが、JSON 利用 ですのでプラグイン内には記載せず、Nucleus のテンプレート等に javascript を記載していく形を取りました。変更箇所は下記になります。
http://www.mksmk.jp/nucleus/item_138.html

ツイートボタンを表示させるプラグイン、NP_TwitterButton*1を改造して、短縮URL(bit.ly)でツイート出来るようにして、ツイートされた数を表示させるようにしました。

改造箇所は以下になります。
http://wa.otesei.com/item/239

また cgi のカウンタが久々に壊れてしまって、自分のカウンタならまだいいけど、他の人が運営してるブログのカウンタが壊れたら復旧が厳しいな……と思ったので、MySQLでカウントを保管することを考えた結果、Nucleus のプラグインを導入しました。

Nucleus だったら、別プラグインにより DB が自動的に定期的バックアップされるので、万が一カウンタが狂ったとしても、かなり近い値に復元できる、と思ったからです。

このプラグインは、NP_Counter の複数ブログ対応版なので、ブログごとの値設定以外は NP_Counter と同様の設定だけで大丈夫です。個人的にてまどった部分を以下に記載しておきます。
http://japan.nucleuscms.org/bb/viewtopic.php?p=18740#18740

パンくずリスト作成プラグインの NP_ItemNaviEx ですが、サブカテゴリ選択状態でもアーカイブリストをクリックしたら未選択の状態になってしまうなぁ、と思って調べてたら微妙にバージョンアップしてたのに今頃気付きました。

最新版のダウンロードですが、フォーラムのスレッドの最初ではなく途中にあるもの(ファイル名が NP_ItemNaviEX_hscFix.zipで、バージョンが0.993ではなく、0.933.1となってるもの)がバグフィックスがされてるようなので、こちらを使いました。

幾つか修正した部分がありますので、以下に記載していきます。
http://japan.nucleuscms.org/bb/viewtopic.php?t=2285

Nucleus では、日時を変更しただけではなく「日時を指定して追加」や「タイムスタンプを更新」のラジオボタンもクリックしておかないと、そのまま追加・保存をしてしまうと変更した日時は無かったことにされるので不便です。

そこで、日時を変更したら自動的に javascript でラジオボタンも変更するように、管理画面を修正しました。なお、NP_znCustomAdmin を導入してるので、各ブログの設定画面の変更を行いました(通常は Nucleus のテンプレートファイルを変更しますが、ソース変更するところは同じ記述のところになります)。

追加時
<input id="inputyear" name="year" tabindex="63" size="4" value="<%currenttime(year)%>" onchange="document.forms[0].act_future.checked=true;" />年
<input id="inputmonth" name="month" tabindex="64" size="2" value="<%currenttime(mon)%>" onchange="document.forms[0].act_future.checked=true;" />月
<input id="inputday" name="day" tabindex="65" size="2" value="<%currenttime(mday)%>" onchange="document.forms[0].act_future.checked=true;" />日
<input id="inputhour" name="hour" tabindex="66" size="2" value="<%currenttime(hours)%>" onchange="document.forms[0].act_future.checked=true;" />時
<input id="inputminutes" name="minutes" tabindex="67" size="2" value="<%currenttime(minutes)%>" onchange="document.forms[0].act_future.checked=true;" />分


変更時
<input id="inputyear" name="year" tabindex="63" size="4" value="<%currenttime(year)%>" onchange="document.forms[0].act_changedate.checked=true;" />年
<input id="inputmonth" name="month" tabindex="64" size="2" value="<%currenttime(mon)%>" onchange="document.forms[0].act_changedate.checked=true;" />月
<input id="inputday" name="day" tabindex="65" size="2" value="<%currenttime(mday)%>" onchange="document.forms[0].act_changedate.checked=true;" />日
<input id="inputhour" name="hour" tabindex="66" size="2" value="<%currenttime(hours)%>" onchange="document.forms[0].act_changedate.checked=true;" />時
<input id="inputminutes" name="minutes" tabindex="67" size="2" value="<%currenttime(minutes)%>" onchange="document.forms[0].act_changedate.checked=true;" />分


つまり、onchangeイベント時に、変更先ラジオボタンの id を指定して、値を変えているわけです。追加の時は id=act_future で、変更の時は id=act_edit となっているので要注意です。
1 2 3 4... > >>
Home | PageTop | RSS2.0 | ATOM