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

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

Last change on this file since 276 was 276, checked in by ogawa, 14 years ago

remove extra spaces

File size: 8.2 KB
Line 
1<?php
2/**
3 * @copyright 2005-2006 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        {
18            $redirect_script = '?m=biz&a=page_fh_biz_schedule_add';
19            $msg = urlencode('存在しない日付が指定されました。');
20
21            //日付関連の引数は返さなくてもよい
22            $url = $redirect_script.
23                        '&msg='.$msg.
24                        '&title='.$requests['sc_title'].
25                        '&sc_rp='.$requests['sc_rp'].
26                        '&sc_memo='.$requests['sc_memo'].
27                        '&sc_j_mem_enc='.serialize($requests['sc_j_mem']).
28                        '&sc_rwk_enc='.serialize($requests['sc_rwk_enc']).
29                        '&sc_rcount='.$requests['sc_rcount'];
30
31            client_redirect_absolute($url);
32            exit();  //強制的にスクリプトを終了しなければいけない
33        }
34        //---------------------
35
36        //ERROR----------------
37        //タイトル未入力
38        if(empty($requests['sc_title']))
39        {
40            $redirect_script = '?m=biz&a=page_fh_biz_schedule_add';
41            $msg = urlencode('タイトルを入力してください。');
42            $begin_date = $requests['sc_b_year'].'-'.$requests['sc_b_month'].'-'.$requests['sc_b_date'];
43            $begin_time = $requests['sc_b_hour'].':'.$requests['sc_b_minute'];
44            $finish_time = $requests['sc_f_hour'].':'.$requests['sc_f_minute'];
45            $url = $redirect_script.
46                        '&msg='.$msg.
47                        '&begin_date='.$begin_date.
48                        '&begin_time='.$begin_time.
49                        '&finish_time='.$finish_time.
50                        '&sc_rp='.$requests['sc_rp'].
51                        '&sc_memo='.$requests['sc_memo'].
52                        '&sc_j_mem_enc='.serialize($requests['sc_j_mem']).
53                        '&sc_rwk_enc='.serialize($requests['sc_rwk_enc']).
54                        '&sc_rcount='.$requests['sc_rcount'];
55
56            client_redirect_absolute($url);
57            exit();  //強制的にスクリプトを終了しなければいけない
58        }   
59        //---------------------
60
61        //ERROR----------------
62        //繰り返し予定::曜日指定なし
63        if($requests['sc_rp'] && empty($requests['sc_rwk']))
64        {
65            $redirect_script = '?m=biz&a=page_fh_biz_schedule_add';
66            $msg = urlencode('繰り返し予定を登録する場合は、曜日を指定してください。');
67            $begin_date = $requests['sc_b_year'].'-'.$requests['sc_b_month'].'-'.$requests['sc_b_date'];
68            $begin_time = $requests['sc_b_hour'].':'.$requests['sc_b_minute'];
69            $finish_time = $requests['sc_f_hour'].':'.$requests['sc_f_minute'];
70            $url = $redirect_script.
71                        '&msg='.$msg.
72                        '&begin_date='.$begin_date.
73                        '&begin_time='.$begin_time.
74                        '&finish_time='.$finish_time.
75                        '&sc_title='.$requests['sc_title'].
76                        '&sc_rp='.$requests['sc_rp'].
77                        '&sc_memo='.$requests['sc_memo'].
78                        '&sc_j_mem_enc='.serialize($requests['sc_j_mem']).
79                        '&sc_rwk_enc='.serialize($requests['sc_rwk_enc']).
80                        '&sc_rcount='.$requests['sc_rcount'];
81
82            client_redirect_absolute($url);
83            exit();  //強制的にスクリプトを終了しなければいけない
84        }
85        //--------------------
86
87        //施設、参加者のチェック
88        if(in_array('0', $requests['sc_j_mem']))  //「全員」が含まれている場合は、配列を空に
89            $requests['sc_j_mem'] = array();
90
91        if(!$requests['sc_j_plc'])
92            $requests['sc_j_plc'] = 0;
93
94        if(($requests['sc_b_hour']&&!$requests['sc_b_minute']))
95            $requests['sc_b_minute'] = '00';
96        if(($requests['sc_f_hour']&&!$requests['sc_f_minute']))
97            $requests['sc_f_minute'] = '00';
98
99        //日付のフォーマットを設定
100        $begin_date = $requests['sc_b_year'].'-'.$requests['sc_b_month'].'-'.$requests['sc_b_date'];
101        $begin_time = $requests['sc_b_hour'].':'.$requests['sc_b_minute'];
102        $finish_time = $requests['sc_f_hour'].':'.$requests['sc_f_minute'];
103
104        //ERROR---------------
105        if((strtotime($finish_time) < strtotime($begin_time))&&($finish_time != ':'))  //終了時間と開始時間が変
106        {
107            $redirect_script = '?m=biz&a=page_fh_biz_schedule_add';
108            $msg = urlencode('終了時刻が開始時刻より先です。');
109            $begin_date = $requests['sc_b_year'].'-'.$requests['sc_b_month'].'-'.$requests['sc_b_date'];
110            $begin_time = $requests['sc_b_hour'].':'.$requests['sc_b_minute'];
111            $finish_time = $requests['sc_f_hour'].':'.$requests['sc_f_minute'];
112            $url = $redirect_script.
113                        '&msg='.$msg.
114                        '&begin_date='.$begin_date.
115                        '&sc_title='.$requests['sc_title'].
116                        '&sc_rp='.$requests['sc_rp'].
117                        '&sc_memo='.$requests['sc_memo'].
118                        '&sc_j_mem_enc='.serialize($requests['sc_j_mem']).
119                        '&sc_rwk_enc='.serialize($requests['sc_rwk_enc']).
120                        '&sc_rcount='.$requests['sc_rcount'];
121
122            client_redirect_absolute($url);
123            exit();  //強制的にスクリプトを終了しなければいけない
124        }
125        //--------------------
126
127        if((!$requests['sc_rp'])&&($requests['sc_bn'] == 1))  //当日中に終わる予定は、開始日と終了日は同一でなければならない
128            $finish_date = $begin_date;
129
130        if(!($requests['sc_b_hour']||$requests['sc_b_minute']||$requests['sc_f_hour']||$requests['sc_f_minute']))  //時刻指定なし
131            $begin_time = $finish_time = null;
132        elseif(!($requests['sc_f_hour']||$requests['sc_f_minute']))
133            $finish_time = null;
134
135        if($requests['sc_rp'])  //繰り返し予定
136        {
137            //終了日の決定
138            $finish_date = date("Y-m-d", strtotime($requests['sc_b_year'].'-'.$requests['sc_b_month'].'-'.($requests['sc_b_date']+($requests['sc_rcount'])*7)));
139
140            //first_idの決定
141            $first_id = biz_getScheduleMax() + 1;
142            if(!$first_id)
143                $first_id = 1;
144
145            //繰り返しルールの決定
146            foreach($requests['sc_rwk'] as $value)
147                $rp_rule += 1 << $value;
148        }
149
150        else  //繰り返しなし
151            $finish_date = date("Y-m-d", strtotime($requests['sc_b_year'].'-'.$requests['sc_b_month'].'-'.($requests['sc_b_date']+($requests['sc_bn']-1))));
152
153        if(!$requests['sc_rp'])  //繰り返しをしない予定登録
154            biz_insertSchedule($requests['sc_title'], $u, $begin_date, $finish_date, $begin_time, $finish_time, $requests['sc_memo'], $rp_rule, 0, $requests['sc_j_mem'], $requests['sc_j_plc']);
155        else  //繰り返し予定
156        {
157            $tmp = $begin_date;  //処理中の日付
158
159            for($i=0; date("Ymd", strtotime($tmp)) < date("Ymd", strtotime($finish_date)); $i++)
160            {
161                $nowday = strtotime($requests['sc_b_year'].'-'.$requests['sc_b_month'].'-'.($requests['sc_b_date']+$i));
162                $tmp = date("Ymd", $nowday);
163                if($rp_rule & (1 << date("w",$nowday)))
164                    biz_insertSchedule($requests['sc_title'], $u, $tmp, $tmp, $begin_time, $finish_time, $requests['sc_memo'], $rp_rule, $first_id, $requests['sc_j_mem'], $requests['sc_j_plc']);
165            }
166        }
167
168        $week = date("W", abs(strtotime($begin_date)-strtotime(date("Y-m-d"))))-1;
169        client_redirect_absolute("?m=biz&a=page_fh_biz_schedule_view&w=$week&msg=".urlencode('予定を追加しました。')."&id=".biz_getScheduleMax());
170    }
171}
172
173?>
Note: See TracBrowser for help on using the repository browser.