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

source: OpenPNE/branches/ebihara/prj_dev26_todo/webapp_biz/modules/biz/lib/smarty_functions.php @ 1066

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

Todo表示時に権限チェックを行うようにした

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