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

source: OpenPNE/branches/stable-2.12.x/webapp/modules/pc/do/c_topic_edit_update_c_commu_topic.php @ 8607

Last change on this file since 8607 was 8607, checked in by shingo, 12 years ago

#3004:pc_do_c_event_edit_update_c_commu_topic・ pc_do_c_topic_edit_update_c_commu_topic の画像アップロード関数を共通化

File size: 5.4 KB
Line 
1<?php
2/**
3 * @copyright 2005-2008 OpenPNE Project
4 * @license   http://www.php.net/license/3_01.txt PHP License 3.01
5 */
6
7class pc_do_c_topic_edit_update_c_commu_topic extends OpenPNE_Action
8{
9    function execute($requests)
10    {
11        $u = $GLOBALS['AUTH']->uid();
12
13        // --- リクエスト変数
14        $c_commu_topic_id = $requests['target_c_commu_topic_id'];
15        $body = $requests['body'];
16        $title = $requests['title'];
17        // ----------
18        $upfile_obj1 = $_FILES['image_filename1'];
19        $upfile_obj2 = $_FILES['image_filename2'];
20        $upfile_obj3 = $_FILES['image_filename3'];
21        $upfile_obj4 = $_FILES['filename4'];
22
23        //--- 権限チェック
24        //トピック作成者 or コミュニティ管理者
25
26        $c_topic = db_commu_c_topic4c_commu_topic_id($c_commu_topic_id);
27        $c_commu_id = $c_topic['c_commu_id'];
28
29        if (!db_commu_is_c_topic_admin($c_commu_topic_id, $u) &&
30            !db_commu_is_c_commu_admin($c_commu_id, $u)) {
31            handle_kengen_error();
32        }
33        $c_commu = db_commu_c_commu4c_commu_id2($c_commu_id);
34        if ($c_commu['topic_authority'] == 'admin_only' &&
35            !db_commu_is_c_commu_admin($c_commu_id, $u)) {
36            handle_kengen_error();
37        }
38        //---
39
40        //エラーチェック
41        $err_msg = array();
42        if (is_null($title) || $title === '') $err_msg[] = "タイトルを入力してください";
43        if (is_null($body) || $body === '') $err_msg[] = "本文を入力してください";
44
45        if (!empty($upfile_obj1) && $upfile_obj1['error'] !== UPLOAD_ERR_NO_FILE) {
46            if (!($image = t_check_image($upfile_obj1))) {
47                $err_msg[] = '画像1は'.IMAGE_MAX_FILESIZE.'KB以内のGIF・JPEG・PNGにしてください';
48            }
49        }
50        if (!empty($upfile_obj2) && $upfile_obj2['error'] !== UPLOAD_ERR_NO_FILE) {
51            if (!($image = t_check_image($upfile_obj2))) {
52                $err_msg[] = '画像2は'.IMAGE_MAX_FILESIZE.'KB以内のGIF・JPEG・PNGにしてください';
53            }
54        }
55        if (!empty($upfile_obj3) && $upfile_obj3['error'] !== UPLOAD_ERR_NO_FILE) {
56            if (!($image = t_check_image($upfile_obj3))) {
57                $err_msg[] = '画像3は'.IMAGE_MAX_FILESIZE.'KB以内のGIF・JPEG・PNGにしてください';
58            }
59        }
60
61        if (OPENPNE_USE_FILEUPLOAD) {
62            if (!empty($upfile_obj4) && $upfile_obj4['error'] !== UPLOAD_ERR_NO_FILE) {
63                // ファイルサイズ制限
64                if ($upfile_obj4['size'] === 0 || $upfile_obj4['size'] > FILE_MAX_FILESIZE * 1024) {
65                    $err_msg[] = 'ファイルは' . FILE_MAX_FILESIZE . 'KB以内のファイルにしてください(ただし空のファイルはアップロードできません)';
66                }
67
68                // 拡張子制限
69                if (!util_check_file_extention($upfile_obj4['name'])) {
70                    $err_msg[] = sprintf('アップロードできるファイルの種類は(%s)です', util_get_file_allowed_extensions('string'));
71                }
72            }
73        }
74
75        if ($err_msg) {
76            $_REQUEST['err_msg'] = $err_msg;
77            $_REQUEST['target_c_commu_topic_id'] = $c_commu_topic_id;
78            $_REQUEST['title'] = $title;
79            $_REQUEST['body'] = $body;
80            openpne_forward('pc', 'page', "c_topic_edit");
81            exit;
82        }
83
84        // 画像アップデート
85        $filename1 = image_insert_c_image_direct($upfile_obj1, "t_{$c_commu_topic_id}_1");
86        $filename2 = image_insert_c_image_direct($upfile_obj2, "t_{$c_commu_topic_id}_2");
87        $filename3 = image_insert_c_image_direct($upfile_obj3, "t_{$c_commu_topic_id}_3");
88
89        //ファイルアップロード
90        $sessid = session_id();
91        t_image_clear_tmp($sessid);
92        if (OPENPNE_USE_FILEUPLOAD) {
93            $tmpfile4 = t_file_save2tmp($upfile_obj4, $sessid, "t_4");
94        }
95        if ($tmpfile4) {
96            $filename4 = file_insert_c_file4tmp("t_{$c_commu_topic_id}_4", $tmpfile4, $upfile_obj4['name']);
97        }
98        t_file_clear_tmp(session_id());
99
100        $update_c_commu_topic = array(
101            'name'       => $title,
102            'event_flag' => 0,
103        );
104        db_commu_update_c_commu_topic($c_commu_topic_id, $update_c_commu_topic);
105
106
107        $update_c_commu_topic_comment = array(
108            'body' => $body,
109        );
110        $c_topic = db_commu_c_topic4c_commu_topic_id($c_commu_topic_id);
111        if ($filename1) {
112            $update_c_commu_topic_comment["image_filename1"] = $filename1;
113            db_image_data_delete($c_topic['image_filename1']);
114        }
115        if ($filename2) {
116            $update_c_commu_topic_comment["image_filename2"] = $filename2;
117            db_image_data_delete($c_topic['image_filename2']);
118        }
119        if ($filename3) {
120            $update_c_commu_topic_comment["image_filename3"] = $filename3;
121            db_image_data_delete($c_topic['image_filename3']);
122        }
123        if ($filename4) {
124            $update_c_commu_topic_comment['filename4'] = $filename4;
125            db_file_delete_c_file($c_topic['filename']);
126        }
127        db_commu_update_c_commu_topic_comment($c_commu_topic_id, $update_c_commu_topic_comment);
128
129        $p = array('target_c_commu_topic_id' => $c_commu_topic_id);
130        openpne_redirect('pc', 'page_c_topic_detail', $p);
131    }
132}
133
134?>
Note: See TracBrowser for help on using the repository browser.