Picasa2 で Web エクスポートしたページを Web サーバで公開したときに,それぞれのページにコメントがつけられるようにする。
画像管理ソフト Picasa には,それぞれの写真にコメントをつけることができる。エクスポート機能を使って Web で公開すると,各ページには Picasa でつけたコメントが反映される(nlog(n): Picasa2 日本語版でフォトアルバム作りが楽チンに)。しかし,ページを見た人はコメントをつけることはできない。
ページを見た人がその写真に簡単にコメントをつけることができて,すぐに反映されるなんてことができれば最高に嬉しい。そう思っている人は他にもいるはずなので,どこかで公開されていないかと思ったが,いいものが見当たらない。Coppermine Photo Gallery は多機能でコメントもつけられるが,PHP と MySQL と GD (または ImageMagick) が必要で,大そうだしなんだかピンとこない。
そこで自分で作ることにした。と言っても,書いたのは PukiWiki 風のコメント欄ための PHP スクリプトだけ。画像表示は Picasa にお任せする。PukiWiki から拝借したのは,コメント欄の見た目だけである。ソースは参考にしなかった。したがって内部の動作は全く違う(と思う)。50行しかないにも関わらず,かなり沢山の落とし穴にはまった。それはまた別の機会にご紹介(予定)。
「こんな機能が欲しい」と常々思っていたものなので,本人的にはかなり満足大満足。自プ自賛(「プ」はプログラム)。「みんなで遊んだときの写真を参加者だけに公開して,ワイワイとコメントをつけてもらう」という用途を想定している。
必要なものは,Picasa が動作する Windows パソコンと,PHP が動作する Web サーバ。Web サーバには .htaccess が設置できる必要がある。実際の動作確認は,Windows XP Professional Edition + Picasa 2.1.0 + Vine Linux 3.2 + Apache 1.3.33 + PHP 5.1.2 の環境で行った。
コメント欄作成用 PHP スクリプト Very Simple Shoutbox in PHP v1.0 をダウンロードして保存する。短いメッセージを書くためのゲストブックは「シャウトボックス」と言うらしい。ファイル名の部分だけ書き換えれば,画像アルバムだけでなく他のページにも使える。
保存したファイルの内容を Picasa の Web エクスポート用テンプレートファイルの最後にコピペする。テンプレートは以下のパスにある。
テンプレートスタイルはお好みで。
Picasa でウェブページを作りたいフォルダを選択し,「フォルダ」メニューから「ウェブページとしてエクスポート」を選択。上で編集したスタイルでページを作成する。
エクスポートが完了すると,自動的にブラウザが起動してエクスポートしたページが表示される。サムネイルをクリックすると大きい画像が表示されるので,下にコメント入力欄がついているのを確認する。PHP コードが生で表示されてしまって気持ちが悪いが,正常なことなので無視する。パソコンが PHP を解釈できないからである。サーバにアップロードすれば,このコードの表示は消えるので心配ない。
エクスポートしたファイルを,フォルダごと Web サーバにアップロードする。アップロードしたフォルダのアクセス許可として,すべてのユーザーに対して書込み権限を与える。Linux の chmod コマンドであれば,ディレクトリのパーミッションを 777 に設定する。書込み権限を与える理由は,httpd がコメント用のファイルをディレクトリ内に新規作成できるようにするためである。ディレクトリのオーナーを httpd デーモンの実行ユーザに変更できるのであれば,パーミッションは 755 などでもよい。
拡張子が .html のファイルを PHP で処理させたいので,.htaccess に AddType ディレクティブでの指定を追加する(nlog(n): 拡張子を変更せずに MT を PHP 化)。
Picasa がエクスポートするウェブページの日本語は,UTF-8 でエンコードされる。このサイトの PHP のデフォルト設定は EUC-JP なので,文字化けが発生する。コメントデータ用ファイルは EUC-JP,表示は UTF-8 にしたかったのだが,上手く行かなかった。データ書込みまでは成功するが,表示が EUC-JP になってしまった。そこで,コメント用データにも UTF-8 で書き込むようにする。.htaccess での指定は次の通り。
これでも文字化けする場合は,他の設定も明示的にするとよいかも知れない(これは未確認)。
.htaccess の指定はサブディレクトリに対しても効くので,まとめて指定するなら上位ディレクトリに置いてもよい。とりあえず試すだけの場合は,アップロードしたフォルダ内に,上述の AddType と php_value の指定を書いた .htaccess を置けばよい。
.htaccess を置いてからブラウザで再読み込みしたときに,「500 Internal Server Error」となるのは,.htaccess の設置が許可されていないことを意味する。サーバの設定で AllowOverride を All か Options として指定する必要がある(PHP: 設定を変更するには - Manual)。
以上で完了である。いくつも手続きがあるが,それほど手間ではない。いったん Picasa のテンプレートとサーバの環境の設定さえしてしまえば,後はエクスポートしてアップロードするだけなので,コメント欄をつけない場合と同じ手続きになる。
名前とコメントを書いて「コメントを挿入」ボタンをクリックするとコメントの投稿が完了し,名前・コメント・コメント日時が表示される。内部的な動作仕様は次の通り。
Picasa でエクスポートした写真は,フォルダ単位でアルバムになっているので,アルバム単位でアクセス制限をすることができる。
Picasa のテンプレートとしては,「whitebg (2ページ構成 背景色 - 白)」というスタイルを使っている。
ご自由にコメントをどうぞ。動作の感じがつかめます。コメントは断りなく削除する場合があります。ご容赦ください。
2006年4月30日追記:
スクリプトの詳細について書きました(nlog(n): Very Simple Shoutbox 1.0 解説)。
2006年5月1日追記:
このように記事に設置することも可能です。この場合は改行を自動挿入しないモードで記事を投稿する必要があります。
2007年1月16日追記:
2006年8月28日に,文字化け問題を確認しましたが(nlog(n): 文字化けを直すとPHPが動作しなくなる),原因が判明し,ようやく解決しました(nlog(n): 拡張子 html で PHP を動作させているときの文字化け問題が解決)。
2007年5月29日追記:
サニタイズ言うなキャンペーンを受け (nlog(n): サニタイズ言うな地獄),コードの書き直しを行いました(nlog(n): Very Simple Shoutbox 1.1)。
Master Archive Index
Total Entry Count: 1957