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

source: OpenPNE/branches/ebihara/dev_2_6/webapp_biz/modules/biz/lib/smarty_functions.php @ 959

Last change on this file since 959 was 959, checked in by ebihara, 14 years ago

スケジュール表示に権限を追加

File size: 8.1 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($member_id, $u, $w, $cmd, $head = true, $value = true, $foot = true, $member_info = false)
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), 0);
73    $Week->build();
74    $calendar = array();
75    $dayofweek = array('日','月','火','水','木','金','土');
76    $i = 0;
77
78    $schedule = array();
79
80    while ($Day = $Week->fetch()) {
81        $y = sprintf("%02d",$Day->thisYear());
82        $m = sprintf("%02d",$Day->thisMonth());
83        $d = sprintf("%02d",$Day->thisDay());
84        $m_disp = sprintf("%2d",$Day->thisMonth());
85        $d_disp = sprintf("%2d",$Day->thisDay());
86
87        if ($cmd != 's_list') {
88            $schedule = biz_getDateMemberSchedule($y, $m, $d, $member_id, $u);
89            $banner = biz_isBannerSchedule($y, $m, $d, $member_id);
90
91            if (!empty($banner)) {
92                array_push($schedule, $banner);
93            }
94        } else {
95            $schedule = biz_getShisetsuSchedule($y,$m,$d, $member_id);
96        }
97
98        $item = array(
99                'year'=> $y,
100                'month'=>$m,
101                'day' => $d,
102                'month_disp'=>$m_disp,
103                'day_disp' => $d_disp,
104                'dayofweek'=>$dayofweek[$i++], 
105                'now' => false,
106                'birth' => p_h_home_birth4c_member_id($m, $d, $member_id),
107                'event' => p_h_home_event4c_member_id($y, $m, $d, $member_id),
108                'schedule' => $schedule,
109            );
110
111        if ($w == 0 && $d == date('d')) {
112            $item['now'] = true;
113        }
114
115        $calendar[] = $item;
116    }
117
118    $daylist = $calendar;  //コピー
119
120    for ($i = 1; $i <= 2; $i++) {
121        $j = 0;  //曜日ポインタを示す
122
123        $time = strtotime($w+$i . " week");
124        $Week = new Calendar_Week(date('Y', $time), date('m', $time), date('d', $time), 0);
125        $Week->build();
126
127        while ($Day = $Week->fetch()) {
128            $y = sprintf("%02d",$Day->thisYear());
129            $m = sprintf("%02d",$Day->thisMonth());
130            $d = sprintf("%02d",$Day->thisDay());
131
132            $item = array(
133                'year' => $y,
134                'month' => $m,
135                'day' => $d,
136                'dayofweek' => $dayofweek[$j++],
137            );
138
139            $daylist[] = $item;
140        }
141    }
142
143    $inc_smarty->assign("daylist", $daylist);
144
145
146    if ($cmd == 's_list') {
147        $hours = biz_makeSerialArray(23);  //時
148        $inc_smarty->assign("hours", $hours);
149        $mins = biz_makeSerialArray(300, 30, 30);  //分
150        $inc_smarty->assign("mins", $mins);
151        $inc_smarty->assign("list", biz_getShisetsuData($member_id));
152        $config = biz_getConfig();
153
154        $inc_smarty->assign('is_closed_shisetsu', $config['IS_CLOSED_SHISETSU']);
155    }
156
157    $inc_smarty->assign('calendar', $calendar);
158    $inc_smarty->assign('head', $head);
159    $inc_smarty->assign('value', $value);
160    $inc_smarty->assign('foot', $foot);
161    if ($member_info) {
162        $inc_smarty->assign('member_info', $member_info);
163    }
164
165    if ($cmd == 'h') {
166        $stateform = biz_getStateForm($member_id, true);
167        $inc_smarty->assign('stateform', $stateform);
168    }
169
170    $content = $inc_smarty->fetch('file:'.OPENPNE_MODULES_BIZ_DIR.'/biz/templates/inc_biz_schedule_week.tpl');
171
172    return $content;
173}
174
175//Todoリストを得る
176function biz_getTodoList($member_id, $cmd, $nickname = null)
177{
178    $inc_smarty = new OpenPNE_Smarty($GLOBALS['SMARTY']);
179    $inc_smarty->assign("PHPSESSID", md5(session_id()));
180    $inc_smarty->templates_dir = 'pc/templates';;
181
182    $inc_smarty->assign("cmd", $cmd);  //操作の対象ページ
183    $inc_smarty->assign("target_id", $member_id);  //予定登録者
184    if ($nickname) {
185        $inc_smarty->assign("nickname", $nickname);  //予定登録者
186    }
187
188    $todolist = biz_getMemberTodo($member_id);
189    $checkedlist = biz_getMemberTodo($member_id, 1);
190
191    foreach ($todolist as $key => $value) {
192        if ($value['writer_name']) {
193            $writer_name = db_common_c_member4c_member_id($value['writer_id']);
194            $todolist[$key]['writer_name'] = $writer_name['nickname'];
195        }
196    }
197
198    $inc_smarty->assign("todolist", $todolist);
199    $inc_smarty->assign("checkedlist", $checkedlist);
200    $content = $inc_smarty->fetch('file:'.OPENPNE_MODULES_BIZ_DIR.'/biz/templates/inc_biz_todo.tpl');
201    return $content;
202}
203
204//stateを得る
205function biz_getStateForm($member_id, $is_form = false)
206{
207    $inc_smarty = new OpenPNE_Smarty($GLOBALS['SMARTY']);
208    $inc_smarty->assign("PHPSESSID", md5(session_id()));
209    $inc_smarty->templates_dir = 'pc/templates';
210
211    $inc_smarty->assign("target_id", $member_id);
212    $state = biz_getState($member_id);
213
214    $inc_smarty->assign("is_form", $is_form);
215
216    //nickname用-----
217    $c_member=db_common_c_member4c_member_id($member_id);
218    $inc_smarty->assign("c_member", $c_member);
219    //nickname用-----
220
221    $inc_smarty->assign("state", $state);
222    $content = $inc_smarty->fetch('file:'.OPENPNE_MODULES_BIZ_DIR.'/biz/templates/inc_biz_state.tpl');
223
224    return $content;
225}
226
227function biz_getNewSchedule($member_id)
228{
229    $newschedule = biz_getJoinIdNewSchedule($member_id);
230
231    $inc_smarty = new OpenPNE_Smarty($GLOBALS['SMARTY']);
232    $inc_smarty->assign("PHPSESSID", md5(session_id()));
233    $inc_smarty->templates_dir = 'pc/templates';;
234    $inc_smarty->assign("newlist", $newschedule);
235
236    $content = $inc_smarty->fetch('file:'.OPENPNE_MODULES_BIZ_DIR.'/biz/templates/inc_biz_new_schedule.tpl');
237    return $content;
238}
239
240function biz_getPostedTodoList($member_id)
241{
242    $posted = biz_getPostedTodo($member_id, 5);
243
244    $inc_smarty = new OpenPNE_Smarty($GLOBALS['SMARTY']);
245    $inc_smarty->assign("PHPSESSID", md5(session_id()));
246    $inc_smarty->templates_dir = 'pc/templates';;
247    $inc_smarty->assign("posted_todo", $posted);
248    $content = $inc_smarty->fetch('file:'.OPENPNE_MODULES_BIZ_DIR.'/biz/templates/inc_biz_posted_todo.tpl');
249    return $content;
250}
251
252function biz_getHomeGroupList($c_member_id)
253{
254    $inc_smarty = new OpenPNE_Smarty($GLOBALS['SMARTY']);
255
256    $inc_smarty->assign('PHPSESSID', md5(session_id()));
257    $inc_smarty->templates_dir = 'pc/templates';;
258    $inc_smarty->assign("group_list", biz_getJoinGroup($c_member_id, 9));
259    $inc_smarty->assign("group_count", biz_getGroupCount($c_member_id));
260
261    $content = $inc_smarty->fetch('file:'.OPENPNE_MODULES_BIZ_DIR.'/biz/templates/inc_biz_home_group_list.tpl');
262
263    return $content;
264}
265
266//SET---------------------------------------------
267
268
269?>
Note: See TracBrowser for help on using the repository browser.