ここの情報は古いです。ご理解頂いた上でお取り扱いください。

Changeset 6574


Ignore:
Timestamp:
Apr 16, 2008, 11:53:56 PM (12 years ago)
Author:
ebihara
Message:

#135:画像投稿時にアルバム容量制限を見るようにした

Location:
OpenPNE/trunk/webapp
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • OpenPNE/trunk/webapp/lib/db/album.php

    r6571 r6574  
    502502/**
    503503 * c_album_imageの新規登録
     504 *
    504505 * @param int $c_album_id
     506 * @param int $c_member_id
    505507 * @param string $image_filename
    506508 * @param string $image_description
    507  */
    508 function db_insert_c_album_image($c_album_id, $image_filename, $image_description,$image_size=0)
     509 * @param int $filesize
     510 */
     511function db_insert_c_album_image($c_album_id, $c_member_id, $image_filename, $image_description, $filesize = 0)
    509512{
    510513    $data = array(
    511         'c_album_id'=>$c_album_id,
    512         'image_description'=>$image_description,
     514        'c_album_id' => $c_album_id,
     515        'c_member_id' => $c_member_id,
     516        'image_description' => $image_description,
     517        'image_filename' => $image_filename,
     518        'filesize' => $filesize,
    513519        'r_datetime' => db_now(),
    514520    );
    515 
    516     if ($image_filename) {
    517         $data['image_filename'] = $image_filename;
    518         $data['filesize'] = $image_size;
    519     }
    520521
    521522    $insert_id = db_insert('c_album_image', $data);
     
    671672}
    672673
     674/**
     675 * メンバーのすべてのアルバム画像のファイルサイズの合計を取得する
     676 *
     677 * @params int $c_member_id
     678 * @return int
     679 */
     680function db_album_sum_filesize4c_member_id($c_member_id)
     681{
     682    $sql = 'SELECT filesize FROM c_album_image WHERE c_member_id = ?';
     683    $list = db_get_col($sql, array($c_member_id));
     684    return array_sum($list);
     685}
     686
     687/**
     688 * メンバーが画像を投稿可能かどうか
     689 *
     690 * メンバーのファイルサイズの合計が OPENPNE_ALBUM_LIMIT を超過していないかどうかを返す
     691 * $new_filesize を指定した場合は、メンバーのファイルサイズの合計に $new_filesize を
     692 * 加算したものが OPENPNE_ALBUM_LIMIT を超過していないかどうかを返す
     693 *
     694 * @params int $c_member_id
     695 * @params int $new_filesize
     696 * @return bool
     697 */
     698function db_album_is_insertable4c_member_id($c_member_id, $new_filesize = 0)
     699{
     700    if (!OPENPNE_ALBUM_LIMIT) {
     701        return true;
     702    }
     703
     704    $size = db_album_sum_filesize4c_member_id($c_member_id) + $new_filesize;
     705
     706    $mb = 1048576;
     707    if (OPENPNE_ALBUM_LIMIT * $mb < $size) {
     708        return false;
     709    }
     710
     711    return true;
     712}
     713
    673714?>
  • OpenPNE/trunk/webapp/modules/pc/do/h_album_image_add_insert_c_album_image.php

    r6572 r6574  
    6363        $sessid = session_id();
    6464        t_image_clear_tmp($sessid);
     65
     66        $filesize_all = $filesize_1 + $filesize_2 + $filesize_3 + $filesize_4 + $filesize_5;
     67        if (!db_album_is_insertable4c_member_id($u, $filesize_all)) {
     68            $msg = 'これ以上画像を投稿することができません。';
     69            if (!db_album_is_insertable4c_member_id($u)) {
     70                $msg .= '登録済みの画像を削除してからやり直してください。';
     71            } else {
     72                $msg .= '投稿する画像を減らすか、ファイルサイズを変更してやり直してください。';
     73            }
     74            $p = array(
     75                'msg' => $msg,
     76                'target_c_album_id' => $target_c_album_id,
     77            );
     78            openpne_redirect('pc', 'page_h_album_image_add', $p);
     79        }
    6580       
    6681        // 説明がなければ画像の名前を設定
     
    89104        );
    90105       
    91         foreach($insert_data as $value){
    92             db_insert_c_album_image($target_c_album_id,$value[image_filename],$value[image_description],$value[image_size]);
     106        foreach ($insert_data as $value) {
     107            db_insert_c_album_image($target_c_album_id, $u, $value['image_filename'], $value['image_description'], $value['image_size']);
    93108        }
    94109       
  • OpenPNE/trunk/webapp/modules/pc/page/h_album_image_add_confirm.php

    r6572 r6574  
    6464        }
    6565
     66        $filesize_all = 0;
    6667        foreach ($upfiles as $key => $upfile) {
    6768            if ($upfile['error'] !== UPLOAD_ERR_NO_FILE) {
     
    7273                } else {
    7374                    $tmpfiles[$key] = t_image_save2tmp($upfile, $sessid, "a_{$target_c_album_id}_{$key}", $image['format']);
     75                    $filesize_all += $upfile['size'];
    7476                }
    7577            }
     78        }
     79
     80        if (!db_album_is_insertable4c_member_id($u, $filesize_all)) {
     81            t_image_clear_tmp($sessid);
     82            $msg = 'これ以上画像を投稿することができません。';
     83            if (!db_album_is_insertable4c_member_id($u)) {
     84                $msg .= '登録済みの画像を削除してからやり直してください。';
     85            } else {
     86                $msg .= '投稿する画像を減らすか、ファイルサイズを変更してやり直してください。';
     87            }
     88            $p = array(
     89                'msg' => $msg,
     90                'target_c_album_id' => $target_c_album_id,
     91            );
     92            openpne_redirect('pc', 'page_h_album_image_add', $p);
    7693        }
    7794
Note: See TracChangeset for help on using the changeset viewer.