Beispiel #1
0
 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 execute($requests)
 {
     $u = $GLOBALS['AUTH']->uid();
     if (!biz_isPermissionSchedule($u, $requests['schedule_id'])) {
         handle_kengen_error();
     }
     $form_val['subject'] = $requests['subject'];
     $form_val['body'] = $requests['body'];
     $this->set('banner', $requests['sc_bn']);
     if ($requests['sc_title']) {
         $requests['title'] = $requests['sc_title'];
     }
     if ($requests['sc_memo']) {
         $requests['value'] = $requests['sc_memo'];
     }
     if ($requests['sc_b_year'] && $requests['sc_b_month'] && $requests['sc_b_date']) {
         $requests['begin_date'] = $requests['sc_b_year'] . '-' . $requests['sc_b_month'] . '-' . $requests['sc_b_date'];
     }
     if ($requests['sc_b_hour'] && $requests['sc_b_minute']) {
         $requests['begin_time'] = $requests['sc_b_hour'] . ':' . $requests['sc_b_minute'];
     }
     if ($requests['sc_f_hour'] && $requests['sc_f_minute']) {
         $requests['finish_time'] = $requests['sc_f_hour'] . ':' . $requests['sc_f_minute'];
     }
     $sessid = session_id();
     $schedule = biz_getScheduleInfo($requests['schedule_id']);
     if ($schedule['c_member_id'] == $u) {
         //自分自身
         $target_id = $u;
         $this->set('is_h', true);
         //判別フラグ
         $this->set('inc_navi', fetch_inc_navi('h'));
     } else {
         //他人
         $target_id = $requests['target_id'];
         $this->set('is_f', true);
         //判別フラグ
         $this->set('inc_navi', fetch_inc_navi('f'));
     }
     //プロフィール
     $this->set("target_member", db_member_c_member4c_member_id($u));
     $this->set("form_val", $form_val);
     //カレンダー関係
     //カレンダー開始用変数
     $year = date("Y");
     $month = date("n");
     //カレンダー用変数
     $date_val = array('year' => $year, 'month' => $month, 'day' => null);
     $this->set("date_val", $date_val);
     //日記のカレンダー
     $calendar = db_common_diary_monthly_calendar($year, $month, $u);
     $this->set("calendar", $calendar['days']);
     $this->set("ym", $calendar['ym']);
     //日付関連
     if ($requests['rep_type']) {
         $begin_date = biz_getRepeatBegin($requests['schedule_id']);
     } else {
         $begin_date = $requests['begin_date'];
     }
     $nowyear = date("Y", strtotime($begin_date));
     $nowmonth = date("m", strtotime($begin_date));
     $nowday = date("d", strtotime($begin_date));
     for ($i = $nowyear; $i <= $nowyear + 10; $i++) {
         if ($i == $nowyear) {
             $years = '<option value="' . $i . '" selected="selected">';
         } else {
             $years .= '<option value="' . $i . '">';
         }
         $years .= $i . '年';
         $years .= '</option>';
     }
     for ($i = 1; $i <= 12; $i++) {
         $i_f = sprintf("%02d", $i);
         //月は常に二桁
         if ($i == $nowmonth) {
             $monthes .= '<option value="' . $i_f . '" selected="selected">';
         } else {
             $monthes .= '<option value="' . $i_f . '">';
         }
         $monthes .= $i . '月';
         $monthes .= '</option>';
     }
     for ($i = 1; $i <= 31; $i++) {
         $i_f = sprintf("%02d", $i);
         //日は常に二桁
         if ($i == $nowday) {
             $days .= '<option value="' . $i_f . '" selected="selected">';
         } else {
             $days .= '<option value="' . $i_f . '">';
         }
         $days .= $i . '日';
         $days .= '</option>';
     }
     $hours = biz_makeSerialArray(23);
     //時
     $mins = biz_makeSerialArray(55, 0, 5);
     //分
     $wk = array('日', '月', '火', '水', '木', '金', '土');
     //週
     $rp_count = biz_makeSerialArray(12, 1);
     //繰り返し回数
     $bn_num = biz_makeSerialArray(31, 1);
     //日数
     $this->set('years', $years);
     $this->set('monthes', $monthes);
     $this->set('days', $days);
     $this->set('hours', $hours);
     $this->set('mins', $mins);
     $this->set('wk', $wk);
     $this->set('rp_count', $rp_count);
     $this->set('bn_num', $bn_num);
     $this->set('title', $requests['title']);
     $this->set('value', $requests['value']);
     if (!is_null($requests['begin_time'])) {
         $this->set('begin_hour', date("G", strtotime($requests['begin_time'])));
     }
     if (!is_null($requests['begin_time'])) {
         $begin_min = date("i", strtotime($requests['begin_time']));
         if (substr($begin_min, 0, 1) == '0') {
             $begin_min = substr($begin_min, 1, 1);
         }
     }
     if (!is_null($requests['begin_time'])) {
         $this->set('begin_min', $begin_min);
     }
     if (!is_null($requests['finish_time'])) {
         $this->set('finish_hour', date("G", strtotime($requests['finish_time'])));
     } else {
         $this->set('finish_hour', null);
     }
     if (!is_null($requests['finish_time'])) {
         $finish_min = date("i", strtotime($requests['finish_time']));
     }
     if (substr($finish_min, 0, 1) == '0') {
         $finish_min = substr($finish_min, 1, 1);
     }
     if (!is_null($requests['begin_time'])) {
         $this->set('finish_min', $finish_min);
     } else {
         $this->set('finish_min', null);
     }
     if ($requests['rep_type']) {
         $is_rep = true;
     } else {
         if ($requests['sc_rp']) {
             $is_rep = true;
         } else {
             $is_rep = false;
         }
     }
     $dayofweek = array();
     if (empty($requests['rep_type'])) {
         foreach ($requests['sc_rwk'] as $value) {
             $rp_rule += 1 << $value;
         }
         $requests['rep_type'] = $rp_rule;
     }
     for ($i = 0; $i <= 6; $i++) {
         if ($requests['rep_type'] & 1 << $i) {
             array_push($dayofweek, 1);
         } else {
             array_push($dayofweek, 0);
         }
     }
     $this->set('rep_type', $dayofweek);
     $this->set('is_rep', $is_rep);
     $this->set('schedule_id', $requests['schedule_id']);
     $repeat_begin = biz_getRepeatBegin($requests['schedule_id']);
     $repeat_finish = biz_getRepeatFinish($requests['schedule_id']);
     $repeat_term = strtotime($repeat_finish) - strtotime($repeat_begin);
     $daycount = $repeat_term / (24 * 60 * 60) / 6;
     $this->set('repeat_begin_date', $repeat_begin);
     if (isset($requests["sc_rcount"])) {
         $daycount = $requests["sc_rcount"];
     }
     $this->set('repeat_term', ceil($daycount));
     $biz_group_count = biz_getGroupCount($target_id);
     $biz_group_list = biz_getJoinGroupList($target_id, 1, $biz_group_count);
     $this->set('biz_group_list', $biz_group_list[0]);
     $this->set('target_biz_group_id', $schedule['biz_group_id']);
     if ($requests['public_flag']) {
         $this->set('public_flag', $requests['public_flag']);
     } else {
         $this->set('public_flag', $schedule['public_flag']);
     }
     //追加
     if ($requests['members']) {
         $j_members = array_keys(unserialize($requests['members']));
         sort($j_members);
     } elseif ($requests['sc_j_mem']) {
         $j_members = $requests['sc_j_mem'];
     } else {
         $j_members = biz_getJoinMemberSchedule($requests['schedule_id']);
     }
     $this->set('j_members', $j_members);
     $members = array();
     $sql = 'SELECT c_member_id, nickname FROM c_member';
     $members = db_get_all($sql, $params);
     $i = 0;
     foreach ($members as $key => $value) {
         if (in_array($value['c_member_id'], $j_members)) {
             $members[$key]['checkflag'] = 1;
             $i++;
         }
         if (count($j_members) < $i) {
             break;
         }
     }
     $this->set('members', $members);
     return 'success';
 }
 function execute($requests)
 {
     $u = $GLOBALS['AUTH']->uid();
     $form_val['subject'] = $requests['subject'];
     $form_val['body'] = $requests['body'];
     $form_val['biz_group_id'] = $requests['target_biz_group_id'];
     if (empty($requests['target_id']) || $requests['target_id'] == $u) {
         //自分自身
         $target_id = $u;
         $this->set('is_h', true);
         //判別フラグ
         $this->set('inc_navi', fetch_inc_navi('h'));
     } else {
         //他人
         $target_id = $requests['target_id'];
         $this->set('is_f', true);
         //判別フラグ
         $this->set('inc_navi', fetch_inc_navi('f'));
     }
     $sessid = session_id();
     $target_member = db_member_c_member4c_member_id($u);
     //プロフィール
     $this->set("target_member", $target_member);
     $this->set("form_val", $form_val);
     //カレンダー関係
     //カレンダー開始用変数
     $year = date("Y");
     $month = date("n");
     //カレンダー用変数
     $date_val = array('year' => $year, 'month' => $month, 'day' => null);
     $this->set("date_val", $date_val);
     //日記のカレンダー
     $calendar = db_common_diary_monthly_calendar($year, $month, $u);
     $this->set("calendar", $calendar['days']);
     $this->set("ym", $calendar['ym']);
     $this->set("begin_date", $begin_date);
     $this->set("finish_date", $finish_date);
     $this->set("sc_title", $requests['sc_title']);
     $this->set("sc_memo", $requests['sc_memo']);
     //日付関連
     if ($requests['begin_date']) {
         $nowyear = date("Y", strtotime($requests['begin_date']));
         $nowmonth = date("m", strtotime($requests['begin_date']));
         $nowday = date("d", strtotime($requests['begin_date']));
         if ($requests['begin_time']) {
             $this->set('begin_hour', date("H", strtotime($requests['begin_time'])));
             $this->set('begin_min', date("i", strtotime($requests['begin_time'])));
         }
         if ($requests['finish_time']) {
             $this->set('finish_hour', date("H", strtotime($requests['finish_time'])));
             $this->set('finish_min', date("i", strtotime($requests['finish_time'])));
         }
     } else {
         $nowyear = date("Y");
         $nowmonth = date("m");
         $nowday = date("d");
     }
     for ($i = $nowyear; $i <= $nowyear + 10; $i++) {
         if ($i == $nowyear) {
             //現在年をデフォルトに
             $years = '<option value="' . $i . '" selected="selected">';
         } else {
             $years .= '<option value="' . $i . '">';
         }
         $years .= $i . '年';
         $years .= '</option>';
     }
     for ($i = 1; $i <= 12; $i++) {
         $i_f = sprintf("%02d", $i);
         //月は常に二桁
         if ($i == $nowmonth) {
             //現在月をデフォルトに
             $monthes .= '<option value="' . $i_f . '" selected="selected">';
         } else {
             $monthes .= '<option value="' . $i_f . '">';
         }
         $monthes .= $i . '月';
         $monthes .= '</option>';
     }
     for ($i = 1; $i <= 31; $i++) {
         $i_f = sprintf("%02d", $i);
         //日は常に二桁
         if ($i == $nowday) {
             $days .= '<option value="' . $i_f . '" selected="selected">';
         } else {
             $days .= '<option value="' . $i_f . '">';
         }
         $days .= $i . '日';
         $days .= '</option>';
     }
     $hours = biz_makeSerialArray(23);
     //時
     $mins = biz_makeSerialArray(55, 0, 5);
     //分
     $wk = array('日', '月', '火', '水', '木', '金', '土');
     //週
     $rp_count = biz_makeSerialArray(12, 1);
     //繰り返し回数
     $bn_num = biz_makeSerialArray(31, 1);
     //日数
     $this->set('years', $years);
     $this->set('monthes', $monthes);
     $this->set('days', $days);
     $this->set('hours', $hours);
     $this->set('mins', $mins);
     $this->set('wk', $wk);
     $this->set('rp_count', $rp_count);
     $this->set('bn_num', $bn_num);
     $this->set('my_id', $u);
     $this->set('is_h', true);
     $this->set('sc_rcount', $requests["sc_rcount"]);
     $this->set('sc_bn', $requests["sc_bn"]);
     $this->set('sc_rp', $requests["sc_rp"]);
     $sc_rwk_enc = array();
     if (isset($requests['sc_rwk_enc'])) {
         $sc_rwk_enc = unserialize($requests['sc_rwk_enc']);
     }
     foreach ($wk as $key => $value) {
         if (in_array($key, $sc_rwk_enc)) {
             $sc_rwk_chk[$key]['checkflag'] = 1;
         } else {
             $sc_rwk_chk[$key]['chekflag'] = 0;
         }
     }
     $this->set('sc_rwk_chk', $sc_rwk_chk);
     $biz_group_count = biz_getGroupCount($target_id);
     $biz_group_list = biz_getJoinGroupList($target_id, 1, $biz_group_count);
     $this->set('biz_group_list', $biz_group_list[0]);
     $this->set('target_c_member_id', $target_id);
     // グループのメンバーリストを取得
     $biz_group_member_list = biz_getGroupMember($form_val['biz_group_id']);
     $biz_group_member_id_list = array();
     foreach ($biz_group_member_list as $biz_group_member) {
         $biz_group_member_id_list[] = $biz_group_member['c_member_id'];
     }
     //追加
     $members = array();
     $sql = 'SELECT c_member_id, nickname FROM c_member WHERE c_member_id != ' . $target_id;
     $members = db_get_all($sql);
     $sql = 'SELECT c_member_id, nickname FROM c_member WHERE c_member_id = ' . $target_id;
     $my_info = db_get_row($sql);
     array_unshift($members, $my_info);
     $members[0]['checkflag'] = 1;
     $jmembers = unserialize($requests['sc_j_mem_enc']);
     $i = 0;
     if (empty($jmembers)) {
         foreach ($members as $key => $value) {
             if (in_array($value['c_member_id'], $biz_group_member_id_list)) {
                 $members[$key]['checkflag'] = 1;
             }
         }
     } else {
         foreach ($members as $key => $value) {
             if ($jmembers[$i] == $value['c_member_id']) {
                 $members[$key]['checkflag'] = 1;
                 $i++;
             }
             if (count($jmembers) < $i) {
                 break;
             }
         }
     }
     $this->set('members', $members);
     return 'success';
 }