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

source: OpenPNE/branches/2.6.x/webapp_biz/modules/biz/lib/smarty_functions.php @ 2949

Last change on this file since 2949 was 2949, checked in by ebihara, 13 years ago

#718:BIZで週間カレンダー表示開始曜日を変更すると、h_homeの予定登録の日付プルダウンに表示される曜日がずれてしまっていたのを修正

File size: 8.4 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
7//bizモジュール用 Smarty操作用ライブラリ
8
9//予期しない多重定義を避けるため、必ず関数名にはbiz_というprefixをつける
10
11//テンプレートリソースの登録-------------------------------------------
12
13//テンプレートリソースの定義
14define('PC_TPL_DIR', OPENPNE_DIR.'/webapp/modules/pc/templates/');
15
16function pc_get_template($tpl_name, &$tpl_source, &$smarty_obj)
17{
18    $filename = PC_TPL_DIR.$tpl_name;
19    $tpl = @file($filename);
20
21    if ($tpl) {
22        $tpl_source = join("\n", $tpl);
23        return true;
24    } else {
25        return false;
26    }
27}
28
29function pc_get_timestamp($tpl_name, &$tpl_timestamp, &$smarty_obj)
30{
31    $filename = PC_TPL_DIR.$tpl_name;
32    $tpl_timestamp = filemtime($filename);
33
34    return $tpl_timestamp;
35}
36
37function pc_get_secure($tpl_name, &$smarty_obj)
38{
39    return true;
40}
41
42function pc_get_trusted($tpl_name, &$smarty_obj)
43{
44}
45
46//GET---------------------------------------------
47
48//スケジュール用カレンダーを得る
49function biz_getScheduleWeek($u, $member_id, $w, $cmd, $head = true, $value = true, $foot = true, $member_info = false, $start_day = 0 )
50{
51    if ($cmd != 'p') {
52        //プロフィール確認かどうか
53        $cmd_head = $cmd;
54    } else {
55        $cmd_head = 'h';
56    }
57
58    $inc_smarty = new OpenPNE_Smarty($GLOBALS['SMARTY']);
59    $inc_smarty->assign("PHPSESSID", md5(session_id()));
60    $inc_smarty->templates_dir = 'biz/templates';
61
62    $inc_smarty->assign("cmd", $cmd_head);  //操作の対象ページ
63    $inc_smarty->assign("target_id", $member_id);  //予定参加者
64
65    require_once 'Calendar/Week.php';
66    $w = intval($w);
67    if (empty($w)) {
68        $w = 0;
69    }
70    $inc_smarty->assign('w', $w);
71    $time = strtotime($w . " week");
72    $Week = new Calendar_Week(date('Y', $time), date('m', $time), date('d', $time), $start_day);
73    $Week->build();
74    $calendar = array();
75    $dayofweek = array('日','月','火','水','木','金','土');
76    $i = $start_day;
77    $dayofweek = array_merge($dayofweek,
78        array_slice($dayofweek, 0, ($start_day + 1)));
79    $schedule = array();
80
81    while ($Day = $Week->fetch()) {
82        $y = sprintf("%02d",$Day->thisYear());
83        $m = sprintf("%02d",$Day->thisMonth());
84        $d = sprintf("%02d",$Day->thisDay());
85        $m_disp = sprintf("%2d",$Day->thisMonth());
86        $d_disp = sprintf("%2d",$Day->thisDay());
87
88        if ($cmd != 's_list') {
89            $schedule = biz_getDateMemberSchedule($y, $m, $d, $member_id, $u);
90            $banner = biz_isBannerSchedule($y, $m, $d, $member_id);
91
92            if (!empty($banner)) {
93                array_push($schedule, $banner);
94            }
95        } else {
96            $schedule = biz_getShisetsuSchedule($y,$m,$d, $member_id);
97        }
98
99        $item = array(
100                'year'=> $y,
101                'month'=>$m,
102                'day' => $d,
103                'month_disp'=>$m_disp,
104                'day_disp' => $d_disp,
105                'dayofweek'=>$dayofweek[$i++], 
106                'now' => false,
107                'birth' => db_member_birth4c_member_id($m, $d, $member_id),
108                'event' => db_commu_event4c_member_id($y, $m, $d, $member_id),
109                'schedule' => $schedule,
110                'todo' => biz_schedule_todo4c_member_id($u, $member_id, $y, $m, $d),
111                'holiday' => db_c_holiday_list4date($m, $d),
112            );
113
114        if ($w == 0 && $d == date('d')) {
115            $item['now'] = true;
116        }
117
118        $calendar[] = $item;
119    }
120
121    $daylist = $calendar;  //コピー
122
123    for ($i = 1; $i <= 2; $i++) {
124        $j = $start_day;  //曜日ポインタを示す
125
126        $time = strtotime($w+$i . " week");
127        $Week = new Calendar_Week(date('Y', $time), date('m', $time), date('d', $time),$start_day);
128        $Week->build();
129
130        while ($Day = $Week->fetch()) {
131            $y = sprintf("%02d",$Day->thisYear());
132            $m = sprintf("%02d",$Day->thisMonth());
133            $d = sprintf("%02d",$Day->thisDay());
134
135            $item = array(
136                'year' => $y,
137                'month' => $m,
138                'day' => $d,
139                'dayofweek' => $dayofweek[$j++],
140            );
141
142            $daylist[] = $item;
143        }
144    }
145
146    $inc_smarty->assign("daylist", $daylist);
147
148
149    if ($cmd == 's_list') {
150        $hours = biz_makeSerialArray(23);  //時
151        $inc_smarty->assign("hours", $hours);
152        $mins = biz_makeSerialArray(300, 30, 30);  //分
153        $inc_smarty->assign("mins", $mins);
154        $inc_smarty->assign("list", biz_getShisetsuData($member_id));
155        $config = biz_getConfig();
156
157        $inc_smarty->assign('is_closed_shisetsu', $config['IS_CLOSED_SHISETSU']);
158    }
159
160    $inc_smarty->assign('calendar', $calendar);
161    $inc_smarty->assign('head', $head);
162    $inc_smarty->assign('value', $value);
163    $inc_smarty->assign('foot', $foot);
164    if ($member_info) {
165        $inc_smarty->assign('member_info', $member_info);
166    }
167
168    if ($cmd == 'h') {
169        $stateform = biz_getStateForm($member_id, true);
170        $inc_smarty->assign('stateform', $stateform);
171    }
172
173    $content = $inc_smarty->fetch('file:'.OPENPNE_MODULES_BIZ_DIR.'/biz/templates/inc_biz_schedule_week.tpl');
174
175    return $content;
176}
177
178//Todoリストを得る
179function biz_getTodoList($u, $member_id, $cmd, $nickname = null)
180{
181    $inc_smarty = new OpenPNE_Smarty($GLOBALS['SMARTY']);
182    $inc_smarty->assign("PHPSESSID", md5(session_id()));
183    $inc_smarty->templates_dir = 'pc/templates';;
184
185    $inc_smarty->assign("cmd", $cmd);  //操作の対象ページ
186    $inc_smarty->assign("target_id", $member_id);  //予定登録者
187    if ($nickname) {
188        $inc_smarty->assign("nickname", $nickname);  //予定登録者
189    }
190
191    $todolist = biz_getMemberTodo($u, $member_id);
192    $checkedlist = biz_getMemberTodo($u, $member_id, 1);
193
194    foreach ($todolist as $key => $value) {
195        if ($value['writer_name']) {
196            $writer_name = db_member_c_member4c_member_id($value['writer_id']);
197            $todolist[$key]['writer_name'] = $writer_name['nickname'];
198        }
199    }
200
201    $inc_smarty->assign("todolist", $todolist);
202    $inc_smarty->assign("checkedlist", $checkedlist);
203    $content = $inc_smarty->fetch('file:'.OPENPNE_MODULES_BIZ_DIR.'/biz/templates/inc_biz_todo.tpl');
204    return $content;
205}
206
207//stateを得る
208function biz_getStateForm($member_id, $is_form = false)
209{
210    $inc_smarty = new OpenPNE_Smarty($GLOBALS['SMARTY']);
211    $inc_smarty->assign("PHPSESSID", md5(session_id()));
212    $inc_smarty->templates_dir = 'pc/templates';
213
214    $inc_smarty->assign("target_id", $member_id);
215    $state = biz_getState($member_id);
216
217    $inc_smarty->assign("is_form", $is_form);
218
219    //nickname用-----
220    $c_member=db_member_c_member4c_member_id($member_id);
221    $inc_smarty->assign("c_member", $c_member);
222    //nickname用-----
223
224    $inc_smarty->assign("state", $state);
225    $content = $inc_smarty->fetch('file:'.OPENPNE_MODULES_BIZ_DIR.'/biz/templates/inc_biz_state.tpl');
226
227    return $content;
228}
229
230function biz_getNewSchedule($member_id)
231{
232    $newschedule = biz_getJoinIdNewSchedule($member_id);
233
234    $inc_smarty = new OpenPNE_Smarty($GLOBALS['SMARTY']);
235    $inc_smarty->assign("PHPSESSID", md5(session_id()));
236    $inc_smarty->templates_dir = 'pc/templates';;
237    $inc_smarty->assign("newlist", $newschedule);
238
239    $content = $inc_smarty->fetch('file:'.OPENPNE_MODULES_BIZ_DIR.'/biz/templates/inc_biz_new_schedule.tpl');
240    return $content;
241}
242
243function biz_getPostedTodoList($member_id)
244{
245    $posted = biz_getPostedTodo($member_id, 5);
246
247    $inc_smarty = new OpenPNE_Smarty($GLOBALS['SMARTY']);
248    $inc_smarty->assign("PHPSESSID", md5(session_id()));
249    $inc_smarty->templates_dir = 'pc/templates';;
250    $inc_smarty->assign("posted_todo", $posted);
251    $content = $inc_smarty->fetch('file:'.OPENPNE_MODULES_BIZ_DIR.'/biz/templates/inc_biz_posted_todo.tpl');
252    return $content;
253}
254
255function biz_getHomeGroupList($c_member_id)
256{
257    $inc_smarty = new OpenPNE_Smarty($GLOBALS['SMARTY']);
258
259    $inc_smarty->assign('PHPSESSID', md5(session_id()));
260    $inc_smarty->templates_dir = 'pc/templates';;
261    $inc_smarty->assign("group_list", biz_getJoinGroup($c_member_id, 9));
262    $inc_smarty->assign("group_count", biz_getGroupCount($c_member_id));
263
264    $content = $inc_smarty->fetch('file:'.OPENPNE_MODULES_BIZ_DIR.'/biz/templates/inc_biz_home_group_list.tpl');
265
266    return $content;
267}
268
269//SET---------------------------------------------
270
271
272?>
Note: See TracBrowser for help on using the repository browser.