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

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

Last change on this file since 269 was 269, checked in by ogawa, 16 years ago

webappの変更をwebapp_bizへマージ

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