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

source: OpenPNE/trunk/webapp_biz/modules/biz/do/fhg_biz_schedule_add.php @ 1856

Last change on this file since 1856 was 1856, checked in by takanashi, 13 years ago

copyright表記修正

File size: 9.8 KB
Line 
1<?php
2/**
3 * @copyright 2005-2007 OpenPNE Project
4 * @license   http://www.php.net/license/3_01.txt PHP License 3.01
5 */
6
7class biz_do_fhg_biz_schedule_add extends OpenPNE_Action
8{
9    function execute($requests)
10    {
11        $u = $GLOBALS['AUTH']->uid();
12        $sessid = session_id();
13
14        //ERROR----------------
15        //存在しない日付
16        if (!checkdate($requests['sc_b_month'], $requests['sc_b_date'], $requests['sc_b_year'])) {
17            $msg = '存在しない日付が指定されました。';
18
19            $p = array('msg' => $msg, 'sc_title' => $requests['sc_title'], 'sc_rp' => $requests['sc_rp'],
20                'sc_memo' => $requests['sc_memo'], 'sc_j_mem_enc' => serialize($requests['sc_j_mem']),
21                'sc_rwk_enc' => serialize($requests['sc_rwk_enc']), 'sc_rcount' => $requests['sc_rcount']);
22            openpne_redirect('biz', 'page_fh_biz_schedule_add', $p);
23            exit();  //強制的にスクリプトを終了しなければいけない
24        }
25        //---------------------
26
27        //ERROR----------------
28        //タイトル未入力
29        if (empty($requests['sc_title'])) {
30            $msg = 'タイトルを入力してください。';
31            $begin_date = $requests['sc_b_year'].'-'.$requests['sc_b_month'].'-'.$requests['sc_b_date'];
32            $begin_time = $requests['sc_b_hour'].':'.$requests['sc_b_minute'];
33            $finish_time = $requests['sc_f_hour'].':'.$requests['sc_f_minute'];
34            $url = $redirect_script.
35                        '&msg='.$msg.
36                        '&begin_date='.$begin_date.
37                        '&begin_time='.$begin_time.
38                        '&finish_time='.$finish_time.
39                        '&sc_rp='.$requests['sc_rp'].
40                        '&sc_memo='.$requests['sc_memo'].
41                        '&sc_j_mem_enc='.serialize($requests['sc_j_mem']).
42                        '&sc_rwk_enc='.serialize($requests['sc_rwk_enc']).
43                        '&sc_rcount='.$requests['sc_rcount'];
44
45            $p = array('msg' => $msg, 'begin_date' => $begin_date, 'begin_time' => $begin_time,
46                'finish_time' => $finish_time, 'sc_rp' => $requests['sc_rp'], 'sc_memo' => $requests['sc_memo'],
47                'sc_j_mem_enc' => serialize($requests['sc_j_mem']), 'sc_rwk_enc' => serialize($requests['sc_rwk_enc']),
48                'sc_rcount' => $requests['sc_rcount']);
49            openpne_redirect('biz', 'page_fh_biz_schedule_add', $p);
50            exit();  //強制的にスクリプトを終了しなければいけない
51        }   
52        //---------------------
53
54        //ERROR----------------
55        //繰り返し予定::曜日指定なし
56        if ($requests['sc_rp'] && empty($requests['sc_rwk'])) {
57            $msg = '繰り返し予定を登録する場合は、曜日を指定してください。';
58            $begin_date = $requests['sc_b_year'].'-'.$requests['sc_b_month'].'-'.$requests['sc_b_date'];
59            $begin_time = $requests['sc_b_hour'].':'.$requests['sc_b_minute'];
60            $finish_time = $requests['sc_f_hour'].':'.$requests['sc_f_minute'];
61
62            $p = array('msg' => $msg, 'begin_date' => $begin_date, 'begin_time' => $begin_time, 'sc_title' => $requests['sc_title'],
63                'finish_time' => $finish_time, 'sc_rp' => $requests['sc_rp'], 'sc_memo' => $requests['sc_memo'],
64                'sc_j_mem_enc' => serialize($requests['sc_j_mem']), 'sc_rwk_enc' => serialize($requests['sc_rwk_enc']),
65                'sc_rcount' => $requests['sc_rcount']);
66            openpne_redirect('biz', 'page_fh_biz_schedule_add', $p);
67            exit();  //強制的にスクリプトを終了しなければいけない
68        }
69        //--------------------
70
71        if ($requests['sc_b_hour'] && !$requests['sc_b_minute']) {
72            $requests['sc_b_minute'] = '00';
73        }
74        if ($requests['sc_f_hour'] && !$requests['sc_f_minute']) {
75            $requests['sc_f_minute'] = '00';
76        }
77
78        //日付のフォーマットを設定
79        $begin_date = $requests['sc_b_year'].'-'.$requests['sc_b_month'].'-'.$requests['sc_b_date'];
80        $begin_time = $requests['sc_b_hour'].':'.$requests['sc_b_minute'];
81        $finish_time = $requests['sc_f_hour'].':'.$requests['sc_f_minute'];
82
83        //ERROR---------------
84        if ((strtotime($finish_time) < strtotime($begin_time)) && ($finish_time != ':')) {
85            //終了時間と開始時間が変
86            $msg = '終了時刻が開始時刻より先です。';
87            $begin_date = $requests['sc_b_year'].'-'.$requests['sc_b_month'].'-'.$requests['sc_b_date'];
88            $begin_time = $requests['sc_b_hour'].':'.$requests['sc_b_minute'];
89            $finish_time = $requests['sc_f_hour'].':'.$requests['sc_f_minute'];
90            $url = $redirect_script.
91                        '&msg='.$msg.
92                        '&begin_date='.$begin_date.
93                        '&sc_title='.$requests['sc_title'].
94                        '&sc_rp='.$requests['sc_rp'].
95                        '&sc_memo='.$requests['sc_memo'].
96                        '&sc_j_mem_enc='.serialize($requests['sc_j_mem']).
97                        '&sc_rwk_enc='.serialize($requests['sc_rwk_enc']).
98                        '&sc_rcount='.$requests['sc_rcount'];
99
100            $p = array('msg' => $msg, 'begin_date' => $begin_date, 'sc_rp' => $requests['sc_rp'],
101                'sc_memo' => $requests['sc_memo'], 'sc_j_mem_enc' => serialize($requests['sc_j_mem']),
102                'sc_rwk_enc' => serialize($requests['sc_rwk_enc']), 'sc_rcount' => $requests['sc_rcount']);
103            openpne_redirect('biz', 'page_fh_biz_schedule_add', $p);
104            exit();  //強制的にスクリプトを終了しなければいけない
105        }
106        //--------------------
107
108        //ERROR---------------
109        //グループまで公開の予定なのにグループが指定されていない
110        //--------------------
111        if(($requests['public_flag'] == 'group') && empty($requests['biz_group_id'])) {
112            $msg = '「グループまで公開」予定の場合はグループを指定してください';
113            $begin_date = $requests['sc_b_year'].'-'.$requests['sc_b_month'].'-'.$requests['sc_b_date'];
114            $begin_time = $requests['sc_b_hour'].':'.$requests['sc_b_minute'];
115            $finish_time = $requests['sc_f_hour'].':'.$requests['sc_f_minute'];
116            $url = $redirect_script.
117                        '&msg='.$msg.
118                        '&begin_date='.$begin_date.
119                        '&sc_title='.$requests['sc_title'].
120                        '&sc_rp='.$requests['sc_rp'].
121                        '&sc_memo='.$requests['sc_memo'].
122                        '&sc_j_mem_enc='.serialize($requests['sc_j_mem']).
123                        '&sc_rwk_enc='.serialize($requests['sc_rwk_enc']).
124                        '&sc_rcount='.$requests['sc_rcount'];
125
126            $p = array('msg' => $msg, 'begin_date' => $begin_date, 'sc_rp' => $requests['sc_rp'],
127                'sc_memo' => $requests['sc_memo'], 'sc_j_mem_enc' => serialize($requests['sc_j_mem']),
128                'sc_rwk_enc' => serialize($requests['sc_rwk_enc']), 'sc_rcount' => $requests['sc_rcount']);
129            openpne_redirect('biz', 'page_fh_biz_schedule_add', $p);
130            exit();  //強制的にスクリプトを終了しなければいけない
131        }
132
133        if (!$requests['sc_rp'] && ($requests['sc_bn'] == 1)) {
134            //当日中に終わる予定は、開始日と終了日は同一でなければならない
135            $finish_date = $begin_date;
136        }
137
138        if (!($requests['sc_b_hour']||$requests['sc_b_minute']||$requests['sc_f_hour']||$requests['sc_f_minute'])) {
139            //時刻指定なし
140            $begin_time = $finish_time = null;
141        } elseif (!($requests['sc_f_hour']||$requests['sc_f_minute'])) {
142            $finish_time = null;
143        }
144
145        //繰り返し予定
146        if ($requests['sc_rp']) {
147            //終了日の決定
148            $finish_date = date("Y-m-d", strtotime($requests['sc_b_year'].'-'.$requests['sc_b_month'].'-'.($requests['sc_b_date']+($requests['sc_rcount'])*7)));
149
150            //first_idの決定
151            $first_id = biz_getScheduleMax() + 1;
152            if (!$first_id) {
153                $first_id = 1;
154            }
155
156            //繰り返しルールの決定
157            foreach ($requests['sc_rwk'] as $value) {
158                $rp_rule += 1 << $value;
159            }
160        } else {
161            //繰り返しなし
162            $finish_date = date("Y-m-d", strtotime($requests['sc_b_year'].'-'.$requests['sc_b_month'].'-'.($requests['sc_b_date']+($requests['sc_bn']-1))));
163        }
164
165        if (!$requests['sc_rp']) {
166            //繰り返しをしない予定登録
167            biz_insertSchedule($requests['sc_title'], $u, $begin_date, $finish_date, $begin_time, $finish_time, $requests['sc_memo'], $rp_rule, 0, $requests['biz_group_id'], $requests['public_flag']);
168        } else {
169            //繰り返し予定
170            $tmp = $begin_date;  //処理中の日付
171
172            for ($i=0; date("Ymd", strtotime($tmp)) < date("Ymd", strtotime($finish_date)); $i++) {
173                $nowday = strtotime($requests['sc_b_year'].'-'.$requests['sc_b_month'].'-'.($requests['sc_b_date']+$i));
174                $tmp = date("Ymd", $nowday);
175                if ($rp_rule & (1 << date("w",$nowday))) {
176                    biz_insertSchedule($requests['sc_title'], $u, $tmp, $tmp, $begin_time, $finish_time, $requests['sc_memo'], $rp_rule, $first_id, $requests['biz_group_id'], $requests['public_flag']);
177                }
178            }
179        }
180
181        $week = date("W", abs(strtotime($begin_date) - strtotime(date("Y-m-d")))) - 1;
182
183        $p = array('w' => $week, 'msg' => '予定を追加しました。', 'id' => biz_getScheduleMax());
184        openpne_redirect('biz', 'page_fh_biz_schedule_view', $p);
185    }
186}
187
188?>
Note: See TracBrowser for help on using the repository browser.