ftpクライアントを立ち上げて、写真をアップロードするだけでフォトギャラリーを作れるCGIスクリプトです。
wordpressで写真を表示するためのプラグインもあります。
ダウンロード
EzPhoto
改版履歴
| バージョン |
日付 |
修正内容 |
| 1.00 |
20080526 |
公開 |
サンプルとスクリーンショット

1枚/1ページの例

5枚/1ページの例
Livedoor readerでのRSS表示例

サンプル1
pokosho photo
機能
- 画像をアップロードするだけでギャラリーができます。
- テンプレートを編集することである程度自由にデザインができます。
- RSS(2.0)を配信します。配信内容もテンプレートで編集できます。
- ページングができます。
- 設定を変更することで、1ページに表示する画像の枚数などを変更できます。
- 毎回、新しい画像のチェックを行わず、サーバに優しい(はず)です。
- URLパラメータmode=updateを指定することで即座に更新チェックを掛ける事もできます。
必要な環境
perl5.8以上
文字コードUTF-8を編集できるエディタ(sakura editorなど)
ライセンス
以下のCreative Commons Licenseです(商用利用、改変可(ただし、改変後もここと同じライセンスとします))。

Powered by EzPhotoを消さないで貰えると嬉しいです。
改変内容をお知らせして貰えると嬉しいです。
設置方法
強調表示してある項目が修正が必要なファイルです。
| ファイル/ディレクトリ名 |
説明 |
パーミッション |
| Ezphoto.conf |
主設定ファイルです。タイトル、更新チェック間隔、1ページ内の画像数、テンプレートの場所の指定などを設定できます。 |
644 |
| index.cgi |
indexのcgiです。perlのパスをサーバに合わせて設定する必要があります。 |
755 |
| EzPhoto.pm |
メインモジュールです。 |
644 |
| log4perl.conf |
log4perlの設定です。デバッグ用です。設定を変更すると不可が大きくなるので変更しないでください。 |
644 |
| RequesterMapping.yml |
リクエストとモジュールの対応ファイルです。拡張用です。変更しないでください。 |
644 |
| sample.htaccess |
.htaccessファイルのサンプルです。index.cgiにdirectoryIndexを張ります。RSSファイルのファイルタイプを設定します。使用する際は、名前を.htaccessに変更する必要があります。 |
644 |
| up |
画像をアップロードするディレクトリです(設定で変更可能)。 |
755 |
| その他(ディレクトリ,pmファイル) |
プログラム本体です。 |
644 |
| template |
テンプレートを置く場所です(設定で変更可能)。サンプルのテンプレートが入っています。 |
644 |
EzPhotoのディレクトリのパーミッションは755にしてください。
デザイン方法
下記テンプレートファイル内で、特別な文字列を使ってテンプレートを作成できます。
| ファイル名 |
説明 |
| page.tmpl |
ページ全体の構造を示す。<HTML_HEAD>及び<HTML_BODY>を指定する必要があります。 |
| htmlhead.tmpl |
HTMLヘッダのテンプレートです。 |
| head.tmpl |
ページ上部のテンプレートです。 |
| gallery.tmpl |
画像1枚分のテンプレートです。複数枚表示する場合は繰り返し使われます。 |
| pagerlink.tmpl |
ページャリンクです。<PAGER_START>~<PAGER_END>で囲まれた部分を繰り返し出力し、ページャを作成します。「~」部分では、<PAGER_LINK>を指定できます。 |
| rss.tmpl |
RSS全体のテンプレートです。<RSS_FEED>及び<RSS_ITEM>を指定できます。 |
| rss_feed.tmpl |
RSSのフィード情報のテンプレートです。 |
| rss_item.tmpl |
RSSのitem1つ分のテンプレートです。 |
| update_result.tmpl |
mode=updateを指定したときの結果表示用テンプレートです。 |
置換される文字列
サイト概要
| 文字列 |
説明 |
| <PAGE_TITLE> |
ギャラリーのタイトル |
| <PAGE_DESC> |
ギャラリーの概要 |
| <PAGE> |
現在のページ番号 |
| <LAST_UPDATE> |
最終更新日 |
| <LAST_CHECK_DATE> |
最終更新チェック時刻 |
画像情報
| 文字列 |
説明 |
| <IMAGE> |
画像ファイルへのパス |
| <IMAGE_NAME> |
画像ファイル名 |
| <IMAGE_DATE> |
画像アップロード日 |
| <IMAGE_DATE_RSS> |
画像アップロード日(RFC822) |
| <IMAGE_URL> |
画像のURL |
| <IMAGE_NUM> |
全画像枚数 |
RSS関連
| 文字列 |
説明 |
| <LAST_UPDATE_RSS> |
最終更新日(RFC822) |
| <LAST_CHECK_DATE_RSS> |
最終更新チェック時刻(RFC822) |
| <RSS_FILE> |
RSSファイルへのパス。オートディスカバリに使用。 |
設定読み出し
| 文字列 |
説明 |
| <SITE_URL> |
サイトのURL(EzPhotoの設置場所のURL) |
| <TMPL_DIR> |
テンプレートのディレクトリ |
ページャ
| 文字列 |
説明 |
| <PAGER_PREV> |
前のページへのリンク先 |
| <PAGER_NEXT> |
次のページへのリンク先 |
| <PAGER_START> |
ページャの開始位置を示す。pager.tmplのみで使用可能。 |
| <PAGER_END> |
ページャの終了位置を示す。pager.tmplのみで使用可能。 |
| <PAGER_LINK> |
ページャのリンク先。<PAGER_START>~<PAGER_END>間で使用可能。 |
| <PAGER_NUM> |
ページ番号。<PAGER_START>~<PAGER_END>間で使用可能。 |
その他
| 文字列 |
説明 |
| <HTML_HEAD> |
HTMLヘッダテンプレートの内容に置換される。page.tmplのみで使用可能。 |
| <HTML_BODY> |
HTMLのBODY部分。page.tmplのみで使用可能。 |
| <RSS_FEED> |
RSSのchannel情報。内部用でユーザは使わない。rss.tmplのみで使用可能。 |
| <RSS_ITEM> |
RSSのitem情報。内部用でユーザは使わない。rss.tmplのみで使用可能。 |
FAQ
よくありそうな質問。
- 動かないんだけどッ!
- perlのバージョン、ファイル/ディレクトリの権限を確認してください。mode=updateを指定して、更新をかけてみて下さい。
例:http://設置場所/index.cgi?mode=update
- ちょw バグwww ふざけww
- ごめんなさい。本ページにコメントを書いて貰えると助かります。余裕があったら直して送って下さい…。
- ページャのデザインは変更できないの…? あと現在のページにはリンク出さないで欲しい…。
- ページャの実装は意外と面倒でして…。要望が多ければ何とかします。
- xxxがxxxだったらサイコーなのに!
- このページにコメント付けて下さい。
- 文字化けるんだけどッ!
- 設定ファイル、テンプレートなど文字コードはUTF-8でお願いします。
- ftpじゃなくてwebからもアップロードしたいんだけど…
- 別途アップローダスクリプトを使ってアップロードするようにしてみてはいかがでしょうか?
- しょぼッ!www
- こちらをどうぞ。fotolog、flicker

