Пример #1
0
function staffviewall_display()
{
    global $xoopsOption, $xoopsTpl, $xoopsConfig, $xoopsUser, $xoopsLogger, $xoopsUserIsAdmin;
    global $xhelp_isStaff, $sort_order, $start, $limit, $xhelp_module_header, $state_opt, $aSavedSearches;
    if (!$xhelp_isStaff) {
        redirect_header(XHELP_BASE_URL . "/" . basename(__FILE__), 3, _NOPERM);
    }
    //Sanity Check: sort / order column valid
    $sort = @$_REQUEST['sort'];
    $order = @$_REQUEST['order'];
    $sort_columns = array('id' => 'DESC', 'priority' => 'DESC', 'elapsed' => 'ASC', 'lastupdate' => 'ASC', 'status' => 'ASC', 'subject' => 'ASC', 'department' => 'ASC', 'ownership' => 'ASC', 'uid' => 'ASC');
    $sort = array_key_exists(strtolower($sort), $sort_columns) ? $sort : 'id';
    $order = in_array(strtoupper($order), $sort_order) ? $order : $sort_columns[$sort];
    $uid = $xoopsUser->getVar('uid');
    $dept = intval(isset($_REQUEST['dept']) ? $_REQUEST['dept'] : 0);
    $status = intval(isset($_REQUEST['status']) ? $_REQUEST['status'] : -1);
    $ownership = intval(isset($_REQUEST['ownership']) ? $_REQUEST['ownership'] : -1);
    $state = intval(isset($_REQUEST['state']) ? $_REQUEST['state'] : -1);
    $xhelpConfig =& xhelpGetModuleConfig();
    $hTickets =& xhelpGetHandler('ticket');
    $hMembership =& xhelpGetHandler('membership');
    if ($limit == 0) {
        $limit = $xhelpConfig['xhelp_staffTicketCount'];
    } elseif ($limit == -1) {
        $limit = 0;
    }
    //Prepare Database Query and Querystring
    $crit = new CriteriaCompo(new Criteria('uid', $uid, '=', 'j'));
    $qs = array('op' => 'staffViewAll', 'start' => $start, 'limit' => $limit);
    if ($dept) {
        $qs['dept'] = $dept;
        $crit->add(new Criteria('department', $dept, '=', 't'));
    }
    if ($status != -1) {
        $qs['status'] = $status;
        $crit->add(new Criteria('status', $status, '=', 't'));
    }
    if ($ownership != -1) {
        $qs['ownership'] = $ownership;
        $crit->add(new Criteria('ownership', $ownership, '=', 't'));
    }
    if ($state != -1) {
        $qs['state'] = $state;
        $crit->add(new Criteria('state', $state, '=', 's'));
    }
    $crit->setLimit($limit);
    $crit->setStart($start);
    $crit->setSort($sort);
    $crit->setOrder($order);
    //Setup Column Sorting Vars
    $tpl_cols = array();
    foreach ($sort_columns as $col => $initsort) {
        $col_qs = array('sort' => $col);
        //Check if we need to sort by current column
        if ($sort == $col) {
            $col_qs['order'] = $order == $sort_order[0] ? $sort_order[1] : $sort_order[0];
            $col_sortby = true;
        } else {
            $col_qs['order'] = $initsort;
            $col_sortby = false;
        }
        $tpl_cols[$col] = array('url' => xhelpMakeURI(basename(__FILE__), array_merge($qs, $col_qs)), 'urltitle' => _XHELP_TEXT_SORT_TICKETS, 'sortby' => $col_sortby, 'sortdir' => strtolower($col_qs['order']));
    }
    $allTickets = $hTickets->getObjectsByStaff($crit, true);
    $count = $hTickets->getCountByStaff($crit);
    $nav = new XoopsPageNav($count, $limit, $start, 'start', "op=staffViewAll&limit={$limit}&sort={$sort}&order={$order}&dept={$dept}&status={$status}&ownership={$ownership}");
    $tickets = array();
    $allUsers = array();
    $depts =& $hMembership->membershipByStaff($xoopsUser->getVar('uid'), true);
    //All Departments for Staff Member
    foreach ($allTickets as $ticket) {
        $deptid = $ticket->getVar('department');
        $tickets[] = array('id' => $ticket->getVar('id'), 'uid' => $ticket->getVar('uid'), 'subject' => xoops_substr($ticket->getVar('subject'), 0, 35), 'full_subject' => $ticket->getVar('subject'), 'description' => $ticket->getVar('description'), 'department' => _safeDepartmentName($depts[$deptid]), 'departmentid' => $deptid, 'departmenturl' => xhelpMakeURI('index.php', array('op' => 'staffViewAll', 'dept' => $deptid)), 'priority' => $ticket->getVar('priority'), 'status' => xhelpGetStatus($ticket->getVar('status')), 'posted' => $ticket->posted(), 'ownership' => _XHELP_MESSAGE_NOOWNER, 'ownerid' => $ticket->getVar('ownership'), 'closedBy' => $ticket->getVar('closedBy'), 'closedByUname' => '', 'totalTimeSpent' => $ticket->getVar('totalTimeSpent'), 'uname' => '', 'userinfo' => XHELP_SITE_URL . '/userinfo.php?uid=' . $ticket->getVar('uid'), 'ownerinfo' => '', 'url' => XHELP_BASE_URL . '/ticket.php?id=' . $ticket->getVar('id'), 'elapsed' => $ticket->elapsed(), 'lastUpdate' => $ticket->lastUpdate(), 'overdue' => $ticket->isOverdue());
        $allUsers[$ticket->getVar('uid')] = '';
        $allUsers[$ticket->getVar('ownership')] = '';
        $allUsers[$ticket->getVar('closedBy')] = '';
    }
    $has_allTickets = count($allTickets) > 0;
    unset($allTickets);
    //Get all member information needed on this page
    $crit = new Criteria('uid', "(" . implode(array_keys($allUsers), ',') . ")", 'IN');
    $users =& xhelpGetUsers($crit, $xhelpConfig['xhelp_displayName']);
    unset($allUsers);
    $staff_opt =& xhelpGetStaff($xhelpConfig['xhelp_displayName']);
    for ($i = 0; $i < count($tickets); $i++) {
        if (isset($users[$tickets[$i]['uid']])) {
            $tickets[$i]['uname'] = $users[$tickets[$i]['uid']];
        } else {
            $tickets[$i]['uname'] = $xoopsConfig['anonymous'];
        }
        if ($tickets[$i]['ownerid']) {
            if (isset($users[$tickets[$i]['ownerid']])) {
                $tickets[$i]['ownership'] = $users[$tickets[$i]['ownerid']];
                $tickets[$i]['ownerinfo'] = XHELP_SITE_URL . '/userinfo.php?uid=' . $tickets[$i]['ownerid'];
            }
        }
        if ($tickets[$i]['closedBy']) {
            if (isset($users[$tickets[$i]['closedBy']])) {
                $tickets[$i]['closedByUname'] = $users[$tickets[$i]['closedBy']];
            }
        }
    }
    $xoopsOption['template_main'] = 'xhelp_staff_viewall.html';
    // Set template
    require XOOPS_ROOT_PATH . '/header.php';
    // Include the page header
    $javascript = "<script type=\"text/javascript\" src=\"" . XHELP_BASE_URL . "/include/functions.js\"></script>\r\n<script type=\"text/javascript\" src='" . XHELP_SCRIPT_URL . "/changeSelectedState.php?client'></script>\r\n<script type=\"text/javascript\">\r\n<!--\r\nfunction states_onchange()\r\n{\r\n    state = xoopsGetElementById('state');\r\n    var sH = new xhelpweblib(stateHandler);\r\n    sH.statusesbystate(state.value);\r\n}\r\n\r\nvar stateHandler = {\r\n    statusesbystate: function(result){\r\n        var statuses = gE('status');\r\n        xhelpFillSelect(statuses, result);\r\n    }\r\n}\r\n\r\nfunction window_onload()\r\n{\r\n    xhelpDOMAddEvent(xoopsGetElementById('state'), 'change', states_onchange, true);\r\n}\r\n\r\nwindow.setTimeout('window_onload()', 1500);\r\n//-->\r\n</script>";
    $xoopsTpl->assign('xhelp_baseURL', XHELP_BASE_URL);
    $xoopsTpl->assign('xhelp_imagePath', XHELP_IMAGE_URL . '/');
    $xoopsTpl->assign('xhelp_cols', $tpl_cols);
    $xoopsTpl->assign('xhelp_allTickets', $tickets);
    $xoopsTpl->assign('xhelp_has_tickets', $has_allTickets);
    $xoopsTpl->assign('xhelp_priorities', array(5, 4, 3, 2, 1));
    $xoopsTpl->assign('xoops_module_header', $javascript . $xhelp_module_header);
    $xoopsTpl->assign('xhelp_priorities_desc', array('5' => _XHELP_PRIORITY5, '4' => _XHELP_PRIORITY4, '3' => _XHELP_PRIORITY3, '2' => _XHELP_PRIORITY2, '1' => _XHELP_PRIORITY1));
    if ($limit != 0) {
        $xoopsTpl->assign('xhelp_pagenav', $nav->renderNav());
    }
    $xoopsTpl->assign('xhelp_limit_options', array(-1 => _XHELP_TEXT_SELECT_ALL, 10 => '10', 15 => '15', 20 => '20', 30 => '30'));
    $xoopsTpl->assign('xhelp_filter', array('department' => $dept, 'status' => $status, 'state' => $state, 'ownership' => $ownership, 'limit' => $limit, 'start' => $start, 'sort' => $sort, 'order' => $order));
    $xoopsTpl->append('xhelp_department_values', 0);
    $xoopsTpl->append('xhelp_department_options', _XHELP_TEXT_SELECT_ALL);
    if ($xhelpConfig['xhelp_deptVisibility'] == 1) {
        // Apply dept visibility to staff members?
        $hMembership =& xhelpGetHandler('membership');
        $depts =& $hMembership->getVisibleDepartments($xoopsUser->getVar('uid'));
    }
    foreach ($depts as $xhelp_id => $obj) {
        $xoopsTpl->append('xhelp_department_values', $xhelp_id);
        $xoopsTpl->append('xhelp_department_options', $obj->getVar('department'));
    }
    $xoopsTpl->assign('xhelp_ownership_options', array_values($staff_opt));
    $xoopsTpl->assign('xhelp_ownership_values', array_keys($staff_opt));
    $xoopsTpl->assign('xhelp_state_options', array_keys($state_opt));
    $xoopsTpl->assign('xhelp_state_values', array_values($state_opt));
    $xoopsTpl->assign('xhelp_savedSearches', $aSavedSearches);
    $hStatus =& xhelpGetHandler('status');
    $crit = new Criteria('', '');
    $crit->setSort('description');
    $crit->setOrder('ASC');
    $statuses =& $hStatus->getObjects($crit);
    $xoopsTpl->append('xhelp_status_options', _XHELP_TEXT_SELECT_ALL);
    $xoopsTpl->append('xhelp_status_values', -1);
    foreach ($statuses as $status) {
        $xoopsTpl->append('xhelp_status_options', $status->getVar('description'));
        $xoopsTpl->append('xhelp_status_values', $status->getVar('id'));
    }
    $xoopsTpl->assign('xhelp_department_current', $dept);
    $xoopsTpl->assign('xhelp_status_current', $status);
    $xoopsTpl->assign('xhelp_current_file', basename(__FILE__));
    $xoopsTpl->assign('xhelp_text_allTickets', _XHELP_TEXT_ALL_TICKETS);
    require XOOPS_ROOT_PATH . '/footer.php';
}
Пример #2
0
             $col_sortby = true;
         } else {
             $col_qs_order = $order;
             $col_sortby = false;
         }
         $tpl_cols[$col] = array('url' => "search.php?{$pagenav_vars}&amp;start={$start}&amp;sort={$col}&amp;order={$col_qs_order}", 'urltitle' => _XHELP_TEXT_SORT_TICKETS, 'sortby' => $col_sortby, 'sortdir' => strtolower($col_qs_order));
     }
     $xoopsTpl->assign('xhelp_cols', $tpl_cols);
 } else {
     $xoopsTpl->assign('xhelp_viewResults', $viewResults);
 }
 $xoopsTpl->assign('xhelp_savedSearches', $aSavedSearches);
 $xoopsTpl->assign('xhelp_text_allTickets', _XHELP_TEXT_SEARCH_RESULTS);
 $xoopsTpl->assign('xhelp_priorities', array(5, 4, 3, 2, 1));
 $xoopsTpl->assign('xhelp_priorities_desc', array('5' => _XHELP_PRIORITY5, '4' => _XHELP_PRIORITY4, '3' => _XHELP_PRIORITY3, '2' => _XHELP_PRIORITY2, '1' => _XHELP_PRIORITY1));
 $staff =& xhelpGetStaff($displayName);
 $xoopsTpl->assign('xhelp_staff', $staff);
 $hMember =& xhelpGetHandler('membership');
 if ($xoopsModuleConfig['xhelp_deptVisibility'] == 1) {
     // Apply dept visibility to staff members?
     $hMembership =& xhelpGetHandler('membership');
     $depts =& $hMembership->getVisibleDepartments($xoopsUser->getVar('uid'));
 } else {
     $depts =& $hMember->membershipByStaff($xoopsUser->getVar('uid'));
 }
 foreach ($depts as $dept) {
     $myDepts[$dept->getVar('id')] = $dept->getVar('department');
 }
 unset($depts);
 asort($myDepts);
 $myDepts[-1] = _XHELP_TEXT_SELECT_ALL;