- 締切済み
【PHP+lightbox2】 キャプション自動化
WEBサイトの仕組みにあまり強くない方のWEBサイト制作を依頼されており、できるだけ更新を楽にできるようなサイトを制作しています。 作品展示のためのサイトなので、更新内容は作品画像とそれに伴うちょっとした説明文のみということで、 http://potapota.akinetworks.com/?eid=426167 ↑こちらのサイトの 『アップローダーで上げた画像をフォルダ指定してlightboxでまとめてギャラリー化する』 という仕組みを使おうと考えているのですが、 拡大画像が表示された時に画像の下部に出るキャプション(上のサイトでは画像ファイルの名前が表示されています)を画像と同じように、 ひとつのフォルダにテキストデータなどの形式で保存し、 PHPでそのフォルダを指定して、画像一つ一つにテキストを設定すること無く画像キャプションとして表示するには上のサイトのソースをどのように編集すれば良いでしょうか? テキストデータをアップロードする際は上のサイトのようなアップローダーを使用できなくても構いません。 どなたかご助言頂けたら幸いです。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- yyr446
- ベストアンサー率65% (870/1330)
詳しく見てませんけど、lightalbum.phpの52行目 $output .= '<div class="section fade">' . '<a href="' . $album[$num]["img_path"] . '/' . $large . '" rel="lightbox[hreview]" title="' . $large . '"><img src="' . $album[$num]["img_path"] . '/' . $thumb . '" /></a></div>'; が、lightbox用のリンク要素を生成してるところみたいですね。ここの title="' . $large . '~ がキャプションのセットになります。 $largeだと、その前の $large = str_replace($thumb_disc, $large_disc, $thumb); で、画像のファイル名自体がセットされているので、 その画像ファイル名をもとに、fread()でテキストファイルのフォルダーから該当するテキストファイルの中身を読み込んで、$captionにでもいったん格納して、 title="' . $caption . '~ としたらどうでしょう。 ※ページロード完了後javascript側で、テキストファイルを再度AJAXして取り込み、 title属性を書き換えるの技もありますが、そもそもPHPでページ生成してるんだから 動的にテキストの内容が変わっていくんじゃないから、AJAXの必要性が無いですね。
- yyr446
- ベストアンサー率65% (870/1330)
その画像のキャプションに対応するテキストをどのように選ぶかが肝になると思います。
補足
返答ありがとうございます。 そうですね。 関連付けはしなくとも、画像とテキストを同じファイル名にして昇順で表示というのが手っ取り早いのかな、と考えています。