Nucleusではitemidの生成にMySQLのAUTO INCREMENTを使っているので、エントリを削除するとそのエントリ番号は欠番になり、後からエントリを追加してもその番号が埋まることはありません。
エントリの番号が飛んでいても、別にどうということはないので殆ど自己満足にすぎないのですがが、今日はちょっと一手間かけて、その番号のエントリを回収してみました。ちょっと副作用の心配がありますが、いまのところは大丈夫そうです。
これからしばらくは、itemidがものすごく若かかったりしますが気にしないでください。
Nucleusにはエントリをドラフト(下書き)にしておく機能があります。ドラフトになっているエントリは管理画面から必要に応じて公開することができるようになっているのですが、Nucleusにはなぜか公開してしまったエントリをドラフトに戻すという機能がありません。このため、エントリを誤って公開してしまった場合には、日付を未来にするか、エントリを削除する必要があります。
† NP_MoveToDrafts
これがちょっと不便だったわけですが、エントリをドラフトに戻すことができるプラグインが本家のフォーラムにあることが分かりました。NP_MoveToDraftsというようです。これをインストールすると、エントリ編集時に画像のようなチェックボックスが表示されるようになります。これをチェックしてエントリを保存すると、エントリが下書きに戻せます。
これ、本家のプラグイン一覧に載ってないんですよね。盲点でした。
先日、Adsenseの代替広告で出るAmazonアフィリエイト(AA)をNP_MetaTagsを使って擬似コンテキストマッチにしたと書きましたが、これがちょっといけてないことに気づきました。というのも、内容がニッチすぎるエントリーが多いのせいなのかもしれませんが、結果が表示されないページが結構あるのです。
だからといって内容を書き換えるわけにもいかないので、コンテキストにマッチするAAが見つからない場合には、Amazonのベストセラーから適当に商品を表示するようにしてみました。代替広告の代替広告というわけです。
どうやらこんなエラーが出るらしいです。とりあえずメモ。
Warning: fopen(): SAFE MODE Restriction in effect. The script whose uid is 10619 is not allowed to access /virtual /youraccount /public_html /blog /media /6 owned by uid 1000 in /virtual /youraccount /public_html /blog /nucleus /plugins /NP_Moblog.php on line 607
Warning: fopen( /virtual /youraccount /public_html /blog /media /6 /4297dd03150e9-04-04-19_03-36.jpg ): failed to open stream: No such file or directory in /virtual /youraccount /public_html /blog /nucleus /plugins /NP_Moblog.php on line 607
Warning: fputs(): supplied argument is not a valid stream resource in /virtual /youraccount /public_html /blog /nucleus /plugins /NP_Moblog.php on line 608
Warning: fclose(): supplied argument is not a valid stream resource in /virtual /youraccount /public_html /blog /nucleus /plugins /NP_Moblog.php on line 609
Warning: Division by zero in /virtual /youraccount /public_html /blog /nucleus /plugins /NP_Moblog.php on line 635
セーフモードがどうか判断して、何らかの処理をした方がいいのかな。そろそろv1.6もリリースしないと。
このblogに掲載しているGoogle Adsenseはコンテキストマッチ広告と呼ばれるもので、特定のJavaScriptをスキンに貼り付けることでページの内容に沿った広告が自動的に表示されるようになっています。通常のアフィリエイトと違って、メンテナンスフリーでページごとに最適な広告が表示されるので重宝しています。
ただ、AdSenseには該当する広告がない場合もあります。そのときにはAmazonの代替広告が表示されるように指定していたのですが、Amazonの代替広告はページに合った内容を自動的に表示してくれないのでほぼ意味がないようなものでした。
これまでNP_Moblogについてはまとまったマニュアルを書いていなかったのですが、次期バージョンからはある程度の情報を網羅したものを同梱しようと思っています*1。
その初稿がやっと出来上がりました。
・NP_Moblogマニュアルβ
Google Sitemaps (BETA)が始まったようです。
blogkidさんのエントリではMT用のスキンである「Niall Kennedy's Weblog: Google Sitemaps using Movable Type」が紹介されていたので、これに刺激を受けてNucleus用のスキンを作ってみました。
ダウンロードはこちら[sitemap_skin_050606.zip][1124clicks]
ちなみにcles::blogのsitemap.xmlはこんな感じ。
「NP_Moblogを1.2以降にしたら動かなくなった」という報告自体はいくつかのサイトで報告があることは確認しているのですが、動かない原因の追求が進まないままになっていました。これは自分の環境で再現できない類の不具合で結局手の出し方がわからなかったことと、詳細情報がなかなか集まらないということが原因でした。
ところが、今日ひとつ解決の糸口を発見しました。
モブログ用プラグインをNP_HeelloWorldからNP_Moblogへ移行。設定する場所が「プラグイン管理」から「あなたの設定」に変わっていた。戸惑いつつ設定。試しにメールを送ってみると、
Fatal error: Call to undefined function: is_a() in /..../nucleus/plugins/moblog/PEAR.php on line 250なんてエラーが。。"
ここまで詳細*1に不具合を乗せてもらえると開発者としては非常に助かります。これで、ウチにトラックバックのひとつでもしていただければ、本当にパーフェクトでした。hisさんに感謝です。ソフトウェアを作らない方にはピンとこないかも知れませんが、たったこれだけのことで直せないバグも直せるバグになるのです。
ちょっと時間ができたので、3.2J-RC2にアップデートしてみました。
フォーラムに公開されている アップグレードパッケージを使ってみたのですが、3.1+CVS1という変なバージョンからのアップデートだったので、DBのアップデート時にちょっとエラーが出たりした*1のですが、それ以外は何事もなくアップデートすることができました。
標準添付のスキンもかっこよくなりましたし、いい感じですね。
うちにもとうとうやってきました。話題のコメントスパムが。とりあえず、NP_Blacklistを入れておいたおかげでログがちょっと残っただけでしたけど。
† もしかして手動なの?
ちょっと疑問なのはそのスパムはおそらく手動なんじゃないかということです。ご存知の通り、ウチのサイトはNP_Captchaを使っているので、非メンバーの場合には画像の文字をフォームに打ち込まない限りコメントが登録できないようになっているんですよね。
単なるいたずらなのか、はたまたそれでも採算が取れるのか。正直よくわかりませんけど、迷惑には変わりませんね。