返信する

返信する: 雑談

url  email  imgsrc  image  code  quote
サンプル
bold  italic  underline  linethrough    


ニッ にっこり シュン エッ!? ん? フフッ げらげら むぅ べー  [もっと...]

オプション

参照

Re: myalbumで複数画像の改造方法
投稿者: ノーザラント 投稿日時: 2013/1/26 0:47
表示関係は、PHPもいじりましたが、テンプレートもいじっていました。
よくもまぁ改造したもんだと自分でも思っていますが。

まず、テンプレートへ書き出すためのphoto.phoです。
52行目あたりに
$xoopsTpl->assign_by_ref( 'photo' , $photo ) ;
とあります。これで、写真をテンプレートへ書き出しているようです。

そこで、その下に、サブ画像を出力するスクリプトを書きました。
ただ、ファイルが存在する時だけ書き出すように、file_exists関数で存在チェックを行っています。
本来なら、データベースを用いて、サブ画像が何枚あるのか、登録しておけばいいのでしょうが、そこまでのスキルはありませんでした。

if (file_exists("$photos_dir/$lid-1." . $photo['ext'])) {
    $size = getimagesize("$photos_dir/$lid-1." . $photo['ext']) ;
    $photo1 = array( "url" => "$photos_url/$lid-1." . $photo['ext'] , "thum" => "$thumbs_url/$lid-1." . $photo['ext'] , "sx" => $size[0] , "sy" => $size[1] ) ;
} else {
    $photo1 = array( "url" => "" , "thum" => "" , "sx" => 0 , "sy" => 0 ) ;
}
$xoopsTpl->assign( 'photo1' , $photo1 ) ;

そして、これは、ループ処理で、処理させてみようとしたけど、うまくいかなかったので、マルチステートメントで、必要な分書きました。

サブ画像2はこうです。
if (file_exists("$photos_dir/$lid-2." . $photo['ext'])) {
    $size = getimagesize("$photos_dir/$lid-2." . $photo['ext']) ;
    $photo2 = array( "url" => "$photos_url/$lid-2." . $photo['ext'] , "thum" => "$thumbs_url/$lid-2." . $photo['ext'] , "sx" => $size[0] , "sy" => $size[1] ) ;
} else {
    $photo2 = array( "url" => "" , "thum" => "" , "sx" => 0 , "sy" => 0 ) ;
}
$xoopsTpl->assign( 'photo2' , $photo2 ) ;

以下、必要な分だけ作成。
テンプレートへは、photo1,photo2,…という配列で出力しています。

次に、テンプレートでそれを受け取るわけですが、myalbum_photo.htmlに手を加えます。
サブ画像を表示させたい所に
<{if $photo1.thum}>
  <a href="<{$photo1.url}>"><img src="<{$photo1.thum}>" border="1" /></a>
<{/if}>
とする事で、サブ画像を表示させました。

こんな、ぼろぼろのカッコ悪い手の加え方ですが、ヒントになれば幸いです。

ちなみに、その後、lightboxというJAVAスクリプトを使って、カッコよく表示させています。