NP_Amazon を使われてる方は割と多いと思うんですが、こんなカスタマイズが必要な人は殆ど居ないんじゃないだろうか、ってな自分用改造を行いました。
現在、Nucleus で別ブログにて購入したりレンタルしたり手にしたりしたものを、コメントもなくひたすら記録しているんですが(その名も「手にしたものを淡々と記録するよ」)、自作業の手間を省くために、記事タイトルは入力しないでいました。
amaz-in-g-monkey スクリプト で表示される NP_Amazon 用のタグだけコピーして、記事本文にタグをペーストするだけで済ませてました。基本的に感想とか書く気が無くてひたすらモノを羅列していくだけだし、とにかく入力コストを下げたかったんです。だいたい、記事見れば商品名あるからタイトル無くても問題ないじゃん、って思ってたのです。
ただこれだと、RSS配信する時にタイトルが空なので困ります。ました。のでRSSは用意してなかったんですが、モノブログのRSSをツイッター連携して、手にしたモノを自動的にツイートしたくなってきたのです。
そういうわけで、ブログ記事本文に NP_Amazon タグを入力して新規追加した時だけ、自動的に Nucleus アイテムのタイトルに、Amazonから取得した商品名を更新させ、ついでに商品カテゴリも更新するように改造してみたわけです(前置きながっ!)
下記のように追加すれば大丈夫です。
NP_Amazon の function newData($product) 内 $res = @mysql_query($sql); if(!$res) return 'Could not save data, possibly because of a double entry: ' . mysql_error(); //20101122_takehana_add_s if($blogid == 7){ //記事ID $itemid = $this->currentItem->itemid; //カテゴリ $catalog = $product[catalog]; if ($catalog == 'Book'){ if ($product[media] == 'コミック'){ $catid = '78'; } else { $catid = '79'; } } elseif($catalog == 'Video Games' || $product[media] == 'Video Games') { $catid = '80'; } elseif($catalog == 'DVD') { $catid = '83'; } elseif($catalog == 'CE' || $catalog == 'Personal Computer') { $catid = '84'; } elseif($catalog == 'Music') { $catid = '81'; } else { $catid = '82'; } //itemを更新 $sql = 'UPDATE '.sql_table('item') . " SET ititle='" . addslashes($product[title]) . "'," . " icat='" . $catid . "'" . " WHERE inumber='" . $itemid ."'"; mysql_query($sql); } //20101122_takehana_add_e }
ソースについて補足します。ブログIDが7かを判定してるのは、モノブログの時だけアイテムのタイトル更新をさせたいからです。あと、Amazonの商品カテゴリを判定して、モノログのカテゴリIDへ更新するようにしています。ブログ設定に応じて、値を読み替えていただく必要があります。
なお、NP_Amazonテーブルに新データが追加された時だけ、上記の動作をします。つまり、記事内で NP_Amazon タグを記載して保存するだけでなく、記事を実際に表示させた時に、新データだった場合にタイトルやカテゴリのアップデート処理が走ります。よって同じ商品をモノログに追加しても、新データではないからタイトルは空白でカテゴリもデフォルト指定のままとなりますので、ご注意ください。
多少手間はかかりましたが、手間を減らすための手間は惜しんではいけませんね。これでかなり楽になったと思います(あくまで気分的に)。
コメント