更新通知タグの投稿
JSeries 更新通知プラグイン 0.9.5 リリース
WordPress Plugins/JSeries 用更新通知プラグイン「JSeries Notifier」のバージョン 0.9.5 をリリースしました。0.9.0 からの変更点は以下の通りです。
- WordPress 2.9 以降で「利用できるアップデート」にリストされるようになりました。WordPress 2.8 では技術的な理由により対応していません。
- WordPress 2.9 以降では、プラグインを停止しているときでも説明が日本語で出るようにしました。
今回は WordPress 2.9 対応を強化しました。WordPress 2.9 では、プラグイン管理パネルの「利用可能なアップグレード」にリストされるようになっています。

JSeries 更新通知プラグインのバージョン 0.9.0 リリース
WordPress Plugins/JSeries 用更新通知プラグイン「JSeries Notifier」のバージョン 0.9.0 をリリースしました。変更点は以下の通りです。
- 6月17日に実施された SourceForge.JP の新規リリースレイアウト変更により、更新通知がされなくなった不具合に対応しました。
- WordPress 2.8 で適切なスタイルで表示されるようにしました。
- WordPress 2.8 以降の場合、サーバーがプロキシーの中にあっても更新通知が行なわれるようになりました (wp-config.php で WP_PROXY_HOST などの設定が必要)。
- WordPress 2.7 以降の場合、プラグインの説明が日本語で表示されるようになりました。
- SourceForge.JP のリニューアルなどでプラグイン最新情報が取得できない場合、エラー表示を出すようにしました。
今回は、SourceForge.jp のリニューアルにより更新通知ができなくなっていた不具合修正および WordPress 2.8 対応です。今バージョンから、SourceForge.jp の最新リリース情報をうまく読めない場合はエラー表示をするようになりましたので、更新がない場合との区別が付くようになります。

JSeries 更新通知プラグインのバージョン 0.8.4 リリース
WordPress Plugins/JSeries 用更新通知プラグイン「JSeries Notifier」のバージョン 0.8.4 をリリースしました。変更点は以下の通りです。
- WordPress 2.7 で、更新通知がローカライズされるように修正しました。
今回は、WordPress 2.7 対応です。ついでに、アーカイブ形式を tar.bz2 から zip に変更してみました。単にローカライズ文字列を変更するだけなら簡単だったのですが、そうすると不具合が出てしまった (thickbox によるボップアップウィンドウが出てロード中のままとなる) ため、対応する方法を検討していてリリースが遅くなりました。結局、ローカライズ文字列から「class=”thickbox”」を削除するという安直な方法で回避しました。

JSeries 更新通知プラグインのバージョン 0.8.3 リリース
WordPress Plugins/JSeries 用更新通知プラグイン「JSeries Notifier」のバージョン 0.8.3 をリリースしました。変更点は以下の通りです。
- 9月18日に実施された SourceForge.JP の文字コード変更 (UTF-8化) によって動作しない不具合を修正しました。
9月1日の SourceForge.JP リニューアルに対応したと思ったら、9月18日に文字コードが EUC-JP から UTF-8 に変更されたため、JSeries Notifier が動作しなくなってしまいました。今回のバージョンアップも、本プラグインが検知できないため、WordPress に関するウェブログを書いている方は、できれば記事にして頂けると幸いです。
もしくは、JSeries Notifier 自体は、WordPress のプラグインディレクトリーに入れた方がいいかも?? 0.9.0 にするときは、それも含めて検討してみます。

