updateplugin.inc.php

Top > Plugin > updateplugin.inc.php
First Edition. 01/11/2006
Last Modified. 01/11/2006

プラグインアップデート支援プラグイン

Developersonots
First Edition01/11/2006
LicenseGPL
Table of Contents

概要

プラグインの更新を支援するプラグインです。

ダウンロードURLを登録し、一括で、ファイルが更新されていればダウンロード、アップデートすることができます。 従来の、一度ローカルにダウンロードし ftp でアップロードする、という手間も省けます。

管理者権限を必要とします。まだアルファ版。将来的には zip 対応予定。

技術的詳細

対象ファイルが新しいかどうかは、HTTP の Last-Modified ヘッダを可能なら使用して判断します。

Pukiwiki の attach プラグインは Last-Modified ヘッダを出力してくれません(デフォルトで対応していただきたい所です)。 苦肉の策として、index.php?plugin=attach&pcmd=info&file=ファイル名&refer=ページ名 のようにアクセスした際に表示される情報ページから更新日付を取得しています。

そのほかの CGI や PHP 経由のダウンローダではおそらく時刻の取得に失敗します。Last-Modified が出力されるかどうかによります。時刻の取得に失敗した場合、現在時刻を使用します。実際は更新されていなくても、更新されているものと見做してしまいます。

将来的にはダウンロードURLを直接ではなく、update.rdf のような rdf (xml) ファイルを用意してもらい、そのファイルに更新日付や、ダウンロードURLを記述してもらえれば良いかと考えています(firefox 拡張の真似)*1

cache/updateplugin.dat というファイルに前回更新日時などのログが保存されます。

使い方

ファイルを上書きできるように plugin ディレクトリ、かつ内部のファイルに書き込み許可を出してください。Pukiwiki Plus! の場合は extend/plugin ディレクトリに書き込み許可を出してください。

index.php&cmd=updateplugin のようにアクセスします。

例:cmd:updateplugin

TIPS

まだ UI が洗練されていないので説明。

  • Subscribe & Update
    • プレビューの時点で中止すると、登録だけになります。
    • URL だけの場合、ファイル名を自動補完します。その際 lsx.inc.php.3 のようなものは lsx.inc.php に修正されます(.inc.php の後ろを削除)
    • ファイル名、内容、の組み合わせでもアップロードできます。が、URL がなければ一括更新に利用できません。
    • ファイル名だけを入力すると、現在ファイルの内容を覗けます。
  • Update each if new
    • ファイル名のテキストボックスを空にすると、リストから削除されます。
    • テキストボックスを編集すると、リスト更新できます。実際にアップデートしなくてもよいです。

Download

Save from right-click, and put into plugin directory.

updateplugin.inc.php

What's new

viewcvs

初期データサンプル

拙作のプラグイン群を初期データとしていれておきました。 含まれていないものは特に個人的にも使用していないプラグイン達と思ってください。

右クリックから cache ディレクトリに保存し、書き込み許可を出しておいてください。

updateplugin.dat

What's new

viewcvs

To Do

  • 将来的にはプラグインを管理するプラグインに発展したらいいなぁなんて。
    • 本体も改造しないといけない。
    • プラグインデータベースサーバも必要。
    • ただの一覧なら本家で十分か。
  • ダウンロードファイルを直に指定するのではなく、update.rdf を指定する。
    • update.rdf に更新日時や、ダウンロードURLが記述される。
    • firefox の真似。
    • XML 解析器が必要になる・・・。
    • プラグイン製作者が手軽に用意はしにくそう・・・。
  • zip 対応。おもむろに解凍する
    • tar.gz, tar.bz2 はとりあえず保留
  • php の関数を単純に使うと Forbidden になるサイトがある。例:upk さんのサイト。なぜ?
  • 一括更新にぷれヴゅーをつけたが、一度待つのはわずらわしいかも。
  • 以前の版を .1 のようにリネームしてよけておく


*1 問題は update.rdf を用意してもらえるほどこのプラグインがスタンダードになるかどうか