GWは旅行の予定を立てたにも関わらず、いけなくなってしまい、むしゃくしゃしてこんなものをつくっています(上図:制作風景)。
FTPで画像をアップロードするだけで、フォトギャラリーができます(予定)。
とりあえず、表示部分だけができたので、サンプルを置いておきます。
こんな仕様になっています。
- FTPで特定の場所に写真を置くだけでギャラリーを作ります(TODO)
- ギャラリーのデザインはテンプレートでカスタマイズできます
- 1ページ内の表示件数を設定でき、google風にページャを付けられます。
触ってみるとわかるけど、正直、現状のはしょっぱい…
- RSSを配信します(TODO)
こんな技術を使ってます。
- オブジェクト指向のperl(…のつもり)。拡張しやすさを意識して設計(…したつもり)
- 設定とかの外部ファイルは全部YAML
なんちゃってだけど、wikiに書類もクラス図も書いてやってます。
やがて、仕様書 兼 説明書になる予定。
flickerとかfotologeとか似たようなサービスでもっといいのがありますが…ね。
よし、もう少しで完成なので、頑張ります。
追記
RSSを出力するようにした!オートディスカバリするようにした。
まだ、人様にソースコードはお見せできない…。
マクロ記録で対応できないときにもどかしい思いをするのが嫌なので、秀丸マクロを覚えるために、試しに一つ書いてみました。
ラクダ文字(大文字区切り)からアンダーバー区切りにするマクロと、その逆をするマクロのセットです。
例えば、 HelloHidemaruMacro を hello_hidemaru_macro に変換できます。
ダウンロード:rakuda-underbar
(僕の調べ方が悪いだけかもですが)perlみたいに正規表現使って簡単にできるのかと思ったら、C言語みたいに1文字1文字処理しないとダメみたいで、ちょっと…。
iranoanさんのサイトが見やすいです。
Qtとは、クロスプラットフォームのGUIツールキットです。
Linuxのデスクトップ環境KDEとか、ブラウザのOperaとか、Google Earthとかで使われています。
便利なモジュールがたくさんあるのと、すごく見やすいリファレンスがいいです。
windowsでGUIのプログラムを作るのは大変ですが、Qtは簡単で、僕でも(必死こいて)2週間で簡単な画像処理アプリケーションが作れました(香ばしい画像がありました)。
3年前は、Windows用のが有償でしかなくてがっかりしていたのですが、windows用のが無償でつかえるようになったので試してみました。
TODO : ε( v ゚ω゚) 詳しくは今度書く…

動いたよ!
よーし、おじさん学生時代に作ったうんちなプログラムをコンパイルしちゃうぞ~!と、コンパイルしてみたら、動かなかったよ!
eroなんとかっていうソースコードでエラー。
エロ? 僕は何をやっていたんだ?

ヽ(´□`。)ノヤッタアァァアァン
中学生のころからずっとやってみたいな、と思っていたフラクタルが描けました!
まるで神秘のケツ!
(もっと見る…)