JSeries 更新通知プラグインのバージョン 0.8.2 リリース
WordPress Plugins/JSeries 用更新通知プラグイン「JSeries Notifier」のバージョン 0.8.2 をリリースしました。変更点は以下の通りです。
- WordPress 2.6 で動作しない不具合および、SourceForge.JP のデザイン変更によって動作しない不具合 (WordPress のバージョン問わず) を修正しました。
WordPress 2.6 で動かないという報告があったため、しばらく調査していました。その間に SourceForge.JP のサイトデザインも変更されてしまい、どの WordPress でもアップデート通知が効かなくなってしまったので、両方の修正を盛り込んだリリースとなりました。すなわち、今回のアップデートは JSeries Notifier での自動検出ができません。ということで、バージョン体系を x.yy から x.y.z という表記に変更しました。アップデート通知が有効な場合にこういう変更をすると、0.81 の方が 0.8.2 よりも新しいと判断されてしまうため、よくないですが、そうではないため問題ないわけです。
このため、WordPress 関連のサイト運営者のみなさんには、「JSeries Notifier がアップデートされたこと」を記事にして頂けると幸いです。

JSeries 更新通知プラグインのバージョン 0.81 リリース
WordPress Plugins/JSeries 用更新通知プラグイン「JSeries Notifier」のバージョン 0.81 をリリースしました。変更点は以下の通りです。
- WordPress 2.5 に対応しました。更新通知が英語になっていましたがローカライズされるようにしただけです。
WordPress 2.5 のプラグイン自動更新に対応しようと思いましたが、とりあえず、更新通知の文言が英語になってしまう問題に対処することにしました。自動更新への対応は、可能かと思っていますが、すぐには無理そうです。

WordPress 2.5のプラグイン自動アップデートへの対応をどうするか
拙作プラグインのうち、Ktai Style, Lightweight Google Maps は WordPress 2.5 での動作を確認ずみですが、他のものはまだです。実は、JSeries Notifier は、動作するものの、更新通知表示が英語のままであるという問題があります。WordPress 本体のローカライズ文字列が変更になったためです。対応するには、WordPress のバージョンを判別して、それぞれに合わせた文字列を使えば OK です。
しかし、実際にはそれでは十分ではありません。なぜなら、WordPress 2.5 の更新通知には「自動アップデートする」というリンクが含まれるからです。ところが、JSeries のプラグインがすべて自動アップデートに対応しているかというと、必ずしもそうではありません。残念なことに、Ktai Style はそのファイル構成上、対応していません。
WordPress 2.5 の自動アップデートは、一時フォルダにプラグインの展開を試みて、成功すれば稼働中のものと入れ替える仕組みです。ところが、Ktai Style は、プラグインの内部にユーザーの自作テーマを入れられるので、この手順でアップデートされると、その自作テーマが消えてしまいます。(JSeries ではありませんが) Mobile Eye+ も、設定ファイルをプラグインフォルダーの内部に生成するので、自動アップデートすると設定ファイルがなくなります。
自動アップデートに対応するには、ユーザーの自作テーマを wp-content/plugins/ktai_style/themes/ ディレクトリーの外に保存させるしかありません。wp-content/ktai-themes/ ないしは wp-content/themes/ktai/ というディレクトリーを作ってもらって、そこに保存するとかの手を検討してみますが、分かりやすさが落ちますよね……。
プラグインの自動アップデートが、既存のものに上書きする仕組みならば自作テーマは消えませんが、上書きだと、余分なファイルが残ったり、展開に失敗したときの復旧が困難という問題があるので、そういう仕組みに変わる可能性は低いでしょう。
余談ですが、Yuriko.Net を収容しているサーバーは FTP が使えない (SSH/SCP/SFTP のみ) ため、自動アップデートは使えません。自動アップデートが FTP のみというのは、2008年の設計ちゃうやろ〜〜と思いますが、SFTP に対応するとなると大変そうです。対応してほしけりゃ自分でパッチを書いて送るしか
[追記] そもそも、Ktai Style をはじめ、わたしがリリースしたプラグインはすべて tar.gz もしくは tar.bz2 型式なので、自動アップグレードに対応していません。アーカイブの展開は unzip_file() しか行なってないので、zip 型式以外はそこでエラーになりそうです。でも、zip 型式は好みじゃないし、Mac OS X からクリーンな型式で吐き出すのは面倒なんですよね (普通に操作すると __MACOSX__ というフォルダーができてしまう)。

