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

Changeset 6531


Ignore:
Timestamp:
Apr 12, 2008, 6:49:14 PM (12 years ago)
Author:
ebihara
Message:

#2182:ファイルアップロード機能をコミュニティトピックコメントでも使えるようにした

Location:
OpenPNE/trunk
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • OpenPNE/trunk/public_html/xhtml_style.php

    r6502 r6531  
    930930        padding: 8px 0;
    931931}
     932.commentList dd div.attachFile {
     933        padding: 16px 5px;
     934}
    932935
    933936/*==============================================================================
  • OpenPNE/trunk/webapp/lib/db/commu.php

    r6527 r6531  
    24622462}
    24632463
     2464function db_commu_update_c_commu_topic_comment_file($c_commu_topic_comment_id, $filename)
     2465{
     2466    $data = array(
     2467        'filename' => strval($filename),
     2468    );
     2469    $where = array('c_commu_topic_comment_id' => intval($c_commu_topic_comment_id));
     2470    return db_update('c_commu_topic_comment', $data, $where);
     2471}
     2472
    24642473/**
    24652474 * 掲示板書き込みに画像を追加する(メールからの投稿)
  • OpenPNE/trunk/webapp/modules/pc/do/c_file_download.php

    r4933 r6531  
    2121        // --- リクエスト変数
    2222        $c_commu_topic_id = $requests['target_c_commu_topic_id'];
     23        $c_commu_topic_comment_id = $requests['target_c_commu_topic_comment_id'];
    2324        // ----------
     25
     26        if (!$c_commu_topic_id && !$c_commu_topic_comment_id) {
     27            handle_kengen_error();
     28        }
     29
     30        if ($c_commu_topic_comment_id) {
     31            $c_topic_comment = db_commu_c_commu_topic_comment4c_commu_topic_comment_id($c_commu_topic_comment_id);
     32            $c_commu_id = $c_topic_comment['c_commu_id'];
     33            $filename = $c_topic_comment['filename'];
     34        } else {
     35            $c_topic = c_topic_detail_c_topic4c_commu_topic_id($c_commu_topic_id);
     36            $c_commu_id = $c_topic['c_commu_id'];
     37            $filename = $c_topic['filename'];
     38        }
    2439
    2540        //--- 権限チェック
    2641        //コミュニティ参加者
    27 
    28         $c_topic = c_topic_detail_c_topic4c_commu_topic_id($c_commu_topic_id);
    29         $c_commu_id = $c_topic['c_commu_id'];
    30 
    3142        $status = db_common_commu_status($u, $c_commu_id);
    3243        if (!$status['is_bbs_view']) {
     
    4051
    4152        // ファイルが存在しない
    42         $file = db_file_c_file4filename($c_topic['filename']);
     53        $file = db_file_c_file4filename($filename);
    4354        if (empty($file)) {
    4455            handle_kengen_error();
  • OpenPNE/trunk/webapp/modules/pc/do/c_topic_write_insert_c_commu_topic_comment.php

    r4933 r6531  
    1818        $tmpfile3 = $requests['image_filename3_tmpfile'];
    1919        // ----------
     20
     21        // 添付ファイル
     22        if (OPENPNE_USE_FILEUPLOAD) {
     23            $filename4_tmpfile = $requests['filename4_tmpfile'];
     24            $filename4_original_filename = $requests['filename4_original_filename'];
     25           
     26            if ($filename4_tmpfile) {
     27                // 拡張子制限
     28                if (!util_check_file_extention($filename4_original_filename)) {
     29                    $_REQUEST['target_c_commu_topic_id'] = $c_commu_topic_id;
     30                    $_REQUEST['err_msg'] = sprintf('アップロードできるファイルの種類は(%s)です', util_get_file_allowed_extensions('string'));
     31                    openpne_forward('pc', 'page', "c_topic_detail");
     32                    exit;
     33                }
     34            }
     35        }
    2036
    2137        //--- 権限チェック
     
    5066            $filename3 = image_insert_c_image4tmp("tc_{$insert_id}_3", $tmpfile3);
    5167        }
     68        if (OPENPNE_USE_FILEUPLOAD) {
     69            // 添付ファイルをDBに入れる
     70            if ($filename4_tmpfile) {
     71                $filename4 = file_insert_c_file4tmp("tc_{$insert_id}_4", $filename4_tmpfile, $filename4_original_filename);
     72            }
     73        }
     74
    5275        t_image_clear_tmp(session_id());
     76        t_file_clear_tmp(session_id());
    5377
    5478        db_commu_update_c_commu_topic_comment_images($insert_id,
    5579                $filename1, $filename2, $filename3);
     80        db_commu_update_c_commu_topic_comment_file($insert_id, $filename4);
    5681
    5782        //お知らせメール送信(携帯へ)
  • OpenPNE/trunk/webapp/modules/pc/page/c_topic_detail.php

    r4933 r6531  
    6060        list($c_topic_write, $is_prev, $is_next, $total_num, $start_num, $end_num)
    6161            = db_commu_c_topic_write4c_commu_topic_id($c_commu_topic_id, $page, $page_size);
     62
     63        foreach ($c_topic_write as $key => $value) {
     64            if ($value['filename']) {
     65                $c_topic_write[$key]['original_filename'] = db_file_original_filename4filename($value['filename']);
     66            }
     67        }
     68
    6269        $this->set("c_topic_write", $c_topic_write);
    6370        $this->set("is_prev", $is_prev);
     
    8087        $this->set("is_c_topic_admin", db_commu_is_c_topic_admin($c_commu_topic_id, $u));
    8188        $this->set('c_member_id', $u);
     89
     90        // 許可されている拡張子のリスト
     91        $this->set('allowed_extensions', util_get_file_allowed_extensions('string'));
     92
    8293        return 'success';
    8394    }
  • OpenPNE/trunk/webapp/modules/pc/page/c_topic_write_confirm.php

    r5234 r6531  
    2929        $upfile_obj3 = $_FILES['image_filename3'];
    3030
     31        //添付ファイル
     32        $upfile_obj4 = $_FILES['uploadfile'];
     33
    3134        //エラーチェック
    3235        $err_msg = array();
     
    4548            if (!($image = t_check_image($upfile_obj3))) {
    4649                $err_msg[] = '画像3は'.IMAGE_MAX_FILESIZE.'KB以内のGIF・JPEG・PNGにしてください';
     50            }
     51        }
     52
     53        if (OPENPNE_USE_FILEUPLOAD) {
     54            if (!empty($upfile_obj4) && $upfile_obj4['error'] !== UPLOAD_ERR_NO_FILE) {
     55                // ファイルサイズ制限
     56                if ($upfile_obj4['size'] === 0 || $upfile_obj4['size'] > FILE_MAX_FILESIZE * 1024) {
     57                    $err_msg[] = 'ファイルは' . FILE_MAX_FILESIZE . 'KB以内のファイルにしてください(ただし空のファイルはアップロードできません)';
     58                }
     59
     60                // 拡張子制限
     61                if (!util_check_file_extention($upfile_obj4['name'])) {
     62                    $err_msg[] = sprintf('アップロードできるファイルの種類は(%s)です', util_get_file_allowed_extensions('string'));
     63                }
    4764            }
    4865        }
     
    6683        $sessid = session_id();
    6784        t_image_clear_tmp($sessid);
     85        t_file_clear_tmp($sessid);
     86
    6887        $tmpfile1 = t_image_save2tmp($upfile_obj1, $sessid, "tc_1");
    6988        $tmpfile2 = t_image_save2tmp($upfile_obj2, $sessid, "tc_2");
    7089        $tmpfile3 = t_image_save2tmp($upfile_obj3, $sessid, "tc_3");
     90
     91        if (OPENPNE_USE_FILEUPLOAD) {
     92            // 一時ファイルをvar/tmpにコピー
     93            $tmpfile4 = t_file_save2tmp($upfile_obj4, $sessid, "tc_4");
     94        }
    7195
    7296        $this->set('inc_navi', fetch_inc_navi('c', $c_commu_id));
     
    79103        $topic_write['image_filename2']=$upfile_obj2["name"];
    80104        $topic_write['image_filename3']=$upfile_obj3["name"];
     105        $topic_write['filename4_tmpfile'] = $tmpfile4;
     106        $topic_write['filename4_original_filename'] = $upfile_obj4["name"];
    81107        $this->set('topic_write', $topic_write);
    82108        return 'success';
  • OpenPNE/trunk/webapp/modules/pc/templates/c_topic_detail.tpl

    r6529 r6531  
    8888<p class="text">({$item.body|nl2br|t_url2cmd:'community'|t_cmd:'community'})</p>
    8989</div>
     90({if $item.filename && $smarty.const.OPENPNE_USE_FILEUPLOAD})
     91<div class="block attachFile"><ul>
     92<li><a href="({t_url m=pc a=do_c_file_download})&amp;target_c_commu_topic_comment_id=({$item.c_commu_topic_comment_id})&amp;sessid=({$PHPSESSID})">({$item.original_filename})</a></li>
     93</ul></div>
     94({/if})
    9095</dd>
    9196</dl>
     
    123128<td><input type="file" class="input_file" name="image_filename3" size="40" /></td>
    124129</tr>
     130({if $smarty.const.OPENPNE_USE_FILEUPLOAD})
     131<tr>
     132<th>ファイル</th>
     133<td>
     134<input type="file" class="input_file" name="uploadfile" size="40" />
     135<p class="caution">※ファイルサイズは({$smarty.const.FILE_MAX_FILESIZE})KB以内({if $allowed_extensions})、ファイルの種類は(({$allowed_extensions}))({/if})のファイルがアップロードできます。</p>
     136</td>
     137</tr>
     138({/if})
    125139</table>
    126140<div class="operation">
  • OpenPNE/trunk/webapp/modules/pc/templates/c_topic_write_confirm.tpl

    r6014 r6531  
    1818({if $topic_write.image_filename3})
    1919<tr><th>写真3</th><td>({$topic_write.image_filename3})</td></tr>
     20({/if})
     21({if $smarty.const.OPENPNE_USE_FILEUPLOAD})
     22({if $topic_write.filename4_original_filename})
     23<tr><th>ファイル</th><td>({$topic_write.filename4_original_filename})</td></tr>
     24({/if})
    2025({/if})
    2126</table>
  • OpenPNE/trunk/webapp/modules/pc/validate/do/c_file_download.ini

    r4471 r6531  
    11[target_c_commu_topic_id]
    22type = "int"
    3 required = 1
     3required = 0
     4
     5[target_c_commu_topic_comment_id]
     6type = "int"
     7required = 0
     8
  • OpenPNE/trunk/webapp/modules/pc/validate/do/c_topic_write_insert_c_commu_topic_comment.ini

    r2 r6531  
    1818type = "string"
    1919default = ""
     20
     21[filename4_tmpfile]
     22type = "string"
     23default = ""
     24
     25[filename4_original_filename]
     26type = "string"
     27default = ""
     28
Note: See TracChangeset for help on using the changeset viewer.