예제 #1
0
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';
}
예제 #2
0
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&amp;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&amp;deptid={$deptID}&amp;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&amp;uid=" . $uid . "'><img src='" . XOOPS_URL . "/modules/xhelp/images/button_edit.png' title='" . _AM_XHELP_TEXT_EDIT . "' name='editStaff' /></a>&nbsp;\r\n                          <a href='" . XHELP_ADMIN_URL . "/department.php?op=deleteStaffDept&amp;uid=" . $uid . "&amp;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&amp;setstate=0&amp;id=' . $server->getVar('id');
                    $activ_img = $imagearray['online'];
                    $activ_title = _AM_XHELP_MESSAGE_DEACTIVATE;
                } else {
                    $activ_link = '".XHELP_ADMIN_URL."/department.php?op=activateMailbox&amp;setstate=1&amp;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&amp;id=' . $server->GetVar('id') . '">' . $imagearray['editimg'] . '</a>
                        <a href="' . XHELP_ADMIN_URL . '/department.php?op=DeleteDepartmentServer&amp;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();
    }
}
예제 #3
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&amp;limit={$limit}&amp;sort={$sort}&amp;order={$order}&amp;dept={$dept}&amp;status={$status}&amp;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';
}