Example #1
0
function booking_table($jbi_sn = "", $getdate = "")
{
    global $xoopsDB, $xoopsTpl, $xoopsUser, $xoopsModuleConfig, $can_booking, $Isapproval;
    $uid = !empty($xoopsUser) ? $xoopsUser->uid() : "";
    //場地設定
    $item_opt = get_jill_booking_time_options($jbi_sn);
    if (!empty($jbi_sn)) {
        //可啟用場地資訊
        $itemArr = get_jill_booking_item($jbi_sn, 1);
        $jbi_sn = empty($itemArr['jbi_sn']) ? "" : $itemArr['jbi_sn'];
        if (!empty($itemArr)) {
            //場地預約起始日期
            $start = strtotime($itemArr['jbi_start']);
            $now = strtotime(date('Y-m-d'));
            $start = $start <= $now ? $now : $start;
            //設定可預約之週數及日期
            $max_bookingweek = $xoopsModuleConfig['max_bookingweek'];
            //$show_range      = date("Y-m-d", strtotime("+$max_bookingweek week"));
            if (empty($max_bookingweek)) {
                //場地預約結束日期
                $end = $itemArr['jbi_end'] == '0000-00-00' ? 0 : strtotime($itemArr['jbi_end']);
            } else {
                $endtime = strtotime("+{$max_bookingweek} week");
                if ($itemArr['jbi_end'] == '0000-00-00') {
                    $end = $endtime;
                } else {
                    $end = strtotime($itemArr['jbi_end']) >= $endtime ? $endtime : strtotime($itemArr['jbi_end']);
                }
            }
            //時段資訊
            $timeArr = get_bookingtime_jbisn($jbi_sn);
            $xoopsTpl->assign('timeArr', $timeArr);
            //週曆
            $getdate = empty($getdate) ? date("Y-m-d") : $getdate;
            $weekArr = weekArr($getdate);
            //產生預約者資訊表格狀態值
            $bookingArr = "";
            //比對產生表單的陣列
            foreach ($timeArr as $t => $time) {
                $jbt_week = strval($time['jbt_week']);
                foreach ($weekArr as $wk => $weekinfo) {
                    //預約日期
                    $item_date = strtotime($weekinfo['d']);
                    //預約者資訊
                    $jbArr = get_booking_uid($time['jbt_sn'], $weekinfo['d']);
                    //取得用了該日期時段的所有者
                    $usershtml = booking_users($time['jbt_sn'], $weekinfo['d']);
                    //將 uid 編號轉換成使用者姓名(或帳號)
                    $uid_name = XoopsUser::getUnameFromId($jbArr['jb_uid'], 1);
                    if (empty($uid_name)) {
                        $uid_name = XoopsUser::getUnameFromId($jbArr['jb_uid'], 0);
                    }
                    $uid_name = empty($jbArr['jb_status']) ? _MD_APPROVING . ":{$uid_name}" : $uid_name;
                    $color = "transparent";
                    $content = $status = "";
                    //過去預約
                    if ($start > $item_date) {
                        if (!empty($jbArr['jb_uid'])) {
                            $content = $uid_name;
                            $color = "#959595";
                        }
                    } elseif ($start <= $item_date and $end >= $item_date or $end == 0) {
                        //可預約期間
                        if (strpos($jbt_week, strval($wk)) !== false) {
                            if (empty($jbArr['jb_sn'])) {
                                if ($can_booking) {
                                    $content = "";
                                    $status['func'] = "single_insert_booking";
                                    $status['time'] = $time['jbt_sn'];
                                    $status['weekinfo'] = $weekinfo['d'];
                                    $status['jbi_sn'] = $jbi_sn;
                                } else {
                                    $content = _MD_JILLBOOKIN_NO;
                                    $color = "#959595";
                                }
                            } else {
                                if ($uid == $jbArr['jb_uid'] or $Isapproval) {
                                    $content = delete_booking_icon($t, $wk, $time['jbt_sn'], $weekinfo['d'], $jbi_sn) . $usershtml;
                                    $color = "#000000";
                                } else {
                                    $content = "{$uid_name}{$usershtml}";
                                    $color = "#000000";
                                }
                            }
                        }
                    }
                    $bookingArr[$t][$wk]['color'] = $color;
                    $bookingArr[$t][$wk]['status'] = $status;
                    $bookingArr[$t][$wk]['content'] = $content;
                }
            }
            $xoopsTpl->assign('bookingArr', $bookingArr);
            $xoopsTpl->assign('itemArr', $itemArr);
            $xoopsTpl->assign('weekArr', $weekArr);
            //die(var_export($bookingArr));
        }
    }
    $xoopsTpl->assign('jbi_sn', $jbi_sn);
    $xoopsTpl->assign('item_opt', $item_opt);
    $xoopsTpl->assign('now_op', "booking_table");
    $xoopsTpl->assign('action', $_SERVER['PHP_SELF']);
}
Example #2
0
function jill_booking_list($def_jbi_sn = "")
{
    global $xoopsDB, $xoopsTpl, $xoopsUser, $isAdmin, $Isapproval;
    if (!$xoopsUser) {
        return;
    }
    //場地設定
    $item_opt = get_jill_booking_time_options($def_jbi_sn);
    $xoopsTpl->assign('item_opt', $item_opt);
    $where_jbisn = empty($def_jbi_sn) ? "" : " and c.jbi_sn='{$def_jbi_sn}' ";
    $uid = $xoopsUser->uid();
    $myts =& MyTextSanitizer::getInstance();
    $sql = "select a.jb_sn,a.jb_date,a.jbt_sn,a.jb_waiting,a.jb_status,b.jb_uid,b.jb_booking_time,b.jb_booking_content,b.jb_start_date,b.jb_end_date,c.jbi_sn,c.jbt_title,c.jbt_sort,d.jbi_title,d.jbi_approval\n    from `" . $xoopsDB->prefix("jill_booking_date") . "` as a\n    join `" . $xoopsDB->prefix("jill_booking") . "` as b  on a.jb_sn=b.jb_sn\n    join `" . $xoopsDB->prefix("jill_booking_time") . "` as c  on a.jbt_sn=c.jbt_sn\n    join `" . $xoopsDB->prefix("jill_booking_item") . "` as d  on c.jbi_sn=d.jbi_sn\n    where b.`jb_uid`='{$uid}' {$where_jbisn} order by a.jb_status desc,a.`jb_date` desc,a.`jb_waiting`,a.jbt_sn  ";
    //die($sql);
    //getPageBar($原sql語法, 每頁顯示幾筆資料, 最多顯示幾個頁數選項);
    $PageBar = getPageBar($sql, 20, 10, null, null, $_SESSION['bootstrap']);
    $bar = $PageBar['bar'];
    $sql = $PageBar['sql'];
    $total = $PageBar['total'];
    $result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'], 3, mysql_error());
    $all_content = "";
    $i = 0;
    while ($all = $xoopsDB->fetchArray($result)) {
        //以下會產生這些變數:jb_sn,jb_date,jbt_sn,,jb_waiting,jb_status,jb_uid,jb_booking_time,jb_booking_content,jb_start_date,jb_end_date,jbi_sn,jbt_title,jbt_sort,jbi_title,jbi_approval
        foreach ($all as $k => $v) {
            ${$k} = $v;
        }
        //過濾讀出的變數值
        $jb_booking_content = $myts->displayTarea($jb_booking_content, 1, 1, 0, 1, 0);
        $jb_start_date = $myts->htmlSpecialChars($jb_start_date);
        $jb_end_date = $myts->htmlSpecialChars($jb_end_date);
        $all_content[$i]['jb_sn'] = $jb_sn;
        $all_content[$i]['jb_date'] = $jb_date;
        $all_content[$i]['jbt_sn'] = $jbt_sn;
        $all_content[$i]['primary'] = $jbi_sn . "_" . $jb_date . "_" . $jbt_sn;
        $all_content[$i]['jb_waiting'] = $jb_waiting;
        $all_content[$i]['jb_status'] = $jb_status;
        $all_content[$i]['jb_uid'] = XoopsUser::getUnameFromId($jb_uid, 1);
        $all_content[$i]['jb_booking_time'] = $jb_booking_time;
        $all_content[$i]['jb_booking_content'] = $jb_booking_content;
        $all_content[$i]['jb_start_date'] = $jb_start_date;
        $all_content[$i]['jb_end_date'] = $jb_end_date;
        $all_content[$i]['jbi_sn'] = $jbi_sn;
        $all_content[$i]['jbt_title'] = $jbt_title;
        $all_content[$i]['jbt_sort'] = $jbt_sort;
        $all_content[$i]['jbi_title'] = $jbi_title;
        $all_content[$i]['jbi_approval'] = $jbi_approval;
        $today = date("Y-m-d");
        $all_content[$i]['fun'] = strtotime($jb_date) >= strtotime($today) ? 1 : '';
        $i++;
    }
    //刪除確認的JS
    $xoopsTpl->assign('bar', $bar);
    $xoopsTpl->assign('action', $_SERVER['PHP_SELF']);
    $xoopsTpl->assign('isAdmin', $isAdmin);
    $xoopsTpl->assign('all_content', $all_content);
    $xoopsTpl->assign('now_op', 'jill_booking_list');
    if (!file_exists(XOOPS_ROOT_PATH . "/modules/tadtools/sweet_alert.php")) {
        redirect_header("index.php", 3, _MD_NEED_TADTOOLS);
    }
    include_once XOOPS_ROOT_PATH . "/modules/tadtools/sweet_alert.php";
    $sweet_alert = new sweet_alert();
    $delete_jill_booking_func = $sweet_alert->render('delete_jill_booking_func', "{$_SERVER['PHP_SELF']}?op=delete_jill_booking&primary=", "primary");
    $xoopsTpl->assign('delete_jill_booking_func', $delete_jill_booking_func);
}
Example #3
0
function jill_booking_form($jbi_sn = "")
{
    global $xoopsDB, $xoopsTpl, $xoopsModuleConfig;
    //場地設定
    $item_opt = get_jill_booking_time_options($jbi_sn);
    if (!empty($jbi_sn)) {
        //場地資訊
        $itemArr = get_jill_booking_item($jbi_sn, 1);
        $xoopsTpl->assign('itemArr', $itemArr);
        // array ('jbi_sn' => '2','jbi_title' =>'多功能教室','jbi_desc' => '<p>多功能教室多功能教室</p>','jbi_sort' => '1','jbi_start' => '2015-01-28','jbi_end' => '0000-00-00','jbi_enable' => '1','jbi_approval' => '0',)
        //die(var_export($itemArr));
        //預設值設定
        //設定 jb_booking_content 欄位的預設值
        $xoopsTpl->assign('jb_booking_content', "");
        //設定 jb_start_date 欄位的預設值
        $jb_start_date = strtotime($itemArr['jbi_start']) <= strtotime(date("Y-m-d")) ? date("Y-m-d") : $itemArr['jbi_start'];
        $xoopsTpl->assign('jb_start_date', $jb_start_date);
        //設定 jb_end_date 欄位的預設值
        $xoopsTpl->assign('jb_end_date', $jb_start_date);
        //設定可預約之週數及日期
        $max_bookingweek = $xoopsModuleConfig['max_bookingweek'];
        //$show_range      = date("Y-m-d", strtotime("+$max_bookingweek week"));
        if (empty($max_bookingweek)) {
            //場地預約結束日期
            $end = $itemArr['jbi_end'] == '0000-00-00' ? 0 : strtotime($itemArr['jbi_end']);
            $max_date = $end == 0 ? '' : $itemArr['jbi_end'];
        } else {
            $endtime = strtotime("+{$max_bookingweek} week");
            if ($itemArr['jbi_end'] == '0000-00-00') {
                $end = $endtime;
            } else {
                $end = strtotime($itemArr['jbi_end']) >= $endtime ? $endtime : strtotime($itemArr['jbi_end']);
            }
            $max_date = date("Y-m-d", $end);
        }
        //die($max_date);
        $xoopsTpl->assign('max_date', $max_date);
        //時段資訊
        $timeArr = get_bookingtime_jbisn($jbi_sn);
        $xoopsTpl->assign('timeArr', $timeArr);
        //die(var_export($timeArr));
        $weektime = "";
        foreach ($timeArr as $t => $time) {
            for ($w = 0; $w < 7; $w++) {
                $jbt_sn = $time['jbt_sn'];
                $jbt_week = strval($time['jbt_week']);
                $weektime[$t][$w]['jbt_week'] = strpos($jbt_week, strval($w)) !== false ? "<input type='checkbox' name='jb_week[{$jbt_sn}][]'  value='{$w}' >" : "<span style='color:#D44950'><i class='fa fa-times'></i></span>";
            }
        }
        //die(var_export($weektime));
        //套用formValidator驗證機制
        if (!file_exists(TADTOOLS_PATH . "/formValidator.php")) {
            redirect_header("index.php", 3, _TAD_NEED_TADTOOLS);
        }
        include_once TADTOOLS_PATH . "/formValidator.php";
        $formValidator = new formValidator("#myForm", true);
        $formValidator_code = $formValidator->render();
        //加入Token安全機制
        include_once XOOPS_ROOT_PATH . "/class/xoopsformloader.php";
        $token = new XoopsFormHiddenToken();
        $token_form = $token->render();
        $xoopsTpl->assign("token_form", $token_form);
        $xoopsTpl->assign('formValidator_code', $formValidator_code);
        $xoopsTpl->assign('weektime', $weektime);
        $xoopsTpl->assign('next_op', "insert_jill_booking");
    }
    $xoopsTpl->assign('item_opt', $item_opt);
    $xoopsTpl->assign('now_op', 'jill_booking_form');
    $xoopsTpl->assign('action', $_SERVER["PHP_SELF"]);
}
Example #4
0
function jill_booking_approvallist($jbi_sn = "")
{
    global $xoopsDB, $xoopsTpl, $xoopsUser, $isAdmin;
    $uid = $xoopsUser->uid();
    $myts =& MyTextSanitizer::getInstance();
    //場地設定
    $item_opt = get_jill_booking_time_options($jbi_sn, $uid);
    //die(var_export($item_opt));
    if (!empty($jbi_sn)) {
        $itemArr = get_jill_booking_item($jbi_sn, 1);
        $checkapproval = explode(";", $itemArr['jbi_approval']);
        if (in_array($uid, $checkapproval)) {
            $sql = "select b.jb_sn,b.jbt_sn,b.jb_date,b.jb_waiting,b.jb_status,c.jbi_sn,c.jbt_title,d.jb_uid,d.jb_booking_time,d.jb_booking_content,d.jb_start_date,d.jb_end_date from  `" . $xoopsDB->prefix("jill_booking_date") . "` as b\n                join `" . $xoopsDB->prefix("jill_booking_time") . "` as c on b.jbt_sn=c.jbt_sn\n                join `" . $xoopsDB->prefix("jill_booking") . "` as d on b.jb_sn=d.jb_sn\n                where c.jbi_sn='{$jbi_sn}' && b.jb_status='0' && b.jb_date>= ' " . date("Y-m-d", xoops_getUserTimestamp(time())) . " ' order by b.jb_date ,b.jbt_sn,d.jb_booking_time";
            //die($sql);
            //getPageBar($原sql語法, 每頁顯示幾筆資料, 最多顯示幾個頁數選項);
            $PageBar = getPageBar($sql, 20, 10, null, null, $_SESSION['bootstrap']);
            $bar = $PageBar['bar'];
            $sql = $PageBar['sql'];
            $total = $PageBar['total'];
            $result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'], 3, mysql_error());
            $all_content = "";
            $i = 0;
            while ($all = $xoopsDB->fetchArray($result)) {
                //以下會產生這些變數: a.jb_sn,a.jb_week,a.jbt_sn,b.jb_date,b.jb_waiting,b.jb_status,c.jbi_sn,c.jbt_title,c.jbt_sort,c.jbt_week,d.jb_uid,d.jb_booking_time,d.jb_booking_content,d.jb_start_date,d.jb_end_date
                foreach ($all as $k => $v) {
                    ${$k} = $v;
                }
                //過濾讀出的變數值
                $jb_booking_content = $myts->displayTarea($jb_booking_content, 1, 1, 0, 1, 0);
                $jb_start_date = $myts->htmlSpecialChars($jb_start_date);
                $jb_end_date = $myts->htmlSpecialChars($jb_end_date);
                $all_content[$i]['jb_sn'] = $jb_sn;
                $all_content[$i]['jbt_sn'] = $jbt_sn;
                $all_content[$i]['jb_date'] = $jb_date;
                $all_content[$i]['jb_week'] = date('w', strtotime($jb_date));
                $all_content[$i]['jb_waiting'] = $jb_waiting;
                $all_content[$i]['jb_status'] = $jb_status;
                $all_content[$i]['jbi_sn'] = $jbi_sn;
                $all_content[$i]['jbt_title'] = $jbt_title;
                $all_content[$i]['jb_uid'] = XoopsUser::getUnameFromId($jb_uid, 1);
                $all_content[$i]['jb_booking_time'] = $jb_booking_time;
                $all_content[$i]['jb_booking_content'] = $jb_booking_content;
                $all_content[$i]['jb_start_date'] = $jb_start_date;
                $all_content[$i]['jb_end_date'] = $jb_end_date;
                $i++;
            }
        }
    }
    //die(var_dump($all_content));
    //刪除確認的JS
    if (!file_exists(XOOPS_ROOT_PATH . "/modules/tadtools/sweet_alert.php")) {
        redirect_header("index.php", 3, _MD_NEED_TADTOOLS);
    }
    include_once XOOPS_ROOT_PATH . "/modules/tadtools/sweet_alert.php";
    $sweet_alert = new sweet_alert();
    $delete_jill_booking_func = $sweet_alert->render('delete_jill_booking_func', "{$_SERVER['PHP_SELF']}?op=delete_booking&jb_info=", "jb_info");
    $xoopsTpl->assign('delete_jill_booking_func', $delete_jill_booking_func);
    $xoopsTpl->assign('bar', $bar);
    $xoopsTpl->assign('action', $_SERVER['PHP_SELF']);
    $xoopsTpl->assign('isAdmin', $isAdmin);
    $xoopsTpl->assign('item_opt', $item_opt);
    $xoopsTpl->assign('all_content', $all_content);
    $xoopsTpl->assign('now_op', 'jill_booking_approvallist');
}