function addFaq_display() { global $xoopsOption, $xoopsTpl, $xoopsConfig, $xoopsUser, $xoopsLogger, $xoopsUserIsAdmin, $_xhelpSession, $xhelp_staff, $xoopsModuleConfig; if (!isset($_POST['ticketid']) && intval($_POST['ticketid']) == 0) { redirect_header(XHELP_BASE_URL, 3, _XHELP_MSG_NO_ID); } $ticketid = intval($_POST['ticketid']); $hTicket =& xhelpGetHandler('ticket'); $hResponses =& xhelpGetHandler('responses'); $ticket =& $hTicket->get($ticketid); if (!($hasRights = $xhelp_staff->checkRoleRights(XHELP_SEC_FAQ_ADD, $ticket->getVar('department')))) { redirect_header(XHELP_BASE_URL . "/ticket.php?id={$ticketid}", 3, XHELP_MESSAGE_NO_ADD_FAQ); } $xoopsOption['template_main'] = 'xhelp_addFaq.html'; require XOOPS_ROOT_PATH . '/header.php'; $crit = new Criteria('ticketid', $ticketid); $responses =& $hResponses->getObjects($crit, true); $responseText = ''; $allUsers = array(); foreach ($responses as $response) { $allUsers[$response->getVar('uid')] = ''; } $crit = new Criteria('uid', "(" . implode(array_keys($allUsers), ',') . ")", 'IN'); $users =& xhelpGetUsers($crit, $xoopsModuleConfig['xhelp_displayName']); unset($allUsers); foreach ($responses as $response) { $responseText .= sprintf(_XHELP_TEXT_USER_SAID, $users[$response->getVar('uid')]) . "\n"; $responseText .= $response->getVar('message', 'e') . "\n"; } // Get current faq adapter $oAdapter =& xhelpFaqAdapterFactory::getFaqAdapter(); if (!$oAdapter) { redirect_header(XHELP_BASE_URL, 3, _XHELP_MESSAGE_NO_FAQ); } $categories =& $oAdapter->getCategories(); $tree = new xhelpTree($categories, 'id', 'parent'); $xoopsTpl->assign('xhelp_categories', $tree->makeSelBox("categories", "name", "--", 0, false, 0, $oAdapter->categoryType)); $xoopsTpl->assign('xhelp_imagePath', XHELP_IMAGE_URL . '/'); $xoopsTpl->assign('xhelp_baseURL', XHELP_BASE_URL); $xoopsTpl->assign('xhelp_faqProblem', $ticket->getVar('description', 'e')); $xoopsTpl->assign('xhelp_faqSolution', $responseText); $xoopsTpl->assign('xhelp_hasMultiCats', $oAdapter->categoryType); $xoopsTpl->assign('xhelp_ticketID', $ticketid); $xoopsTpl->assign('xhelp_faqSubject', $ticket->getVar('subject', 'e')); require XOOPS_ROOT_PATH . '/footer.php'; }
function editDepartment() { $_xhelpSession = Session::singleton(); global $imagearray, $xoopsModule, $oAdminButton, $limit, $start, $xoopsModuleConfig; $module_id = $xoopsModule->getVar('mid'); $displayName =& $xoopsModuleConfig['xhelp_displayName']; // Determines if username or real name is displayed $_xhelpSession->set("xhelp_return_page", substr(strstr($_SERVER['REQUEST_URI'], 'admin/'), 6)); if (isset($_REQUEST["deptid"])) { $deptID = $_REQUEST['deptid']; } else { redirect_header(XHELP_ADMIN_URL . "/department.php?op=manageDepartments", 3, _AM_XHELP_MSG_NO_DEPTID); } $hDepartments =& xhelpGetHandler('department'); $hGroups =& xoops_gethandler('group'); $hGroupPerm =& xoops_gethandler('groupperm'); if (isset($_POST['updateDept'])) { $groups = isset($_POST['groups']) ? $_POST['groups'] : array(); $hasErrors = false; //Department Name supplied? if (trim($_POST['newDept']) == '') { $hasErrors = true; $errors['newDept'][] = _AM_XHELP_MESSAGE_NO_DEPT; } else { //Department Name unique? $crit = new CriteriaCompo(new Criteria('department', $_POST['newDept'])); $crit->add(new Criteria('id', $deptID, '!=')); if ($existingDepts = $hDepartments->getCount($crit)) { $hasErrors = true; $errors['newDept'][] = _XHELP_MESSAGE_DEPT_EXISTS; } } if ($hasErrors) { $session =& Session::singleton(); //Store existing dept info in session, reload addition page $aDept = array(); $aDept['newDept'] = $_POST['newDept']; $aDept['groups'] = $groups; $session->set("xhelp_editDepartment_{$deptID}", $aDept); $session->set("xhelp_editDepartmentErrors_{$deptID}", $errors); header('Location: ' . xhelpMakeURI(XHELP_ADMIN_URL . '/department.php', array('op' => 'editDepartment', 'deptid' => $deptID), false)); exit; } $dept =& $hDepartments->get($deptID); $oldDept = $dept; $groups = $_POST['groups']; // Need to remove old group permissions first $crit = new CriteriaCompo(new Criteria('gperm_modid', $module_id)); $crit->add(new Criteria('gperm_itemid', $deptID)); $crit->add(new Criteria('gperm_name', _XHELP_GROUP_PERM_DEPT)); $hGroupPerm->deleteAll($crit); foreach ($groups as $group) { // Add new group permissions $hGroupPerm->addRight(_XHELP_GROUP_PERM_DEPT, $deptID, $group, $module_id); } $dept->setVar('department', $_POST['newDept']); if ($hDepartments->insert($dept)) { $message = _XHELP_MESSAGE_UPDATE_DEPT; // Update default dept if (isset($_POST['defaultDept']) && $_POST['defaultDept'] == 1) { xhelpSetMeta("default_department", $dept->getVar('id')); } else { $depts =& $hDepartments->getObjects(); $aDepts = array(); foreach ($depts as $dpt) { $aDepts[] = $dpt->getVar('id'); } xhelpSetMeta("default_department", $aDepts[0]); } // Edit configoption for department $hConfigOption =& xoops_gethandler('configoption'); $crit = new CriteriaCompo(new Criteria('confop_name', $oldDept->getVar('department'))); $crit->add(new Criteria('confop_value', $oldDept->getVar('id'))); $confOption =& $hConfigOption->getObjects($crit); if (count($confOption) > 0) { $confOption[0]->setVar('confop_name', $dept->getVar('department')); if (!$hConfigOption->insert($confOption[0])) { redirect_header(XHELP_ADMIN_URL . "/department.php?op=manageDepartments", 3, _AM_XHELP_MSG_UPDATE_CONFIG_ERR); } } _clearEditSessionVars($deptID); header("Location: " . XHELP_ADMIN_URL . "/department.php?op=manageDepartments"); } else { $message = _XHELP_MESSAGE_UPDATE_DEPT_ERROR . $dept->getHtmlErrors(); redirect_header(XHELP_ADMIN_URL . "/department.php?op=manageDepartments", 3, $message); } } else { xoops_cp_header(); echo $oAdminButton->renderButtons('manDept'); $dept =& $hDepartments->get($deptID); $session =& Session::singleton(); $sess_dept = $session->get("xhelp_editDepartment_{$deptID}"); $sess_errors = $session->get("xhelp_editDepartmentErrors_{$deptID}"); //Display any form errors if (!$sess_errors === false) { xhelpRenderErrors($sess_errors, xhelpMakeURI(XHELP_ADMIN_URL . '/department.php', array('op' => 'clearEditSession', 'deptid' => $deptID))); } // Get list of groups with permission $crit = new CriteriaCompo(new Criteria('gperm_modid', $module_id)); $crit->add(new Criteria('gperm_itemid', $deptID)); $crit->add(new Criteria('gperm_name', _XHELP_GROUP_PERM_DEPT)); $group_perms =& $hGroupPerm->getObjects($crit); $aPerms = array(); // Put group_perms in usable format foreach ($group_perms as $perm) { $aPerms[$perm->getVar('gperm_groupid')] = $perm->getVar('gperm_groupid'); } if (!$sess_dept === false) { $fld_newDept = $sess_dept['newDept']; $fld_groups = $sess_dept['groups']; } else { $fld_newDept = $dept->getVar('department'); $fld_groups = $aPerms; } // Get list of all groups $crit = new Criteria('', ''); $crit->setSort('name'); $crit->setOrder('ASC'); $groups =& $hGroups->getObjects($crit, true); $aGroups = array(); foreach ($groups as $group_id => $group) { $aGroups[$group_id] = $group->getVar('name'); } asort($aGroups); // Set groups in alphabetical order echo '<script type="text/javascript" src="' . XOOPS_URL . '/modules/xhelp/include/functions.js"></script>'; $form = new xhelpForm(_AM_XHELP_EDIT_DEPARTMENT, 'edit_dept', xhelpMakeURI(XHELP_ADMIN_URL . '/department.php', array('op' => 'editDepartment', 'deptid' => $deptID))); $dept_name = new XoopsFormText(_AM_XHELP_TEXT_EDIT_DEPT, 'newDept', 20, 35, $fld_newDept); $group_select = new XoopsFormSelect(_AM_XHELP_TEXT_EDIT_DEPT_PERMS, 'groups', $fld_groups, 6, true); $group_select->addOptionArray($aGroups); $defaultDeptID = xhelpGetMeta("default_department"); $defaultDept = new xhelpFormCheckbox(_AM_XHELP_TEXT_DEFAULT_DEPT, 'defaultDept', $defaultDeptID == $deptID ? 1 : 0, 'defaultDept'); $defaultDept->addOption(1, ""); $btn_tray = new XoopsFormElementTray(''); $btn_tray->addElement(new XoopsFormButton('', 'updateDept', _AM_XHELP_BUTTON_SUBMIT, 'submit')); $form->addElement($dept_name); $form->addElement($group_select); $form->addElement($defaultDept); $form->addElement($btn_tray); $form->setLabelWidth('20%'); echo $form->render(); // Get dept staff members $hMembership =& xhelpGetHandler('membership'); $hMember =& xoops_gethandler('member'); $hStaffRole =& xhelpGetHandler('staffRole'); $hRole =& xhelpGetHandler('role'); $staff = $hMembership->membershipByDept($deptID, $limit, $start); $crit = new Criteria('j.department', $deptID); $staffCount =& $hMembership->getCount($crit); $roles =& $hRole->getObjects(null, true); echo "<form action='" . XHELP_ADMIN_URL . "/department.php?op=deleteStaffDept&deptid=" . $deptID . "' method='post'>"; echo "<table width='100%' cellspacing='1' class='outer'>\r\n <tr><th colspan='" . (3 + count($roles)) . "'><label>" . _AM_XHELP_MANAGE_STAFF . "</label></th></tr>"; if ($staffCount > 0) { $aStaff = array(); foreach ($staff as $stf) { $aStaff[$stf->getVar('uid')] = $stf->getVar('uid'); // Get array of staff uid } // Get user list $crit = new Criteria('uid', "(" . implode($aStaff, ',') . ")", "IN"); //$members =& $hMember->getUserList($crit); $members =& xhelpGetUsers($crit, $displayName); // Get staff roles $crit = new CriteriaCompo(new Criteria('uid', "(" . implode($aStaff, ',') . ")", "IN")); $crit->add(new Criteria('deptid', $deptID)); $staffRoles =& $hStaffRole->getObjects($crit); unset($aStaff); $staffInfo = array(); foreach ($staff as $stf) { $staff_uid = $stf->getVar('uid'); $staffInfo[$staff_uid]['uname'] = $members[$staff_uid]; $aRoles = array(); foreach ($staffRoles as $role) { $role_id = $role->getVar('roleid'); if ($role->getVar('uid') == $staff_uid) { $aRoles[$role_id] = $roles[$role_id]->getVar('name'); } $staffInfo[$staff_uid]['roles'] = implode($aRoles, ', '); } } $nav = new XoopsPageNav($staffCount, $limit, $start, 'start', "op=editDepartment&deptid={$deptID}&limit={$limit}"); echo "<tr class='head'><td rowspan='2'>" . _AM_XHELP_TEXT_ID . "</td><td rowspan='2'>" . _AM_XHELP_TEXT_USER . "</td><td colspan='" . count($roles) . "'>" . _AM_XHELP_TEXT_ROLES . "</td><td rowspan='2'>" . _AM_XHELP_TEXT_ACTIONS . "</td></tr>"; echo "<tr class='head'>"; foreach ($roles as $thisrole) { echo "<td>" . $thisrole->getVar('name') . "</td>"; } echo "</tr>"; foreach ($staffInfo as $uid => $staff) { echo "<tr class='even'>\r\n <td><input type='checkbox' name='staff[]' value='" . $uid . "' />" . $uid . "</td>\r\n <td>" . $staff['uname'] . "</td>"; foreach ($roles as $thisrole) { echo "<td><img src='" . XHELP_BASE_URL . "/images/"; echo in_array($thisrole->getVar('name'), explode(', ', $staff['roles'])) ? "on.png" : "off.png"; echo "' /></td>"; } echo " <td>\r\n <a href='" . XHELP_ADMIN_URL . "/staff.php?op=editStaff&uid=" . $uid . "'><img src='" . XOOPS_URL . "/modules/xhelp/images/button_edit.png' title='" . _AM_XHELP_TEXT_EDIT . "' name='editStaff' /></a> \r\n <a href='" . XHELP_ADMIN_URL . "/department.php?op=deleteStaffDept&uid=" . $uid . "&deptid=" . $deptID . "'><img src='" . XOOPS_URL . "/modules/xhelp/images/button_delete.png' title='" . _AM_XHELP_TEXT_DELETE_STAFF_DEPT . "' name='deleteStaffDept' /></a>\r\n </td>\r\n </tr>"; } echo "<tr>\r\n <td class='foot' colspan='" . (3 + count($roles)) . "'>\r\n <input type='checkbox' name='checkallRoles' value='0' onclick='selectAll(this.form,\"staff[]\",this.checked);' />\r\n <input type='submit' name='deleteStaff' id='deleteStaff' value='" . _AM_XHELP_BUTTON_DELETE . "' />\r\n </td>\r\n </tr>"; echo "</table></form>"; echo "<div id='staff_nav'>" . $nav->renderNav() . "</div>"; } else { echo "</table></form>"; } //now do the list of servers $hDeptServers =& xhelpGetHandler('departmentMailBox'); $deptServers =& $hDeptServers->getByDepartment($deptID); //iterate if (count($deptServers) > 0) { echo "<br /><table width='100%' cellspacing='1' class='outer'>\r\n <tr>\r\n <th colspan='5'><label>" . _AM_XHELP_DEPARTMENT_SERVERS . "</label></th>\r\n </tr>\r\n <tr>\r\n <td class='head' width='20%'><label>" . _AM_XHELP_DEPARTMENT_SERVERS_EMAIL . "</label></td>\r\n <td class='head'><label>" . _AM_XHELP_DEPARTMENT_SERVERS_TYPE . "</label></td>\r\n <td class='head'><label>" . _AM_XHELP_DEPARTMENT_SERVERS_SERVERNAME . "</label></td>\r\n <td class='head'><label>" . _AM_XHELP_DEPARTMENT_SERVERS_PORT . "</label></td>\r\n <td class='head'><label>" . _AM_XHELP_DEPARTMENT_SERVERS_ACTION . "</label></td>\r\n </tr>"; $i = 0; foreach ($deptServers as $server) { if ($server->getVar('active')) { $activ_link = '".XHELP_ADMIN_URL."/department.php?op=activateMailbox&setstate=0&id=' . $server->getVar('id'); $activ_img = $imagearray['online']; $activ_title = _AM_XHELP_MESSAGE_DEACTIVATE; } else { $activ_link = '".XHELP_ADMIN_URL."/department.php?op=activateMailbox&setstate=1&id=' . $server->getVar('id'); $activ_img = $imagearray['offline']; $activ_title = _AM_XHELP_MESSAGE_ACTIVATE; } echo '<tr class="even"> <td>' . $server->getVar('emailaddress') . '</td> <td>' . xhelpGetMBoxType($server->getVar('mboxtype')) . '</td> <td>' . $server->getVar('server') . '</td> <td>' . $server->getVar('serverport') . '</td> <td> <a href="' . $activ_link . '" title="' . $activ_title . '">' . $activ_img . '</a> <a href="' . XHELP_ADMIN_URL . '/department.php?op=EditDepartmentServer&id=' . $server->GetVar('id') . '">' . $imagearray['editimg'] . '</a> <a href="' . XHELP_ADMIN_URL . '/department.php?op=DeleteDepartmentServer&id=' . $server->GetVar('id') . '">' . $imagearray['deleteimg'] . '</a> </td> </tr>'; } echo '</table>'; } //finally add Mailbox form echo "<br /><br />"; $formElements = array('type_select', 'server_text', 'port_text', 'username_text', 'pass_text', 'priority_radio', 'email_text', 'btn_tray'); $form = new xhelpForm(_AM_XHELP_DEPARTMENT_ADD_SERVER, 'add_server', xhelpMakeURI(XHELP_ADMIN_URL . '/department.php', array('op' => 'AddDepartmentServer', 'id' => $deptID))); $type_select = new XoopsFormSelect(_AM_XHELP_DEPARTMENT_SERVERS_TYPE, 'mboxtype'); $type_select->setExtra("id='mboxtype'"); $type_select->addOption(_XHELP_MAILBOXTYPE_POP3, _AM_XHELP_MBOX_POP3); $server_text = new XoopsFormText(_AM_XHELP_DEPARTMENT_SERVERS_SERVERNAME, 'server', 40, 50); $server_text->setExtra("id='txtServer'"); $port_text = new XoopsFormText(_AM_XHELP_DEPARTMENT_SERVERS_PORT, 'port', 5, 5, "110"); $port_text->setExtra("id='txtPort'"); $username_text = new XoopsFormText(_AM_XHELP_DEPARTMENT_SERVER_USERNAME, 'username', 25, 50); $username_text->setExtra("id='txtUsername'"); $pass_text = new XoopsFormText(_AM_XHELP_DEPARTMENT_SERVER_PASSWORD, 'password', 25, 50); $pass_text->setExtra("id='txtPassword'"); $priority_radio = new xhelpFormRadio(_AM_XHELP_DEPARTMENT_SERVERS_PRIORITY, 'priority', XHELP_DEFAULT_PRIORITY); $priority_array = array('1' => "<label for='priority1'><img src='" . XHELP_IMAGE_URL . "/priority1.png' title='" . xhelpGetPriority(1) . "' alt='priority1' /></label>", '2' => "<label for='priority2'><img src='" . XHELP_IMAGE_URL . "/priority2.png' title='" . xhelpGetPriority(2) . "' alt='priority2' /></label>", '3' => "<label for='priority3'><img src='" . XHELP_IMAGE_URL . "/priority3.png' title='" . xhelpGetPriority(3) . "' alt='priority3' /></label>", '4' => "<label for='priority4'><img src='" . XHELP_IMAGE_URL . "/priority4.png' title='" . xhelpGetPriority(4) . "' alt='priority4' /></label>", '5' => "<label for='priority5'><img src='" . XHELP_IMAGE_URL . "/priority5.png' title='" . xhelpGetPriority(5) . "' alt='priority5' /></label>"); $priority_radio->addOptionArray($priority_array); $email_text = new XoopsFormText(_AM_XHELP_DEPARTMENT_SERVER_EMAILADDRESS, 'emailaddress', 50, 255); $email_text->setExtra("id='txtEmailaddress'"); $btn_tray = new XoopsFormElementTray(''); $test_button = new XoopsFormButton('', 'email_test', _AM_XHELP_BUTTON_TEST, 'button'); $test_button->setExtra("id='test'"); $submit_button = new XoopsFormButton('', 'updateDept2', _AM_XHELP_BUTTON_SUBMIT, 'submit'); $cancel2_button = new XoopsFormButton('', 'cancel2', _AM_XHELP_BUTTON_CANCEL, 'button'); $cancel2_button->setExtra("onclick='history.go(-1)'"); $btn_tray->addElement($test_button); $btn_tray->addElement($submit_button); $btn_tray->addElement($cancel2_button); $form->setLabelWidth('20%'); foreach ($formElements as $element) { $form->addElement(${$element}); } echo $form->render(); echo "<script type=\"text/javascript\" language=\"javascript\">\r\n <!--\r\n function xhelpEmailTest()\r\n {\r\n pop = openWithSelfMain(\"\", \"email_test\", 250, 150);\r\n frm = xoopsGetElementById(\"add_server\");\r\n newaction = \"department.php?op=testMailbox\";\r\n oldaction = frm.action;\r\n frm.action = newaction;\r\n frm.target = \"email_test\";\r\n frm.submit();\r\n frm.action = oldaction;\r\n frm.target = \"main\";\r\n\r\n }\r\n\r\n xhelpDOMAddEvent(xoopsGetElementById(\"email_test\"), \"click\", xhelpEmailTest, false);\r\n\r\n //-->\r\n </script>"; xhelpAdminFooter(); xoops_cp_footer(); } }
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'; }