OpenPNE では、アップロードされた画像データは一旦 DB に登録され、参照されたときにキャッシュディレクトリに書き出され、以降はそれが参照されるようだ。
多分。(ドキュメントは読んでないけど(^^;、動きから察するに)
なので、直接イメージファイルを指定するのではなく、img.php を
<img src="/img.php?filename=m_7_1244606821.jpg&w=72&h=54&m=pc" alt="img" align="center" />
こんな感じで指定する。
・・・が、上記の指定方法ではディフォルトだと何も表示されない。
'w=72&h=54' ってところがミソ。
実は、OpenPNE は config.php の中で、使用出来る画像サイズを規定している。
$GLOBALS['_OPENPNE_IMG_ALLOWED_SIZE'] = array('76x76', '120x120', '180x180', '240x320', '600x600');
という具合だ。
なので、ここに、'72x54' というのを追加してやり、キャッシュディレクトリを作ってやる必要がある。
/var/img_cache の下の gif, jpg, png にそれぞれ w72_h54 という名前のディレクトリを掘ってやるわけだ。
これで、
<img src="/img.php?filename=m_7_1244606821.jpg&w=72&h=54&m=pc" alt="img" align="center" />
と書い ておけば、そこに横 72px、縦 54px の画像が表示されるわけだ。
ちなみに、画像が無いとき(例えばメンバー写真を表示したいのに、c_member テーブルの image_filename が空だったら)
<img src="/img_skin.php?filename=no_image&w=72&h=54&image_filename=skin_no_image.gif" alt="img" align="center" />
てな具合に、No Image 画像を表示してやる。
コメントする