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

source: OpenPNE/trunk/webapp_biz/modules/biz/lib/smarty_functions.php @ 6340

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

#2186:BIZのXHTML+CSS化

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