印刷用表示へ切り替え 通常表示へ切り替え 更新履歴を表示 更新履歴を隠す
DownloadLinuxWindows Picasa の Web エクスポートに PukiWiki 風のコメント欄をつける

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 の環境で行った。

Very Simple Shoutbox v1.0 のダウンロード

コメント欄作成用 PHP スクリプト Very Simple Shoutbox in PHP v1.0 をダウンロードして保存する。短いメッセージを書くためのゲストブックは「シャウトボックス」と言うらしい。ファイル名の部分だけ書き換えれば,画像アルバムだけでなく他のページにも使える。

Picasa のウェブエクスポート用テンプレートの編集

保存したファイルの内容を Picasa の Web エクスポート用テンプレートファイルの最後にコピペする。テンプレートは以下のパスにある。

C:\Program Files\Picasa2\web\templates\(テンプレートスタイル)\targetlistelement.html

テンプレートスタイルはお好みで。

Picasa でウェブページを作成

Picasa でウェブページを作りたいフォルダを選択し,「フォルダ」メニューから「ウェブページとしてエクスポート」を選択。上で編集したスタイルでページを作成する。

エクスポートが完了すると,自動的にブラウザが起動してエクスポートしたページが表示される。サムネイルをクリックすると大きい画像が表示されるので,下にコメント入力欄がついているのを確認する。PHP コードが生で表示されてしまって気持ちが悪いが,正常なことなので無視する。パソコンが PHP を解釈できないからである。サーバにアップロードすれば,このコードの表示は消えるので心配ない。

サーバへのアップロードとアクセス権限設定

エクスポートしたファイルを,フォルダごと Web サーバにアップロードする。アップロードしたフォルダのアクセス許可として,すべてのユーザーに対して書込み権限を与える。Linux の chmod コマンドであれば,ディレクトリのパーミッションを 777 に設定する。書込み権限を与える理由は,httpd がコメント用のファイルをディレクトリ内に新規作成できるようにするためである。ディレクトリのオーナーを httpd デーモンの実行ユーザに変更できるのであれば,パーミッションは 755 などでもよい。

.htaccess の設定

拡張子が .html のファイルを PHP で処理させたいので,.htaccess に AddType ディレクティブでの指定を追加する(nlog(n): 拡張子を変更せずに MT を PHP 化)。

AddType application/x-httpd-php .html

Picasa がエクスポートするウェブページの日本語は,UTF-8 でエンコードされる。このサイトの PHP のデフォルト設定は EUC-JP なので,文字化けが発生する。コメントデータ用ファイルは EUC-JP,表示は UTF-8 にしたかったのだが,上手く行かなかった。データ書込みまでは成功するが,表示が EUC-JP になってしまった。そこで,コメント用データにも UTF-8 で書き込むようにする。.htaccess での指定は次の通り。

php_value mbstring.internal_encoding UTF-8

これでも文字化けする場合は,他の設定も明示的にするとよいかも知れない(これは未確認)。

php_value mbstring.http_input auto
php_value mbstring.http_output UTF-8

.htaccess の指定はサブディレクトリに対しても効くので,まとめて指定するなら上位ディレクトリに置いてもよい。とりあえず試すだけの場合は,アップロードしたフォルダ内に,上述の AddType と php_value の指定を書いた .htaccess を置けばよい。

.htaccess を置いてからブラウザで再読み込みしたときに,「500 Internal Server Error」となるのは,.htaccess の設置が許可されていないことを意味する。サーバの設定で AllowOverride を All か Options として指定する必要がある(PHP: 設定を変更するには - Manual)。

以上で完了である。いくつも手続きがあるが,それほど手間ではない。いったん Picasa のテンプレートとサーバの環境の設定さえしてしまえば,後はエクスポートしてアップロードするだけなので,コメント欄をつけない場合と同じ手続きになる。

動作仕様

名前とコメントを書いて「コメントを挿入」ボタンをクリックするとコメントの投稿が完了し,名前・コメント・コメント日時が表示される。内部的な動作仕様は次の通り。

  • 各ページに対するコメントは,それぞれ別ファイルに保存される
  • コメント用のファイル名は,画像のファイル名 + .txt になる (例えば画像ファイルが pic01.jpg なら pic01.jpg.txt)
  • 名前の欄が空欄の書込みは無視される
  • タグを書くとそのまま表示される
  • 空白文字は1文字のスペースに変換される
  • 書き込むコメントには文字数制限がある (デフォルトでは,名前とコメントともに半角70文字)
  • 書き込み回数に制限はない
  • コメントの削除はできない (コメントを削除するには,直接コメントファイルを編集する必要がある)

デモ

Picasa でエクスポートした写真は,フォルダ単位でアルバムになっているので,アルバム単位でアクセス制限をすることができる。

Picasa のテンプレートとしては,「whitebg (2ページ構成 背景色 - 白)」というスタイルを使っている。

ご自由にコメントをどうぞ。動作の感じがつかめます。コメントは断りなく削除する場合があります。ご容赦ください。

2006年4月30日追記:
スクリプトの詳細について書きました(nlog(n): Very Simple Shoutbox 1.0 解説)。

2006年5月1日追記:
このように記事に設置することも可能です。この場合は改行を自動挿入しないモードで記事を投稿する必要があります。

  • n -- うほっ 2006-05-01 (月) 21:55:03
  • test -- test 2006-09-20 (水) 17:08:27
  • ん? -- どういうこと? 2007-08-01 (水) 15:54:22
  • てすと -- しつれいします 2010-01-14 (木) 23:11:12
  • rgnofd -- OUEasb <a href="http://xmwfbvivleus.com/">xmwfbvivleus</a>, [url=http 2015-03-08 (日) 09:49:53
  • Jean -- Superb post however , I was wanting to know if you could write a litt 2017-09-21 (木) 05:21:15
  • http://herb24.space -- Superb post however , I was wanting to know if you could write a litt 2017-09-21 (木) 05:21:16

お名前:

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)。

Posted by n at 2006-04-26 23:51 | Edit | Comments (0) | Trackback(0)
Trackbacks

  • 「手違いで複数トラックバックを送ってしまった!」という場合でも気にしないでください (重複分はこちらで勝手に削除させていただきます)
  • タイムアウトエラーは,こちらのサーバの処理能力不足が原因です (詳細は トラックバック送信時のエラー をご覧ください)
  • トラックバックする記事には,この記事へのリンクを含めてください(詳細は 迷惑トラックバック対策 をご覧ください)
Comments
Post a comment
  • 電子メールアドレスは必須ですが,表示されません (気になる場合は「メールアドレスのような」文字列でもOKです)
  • URL を入力した場合はリンクが張られます
  • コメント欄内ではタグは使えません
  • コメント欄内に URL を記入した場合は自動的にリンクに変換されます
  • コメント欄内の改行はそのまま改行となります
  • 「Confirmation Code」に表示されている数字を入力してください (迷惑コメント対策です)


(必須, 表示されます)


(必須, 表示されません)


(任意, リンクされます)


Confirmation Code (必須)


Remember info (R)?