function execute($requests) { $u = $GLOBALS['AUTH']->uid(); // --- リクエスト変数 $this->set("list", biz_getShisetsuList()); //カレンダー表示用 require_once 'Calendar/Week.php'; $w = intval($_REQUEST['w']); if (empty($w)) { $w = 0; } $this->set('w', $w); $time = strtotime($w . " week"); $Week = new Calendar_Week(date('Y', $time), date('m', $time), date('d', $time), 0); $Week->build(); $calendar = array(); $dayofweek = array('日', '月', '火', '水', '木', '金', '土'); $i = 0; $schedule = array(); while ($Day = $Week->fetch()) { $y = sprintf("%02d", $Day->thisYear()); $m = sprintf("%02d", $Day->thisMonth()); $d = sprintf("%02d", $Day->thisDay()); $schedule = biz_getShisetsuSchedule($y, $m, $d); $item = array('year' => $y, 'month' => $m, 'day' => $d, 'dayofweek' => $dayofweek[$i++], 'now' => false, 'schedule' => $schedule); if ($w == 0 && $d == date('d')) { $item['now'] = true; } $calendar[] = $item; } $list = biz_getShisetsuList(); $calendar = ''; foreach ($list as $key => $value) { $calendar .= biz_getScheduleWeek($u, $value['biz_shisetsu_id'], $requests['w'], 's_list', true, true, true); } $this->set('calendar', $calendar); $hours = biz_makeSerialArray(23); //時 $this->set("hours", $hours); $config = biz_getConfig(); $this->set('inc_navi', fetch_inc_navi('h')); $this->set('is_closed_shisetsu', $config['IS_CLOSED_SHISETSU']); return 'success'; }
function biz_getScheduleWeek($u, $member_id, $w, $cmd, $head = true, $value = true, $foot = true, $member_info = false, $start_day = 0) { $inc_smarty = new OpenPNE_Smarty($GLOBALS['SMARTY']); $inc_smarty->assign("PHPSESSID", md5(session_id())); $inc_smarty->templates_dir = 'biz/templates'; $inc_smarty->assign("cmd", $cmd); //操作の対象ページ $inc_smarty->assign("target_id", $member_id); //予定参加者 require_once 'Calendar/Week.php'; $w = intval($w); if (empty($w)) { $w = 0; } $inc_smarty->assign('w', $w); $time = strtotime($w . " week"); $Week = new Calendar_Week(date('Y', $time), date('m', $time), date('d', $time), $start_day); $Week->build(); $calendar = array(); $dayofweek = array('日', '月', '火', '水', '木', '金', '土'); $i = $start_day; $dayofweek = array_merge($dayofweek, array_slice($dayofweek, 0, $start_day + 1)); $schedule = array(); while ($Day = $Week->fetch()) { $y = sprintf("%02d", $Day->thisYear()); $m = sprintf("%02d", $Day->thisMonth()); $d = sprintf("%02d", $Day->thisDay()); $m_disp = sprintf("%2d", $Day->thisMonth()); $d_disp = sprintf("%2d", $Day->thisDay()); if ($cmd != 's_list') { $schedule = biz_getDateMemberSchedule($y, $m, $d, $member_id, $u); $banner = biz_isBannerSchedule($y, $m, $d, $member_id); if (!empty($banner)) { foreach ($banner as $value) { array_push($schedule, $value); } } } else { $schedule = biz_getShisetsuSchedule($y, $m, $d, $member_id); } $item = array('year' => $y, 'month' => $m, 'day' => $d, 'month_disp' => $m_disp, 'day_disp' => $d_disp, 'dayofweek' => $dayofweek[$i++], 'now' => false, 'birth' => db_member_birth4c_member_id($m, $d, $member_id), 'event' => db_commu_event4c_member_id($y, $m, $d, $member_id), 'schedule' => $schedule, 'todo' => biz_schedule_todo4c_member_id($u, $member_id, $y, $m, $d), 'holiday' => db_c_holiday_list4date($m, $d)); if ($w == 0 && $d == date('d')) { $item['now'] = true; } $calendar[] = $item; } $daylist = $calendar; //コピー for ($i = 1; $i <= 2; $i++) { $j = $start_day; //曜日ポインタを示す $time = strtotime($w + $i . " week"); $Week = new Calendar_Week(date('Y', $time), date('m', $time), date('d', $time), $start_day); $Week->build(); while ($Day = $Week->fetch()) { $y = sprintf("%02d", $Day->thisYear()); $m = sprintf("%02d", $Day->thisMonth()); $d = sprintf("%02d", $Day->thisDay()); $item = array('year' => $y, 'month' => $m, 'day' => $d, 'dayofweek' => $dayofweek[$j++]); $daylist[] = $item; } } $inc_smarty->assign("daylist", $daylist); if ($cmd == 's_list') { $hours = biz_makeSerialArray(23); //時 $inc_smarty->assign("hours", $hours); $mins = biz_makeSerialArray(300, 30, 30); //分 $inc_smarty->assign("mins", $mins); $inc_smarty->assign("list", biz_getShisetsuData($member_id)); $config = biz_getConfig(); $inc_smarty->assign('is_closed_shisetsu', $config['IS_CLOSED_SHISETSU']); } $inc_smarty->assign('calendar', $calendar); $inc_smarty->assign('head', $head); $inc_smarty->assign('value', $value); $inc_smarty->assign('foot', $foot); if ($member_info) { $inc_smarty->assign('member_info', $member_info); } if ($cmd == 'h') { if (OPENPNE_USE_POINT_RANK) { // ポイント $point = db_point_get_point($member_id); $inc_smarty->assign("point", $point); // ランク $inc_smarty->assign("rank", db_point_get_rank4point($point)); } } $content = $inc_smarty->fetch('file:' . OPENPNE_MODULES_BIZ_DIR . '/biz/templates/inc_biz_schedule_week.tpl'); return $content; }
function biz_isBatting($shisetsu_id, $y, $m, $d, $begin_time, $finish_time) { $list = biz_getShisetsuSchedule($y, $m, $d, $shisetsu_id); if (empty($list)) { //初めての予定登録 return true; } $result = false; foreach ($list as $value) { //日付を演算できる値に変換 $b_begin = strtotime($value['begin_time']); $b_finish = strtotime($value['finish_time']); $t_begin = strtotime($begin_time); $t_finish = strtotime($finish_time); //OKパターンの判別 if ($t_begin >= $b_finish) { //登録される予定開始が、既存予定終了以下である $result = true; } elseif ($t_finish <= $b_begin) { //登録される予定終了が、既存予定開始以下である $result = true; } else { //OKパターンに当てはまらない予定である return false; } } return $result; }