2006/06/29(木)CreateFile
仕様変更。親フォルダに指定するのは、各ユーザのホームディレクトリからの相対パス。
以下の場合、エラーとなります。
- パスの中に、親ディレクトリを示す..が含まれていた場合 \実際にはきちんとしたユーザのディレクトリの中であろうと、..が含まれていた時点でエラーです
- ファイル名の中に/が含まれていた場合 \ファイル名に/が含まれてはいけません。\({\}もテストすべき?)
- 連番でファイル名をテストする時、4桁以内の数値で収まらなかった時\ファイル名がfile.jpgであった場合、file_9999.jpgまではテストしますが、file_10000.jpgをテストする前にエラーを返します。
また、返り値 realname には実際に生成されたホームディレクトリからのパスを含むファイル名が入ります。
user: serika gallery: temp image: test.jpg CreateFolder("temp", "test.jpg", realname) realname -> "temp/test.jpg"
2006/06/25(日)プラグイン::ロード順
プラグインは,ファイル名を辞書式にソートした順でロードされます.
そのため,アーカイブの展開プラグインや,画像のサムネイルを作成するプラグインではファイル名の指定が重要になります.
例えば,汎用サムネイル作成プラグインは,すべての形式に対して有効であるため,先にロードされるファイル名であると,その後ロードされたサムネイル作成プラグインが無効となってしまいます.
2006/06/24(土)プラグイン::サムネイル作成
サムネイル作成プラグインは,プラグイン汎用関数の他,IsAccept関数,MakeThumbnail関数,ImageSize関数を実装しなければならない.
- int IsAccept(const char *path, const void *header)
pathで指定されたファイルを処理できるか返す関数.
処理できる場合は,0以外の値 を返し,処理できない場合は,0 を返すこと.
headerには,pathで指定されるファイルの先頭 128byte が入っている.
ただし,128byteに満たないファイルの場合,余剰部分に入っているデータは未定義である. - size MakeThumbnail(const char *in, const char *out, int width, int height, int reserved)
inで指定されたファイルのサムネイルを作成し,outで指定されるファイルに保存する関数.
サムネイルのサイズは,幅width pixel,高さheight pixel以内で作成すること.
返値は,作成したサムネイルのサイズをsize型のオブジェクトで返すこと.
サムネイルの作成に失敗した場合,size.x = size.y = 1のsizeオブジェクトを返すこと. - size ImageSize(const char *img, const void *header)
imgで指定されたファイルの画像のサイズを返す関数.
headerには,pathで指定されるファイルの先頭 128byte が入っている.
ただし,128byteに満たないファイルの場合,余剰部分に入っているデータは未定義である.
返値は,サムネイルのサイズをsize型のオブジェクトで返すこと.
画像サイズが不明である場合,size.x = size.y = 1のsizeオブジェクトを返すこと.
sizeクラスの定義は以下の通りである.
class size { public: int x; int y; size(int nx = -1, int ny = -1) { x = nx; y = ny; }; ~size(){}; };
後々,size MakeThumbnailFD(const char *in, int out, int width, int height, int reserved)
関数との選択式にする予定.
こちらの関数は,outで指定されるファイルディスクリプタにサムネイルを出力する.
2006/06/11(日)プラグイン::認証
認証プラグインは,プラグイン汎用関数の他,IsAuthenticated関数を実装しなければならない.
- int IsAuthenticated(void);
現在のユーザが認証済みであるか返す関数.
認証済みであれば,0以外の値 を返し,未認証であれば,0 を返すこと.
2006/06/11(日)プラグイン::一般
プラグインは,最低限以下に上げる関数を実装しなければならない.
- int IsEnable(void);
プラグイン自体が有効か示す関数.
プラグインが無効ならば 0 ,有効ならば 0以外の値 を返すこと - int Type(void);
プラグインのサポートする種類を返す関数.
返値は,CPlugin内において定義されているENUM値の論理和である必要がある.
例えば,機能拡張,ページ拡張の2つの機能を持つプラグインの場合,ENUM値 サポートする機能 AUTH 認証 IF サムネイル作成 AX アーカイブ展開 EXT 機能拡張 PEXT ページ拡張 PV 画像表示
int Type(void){ return CPlugin::EXT | CPlugin::PEXT; }
となる
- const char *Info(void);
プラグインの説明文. - const char *Name(void);
プラグインの名前.
2006/05/30(火)プラグインの種類
- 認証
他のプラグインを利用するための認証プラグイン.
実際に実装するのは,開発の後期になってからだと思う. - サムネイルの作成
アップロードされた画像からサムネイルを作成するためのプラグイン.
サムネイルは,jpeg限定.オフィシャルでは,GIF,JPEG(libexifによる埋め込みサムネイルへの対応),PNGの3種類のプラグインを配布する予定. - アーカイブの展開
アップロードされたアーカイブを展開するためのプラグイン.
実際には,ファイルをアップロードするためのプラグインから,逐次解凍するために利用されることになる.zip展開プラグインを配布する予定. - 機能拡張
アルバム本体とは直接関係ない機能を追加するためのプラグイン.
フォルダの作成と1行掲示板のプラグインを配布する予定. - ページ拡張
アルバムの各ページにおいて機能を拡張するためのプラグイン.
画像のアップロードや,画像の移動といった,画像に関するプラグインがメイン. - 画像表示
各ページにおいて,サムネイル画像を表示するためのプラグイン.
このプラグインが無いと,アルバムの各ページにおいて画像を表示することができない,画像のみのサムネイル表示,画像のタイトルなどの情報を含めたリスト表示,一枚ずつ画像を表示するスライドショーの3つのプラグインを配布する予定.