ギャラリースクリプト imagelist.cgi の配布と解説
自分とこの Painter ギャラリーの「倉庫」用に imagelist.cgi という Perl スクリプトを作成しました。
いちいち HTML ファイルを作らずに、フォルダに絵のファイルをブチこんでおいて、「不親切かもしれませんが、勝手に見てください」という見せかたをするための、要するに手抜きするための、スクリプトです。ファイルを増やしたり減らしたりしても、書き換える必要があるものはありません。(できればコメントファイルは編集したほうが親切。)
で、作ってから周囲を見回すと、あまりこういった種類の Perl スクリプトが落ちてない。じゃ、せっかく作ってしまったので、公開しとこ、ということです。それだけです。
環境に合わせて適当に改造してお使いください。手間がかからないように背景と矢印画像もまとめて ZIP ファイルに圧縮しました。使用に際して、こちらにリンクを張るなどの義務はありません。(たかが正味 80 行ばかりのスクリプトです。)
[ imagelist.zip ]
このスクリプトは 【 Painter ギャラリー 倉庫 】 ( 【 英語版 】 もあります)で実際に使用しています。自分でそれなりに便利なように考えたので、こういう利点があります。
- ファイル名を何かに合わせて変更したりしなくていい。
- いちおうそれぞれの画像に短いコメントがつけられる。リンクのマークにも title 属性でコメントを添えてあるので、カーソルを合わせると画像を開く前にコメントが読める。
- 画像表示が「横並び」で、次の画像を見るためにリストに戻る必要がない。
- いま見ている画像が、リストの中で「どれ」なのかが、マークの色違いでわかる。
- ナビゲーション案内文も、ジャマなので、最初の画面だけ表示して、あとはなし。
必要なファイル
上の ZIP ファイルには CGI スクリプト本体と、スクリプトが表示に使用する背景と矢印画像が入っています。このほかに、次のものが必要です。
- 専用のフォルダに入れた JPEG ファイル。拡張子は jpg のもの。
- 同じフォルダに入れた filelist.dat ファイル。
JPEG 画像ファイルの名前は、英数半角で空白を含まない、という前提です。ウェブにアップロードする場合、たいていはこのようになっていると思いますが、注意してください。
filelist.dat はローカルでテキストファイルとして作成します。テキストコードは Shift JIS にしておいてください。(Windows や Macintosh での通常のコード。) このファイルに、このフォルダにあるファイルに対応させて、「ファイル名 + tab + コメント(日本語可)」で 1 行というデータを作成します。ファイル名が完全に一致しないとコメントが表示されないので、ここは間違えないように。
しかし、filelist.dat を作るのも、それなりに面倒だったりしますので、filelist.dat がない場合はコメントとしてファイル名を表示するようにしてあります。また、filelist.dat の中でコメントの記述がないファイルがあっても、コメントが表示されないだけで、エラーにはなりません。逆に、存在しないファイルについてのコメントは、単に使用されないだけです。
作成した filelist.dat は JPEG 画像ファイルやスクリプトファイルとともにアップロードしておく必要があります。filelist.dat はテキストモードで転送してください。また、CGI スクリプトではどれでもそうですが、1 行目の Perl のパスは環境に合わせる必要があります。スクリプトファイルと、このスクリプトファイルが入っているフォルダの「属性」も実行可能なものに変更します。また、filelist.dat はスクリプトからのみ参照できる属性(644 とか 600)にしておいたほうが安心です。スクリプトはセミコロン 1 つ足りなくてもエラーになり、サーバーに迷惑をかけますので、アップロードする前に、【 お絵かき掲示板をローカルで 】 にあるような方法で、自分のパソコンでじゅうぶんテストしてください。
動作の制限
このスクリプトは、スクリプト内で「相対パス」で指定したフォルダひとつだけの内容を表示できます。オプションを指定することで他のフォルダの画像ファイルも表示できるバージョンを作ったのですが、そういうスクリプトからは、閲覧者がパスを推測して指定することで、サイト内のどのフォルダの画像ファイルもすべてリストできてしまうので、ウェブ上での使用にはいろいろ問題があると気づき、ボツにしました。
複数のフォルダの内容表示をしたいときは、スクリプトを別名でコピーして、スクリプト内の「スクリプト名」も合わせて変更して使ってください。表示するファイルのあるフォルダがスクリプトのあるフォルダと同じときは、フォルダ指定は $folder = '.'; とします。
実際の使用とカスタマイズ
カスタマイズの必要な部分は、スクリプト内にコメントで表記してありますので、それを読んで適当にやってください。サポートはしてません。
かぶら屋 はまだ Perl に不慣れなので、バグがあるかもしれません。他の報告はともかく、バグは教えてくださいね。
(Last Modified: 2003/06/25)
|