JSeries 更新通知プラグインのバージョン 0.80 リリース
WordPress Plugins/JSeries 用更新通知プラグイン「JSeries Notifier」のバージョン 0.80 をリリースしました。変更点は以下の通りです。
- バージョン番号の比較を PHP 関数 version_compare() を使うように変更しました。これにより、「4.3.2RC1」「1.0.0-alpha」などのようなバージョン番号でも、うまく比較できるようになりました。
ここで告知しなくてもみなさんの管理パネルで告知されるはずですが、バージョンアップをお願いいたします。

WordPress Plugins/JSeries 更新通知プラグインリリース
さきほど、WordPress Plugins/JSeries 用更新通知プラグイン「JSeries Notifier」をリリースしました。WordPress 2.3 以降において、WordPress Plugins/JSeries のプラグインがアップデートされたことを知ることができます。半月ほど前に作成を検討していて、なんとか動くようになりました。これで、「Ktai Style のバージョンアップに気がつかなかった」ということがなくなるでしょう!!
なお、現状では、管理画面でプラグイン一覧を見たとき、SourceForge.JP ウェブサイトの HTML を取得してバージョン情報を読み取るというアドホックな設計になっています (ただし1日1回だけ)。本当ならば、SourceForge.JP に API サーバーを設置して、REST か何かで情報をやりとりするのがいいのですが、そういう仕組みを作るのが面倒なので、手抜きしています。今後検討してみます。
これで、Ktai Style 0.97 をリリースすれば、多くの人に最新版を使ってもらえるかな??
[追記] バージョン 0.80 をリリースしました。また、「Notifier」のスペルミスを直しました (配布物は正しいスペルです)。
[追記] 最新版はもっと新しくなっています。

WordPress Plugins/JSeries 用更新通知プラグインを作るか
WordPress 2.3 にはプラグインの更新通知機能があるのですが、その対象は WordPress extend に登録したものだけです (そうですよね?Matt の発言で確認)。したがって、拙作の Ktai Style, Weather Journal, Force Wave Dash などは、更新されても通知されません。それでは不便なので、WordPress Plugins/JSeries に登録したプラグインを対象とした更新通知プラグインを作ってみようかと検討しています。
そのとき問題になるのは次の点です。
- プラグインの名前
- 各プラグインの最新版数の取得方法
- WordPress のバージョンごとに利用できるプラグイン版数が違う場合の処理
プラグインの実装うんぬんよりもまず「名前」を決めるのがわたしのスタイルです;-) いい名前を作ることで、プログラミングもはかどるものです。WordPress プラグインの命名ルールは次のようにしています。
- 英数字記号のみとする
- 頭に「wp-」はつけない
- キャメルケースは使わない
- 検索エンジンで候補とする名前を検索して、固有名詞として存在しないことを確認する
「wp-mta」は2番目のルールから外れるのですが、インストールの都合でスクリプトのファイル名を wp-mta.php とせざるを得ないため、名前もそうしました。
さて、更新通知プラグインの名前は「JSeries Notifier」ぐらいが適当でしょうか。この名前だと、更新通知のみならず、新規登録されたプラグインも通知していいかもしれませんね
名前が決まればあとは実装ですが、プラグインの最新バージョンの取得は「リリースファイル・リスト」を読み取るぐらいしかなさそうです。RSS 配信される「最新リリース情報」だと古い情報は出てきませんし……。どちらにしても、WordPress のバージョンによってプラグインの使用可能バージョンが違う場合に、うまく制御できません。どうせ WordPress 2.3 のプラグイン更新通知もそういう制御ができてないので、無視してしまいますか……。
[追記] ちょっと検索してみると、やはり WordPress Plugins Directory に登録されているものが対象でした。そして、更新チェックは api.wordpress.org への HTTP 通信 (REST もどき?) で行なっていて、そのとき WordPress のバージョンを送信しています。つまり、WordPress のバージョンによってプラグインの使用可能バージョンが違うときの処理も行なわれているようです。ううむ。


上に戻る