function manageStatus() { global $oAdminButton, $aSortBy, $aOrderBy, $aLimitBy, $order, $limit, $start, $sort; $hStatus =& xhelpGetHandler('status'); if (isset($_POST['changeDefaultStatus'])) { xhelpSetMeta("default_status", $_POST['default']); } if (isset($_POST['newStatus'])) { if ($_POST['desc'] == '') { // If no description supplied $message = _AM_XHELP_MESSAGE_NO_DESC; redirect_header(XHELP_ADMIN_URL . "/status.php?op=manageStatus", 3, $message); } $newStatus =& $hStatus->create(); $newStatus->setVar('state', intval($_POST['state'])); $newStatus->setVar('description', $_POST['desc']); if ($hStatus->insert($newStatus)) { header("Location: " . XHELP_ADMIN_URL . "/status.php?op=manageStatus"); } else { $message = _AM_MESSAGE_ADD_STATUS_ERR; redirect_header(XHELP_ADMIN_URL . "/status.php?op=manageStatus", 3, $message); } } xoops_cp_header(); echo $oAdminButton->renderButtons('manStatus'); echo "<form method='post' action='" . XHELP_ADMIN_URL . "/status.php?op=manageStatus'>"; echo "<table width='100%' cellspacing='1' class='outer'>\r\n <tr><th colspan='2'><label>" . _AM_XHELP_TEXT_ADD_STATUS . "</label></th></tr>"; echo "<tr><td class='head' width='20%'>" . _AM_XHELP_TEXT_DESCRIPTION . "</td>\r\n <td class='even'>\r\n <input type='text' name='desc' value='' class='formButton' />\r\n </td>\r\n </tr>"; echo "<tr><td class='head' width='20%'>" . _AM_XHELP_TEXT_STATE . "</td><td class='even'>\r\n <select name='state'>\r\n <option value='1'>" . xhelpGetState(1) . "</option>\r\n <option value='2'>" . xhelpGetState(2) . "</option>\r\n </select></td></tr>"; echo "<tr><td class='foot' colspan='2'><input type='submit' name='newStatus' value='" . _AM_XHELP_TEXT_ADD_STATUS . "' class='formButton' /></td></tr>"; echo "</table></form>"; // Get list of existing statuses $crit = new Criteria('', ''); $crit->setOrder($order); $crit->setSort($sort); $crit->setLimit($limit); $crit->setStart($start); $statuses =& $hStatus->getObjects($crit); $total = $hStatus->getCount($crit); $aStatuses = array(); foreach ($statuses as $status) { $aStatuses[$status->getVar('id')] = $status->getVar('description'); } if (!($default_status = xhelpGetMeta("default_status"))) { xhelpSetMeta("default_status", "1"); $default_status = 1; } $form = new xhelpForm(_AM_XHELP_TEXT_DEFAULT_STATUS, 'default_status', xhelpMakeURI(XHELP_ADMIN_URL . '/status.php', array('op' => 'manageStatus'))); $status_select = new XoopsFormSelect(_AM_XHELP_TEXT_STATUS, 'default', $default_status); $status_select->addOptionArray($aStatuses); $btn_tray = new XoopsFormElementTray(''); $btn_tray->addElement(new XoopsFormButton('', 'changeDefaultStatus', _AM_XHELP_BUTTON_SUBMIT, 'submit')); $form->addElement($status_select); $form->addElement($btn_tray); $form->setLabelWidth('20%'); echo $form->render(); $nav = new XoopsPageNav($total, $limit, $start, 'start', "op=manageStatus&limit={$limit}"); echo "<form action='" . XHELP_ADMIN_URL . "/status.php?op=manageStatus' style='margin:0; padding:0;' method='post'>"; echo "<table width='100%' cellspacing='1' class='outer'>"; echo "<tr><td align='right'>" . _AM_XHELP_TEXT_SORT_BY . "\r\n <select name='sort'>"; foreach ($aSortBy as $value => $text) { $sort == $value ? $selected = "selected='selected'" : ($selected = ''); echo "<option value='{$value}' {$selected}>{$text}</option>"; } echo "</select>\r\n \r\n " . _AM_XHELP_TEXT_ORDER_BY . "\r\n <select name='order'>"; foreach ($aOrderBy as $value => $text) { $order == $value ? $selected = "selected='selected'" : ($selected = ''); echo "<option value='{$value}' {$selected}>{$text}</option>"; } echo "</select>\r\n \r\n " . _AM_XHELP_TEXT_NUMBER_PER_PAGE . "\r\n <select name='limit'>"; foreach ($aLimitBy as $value => $text) { $limit == $value ? $selected = "selected='selected'" : ($selected = ''); echo "<option value='{$value}' {$selected}>{$text}</option>"; } echo "</select>\r\n <input type='submit' name='status_sort' id='status_sort' value='" . _AM_XHELP_BUTTON_SUBMIT . "' />\r\n </td>\r\n </tr>"; echo "</table></form>"; echo "<table width='100%' cellspacing='1' class='outer'>\r\n <tr><th colspan='4'><label>" . _AM_XHELP_TEXT_MANAGE_STATUSES . "</label></th></tr>"; echo "<tr class='head'>\r\n <td>" . _AM_XHELP_TEXT_ID . "</td>\r\n <td>" . _AM_XHELP_TEXT_DESCRIPTION . "</td>\r\n <td>" . _AM_XHELP_TEXT_STATE . "</td>\r\n <td>" . _AM_XHELP_TEXT_ACTIONS . "</td>\r\n </tr>"; foreach ($statuses as $status) { echo "<tr class='even'><td>" . $status->getVar('id') . "</td><td>" . $status->getVar('description') . "</td>\r\n <td>" . xhelpGetState($status->getVar('state')) . "</td>\r\n <td>\r\n <a href='status.php?op=editStatus&statusid=" . $status->getVar('id') . "'><img src='" . XHELP_IMAGE_URL . "/button_edit.png' title='" . _AM_XHELP_TEXT_EDIT . "' name='editStatus' /></a> \r\n <a href='status.php?op=deleteStatus&statusid=" . $status->getVar('id') . "'><img src='" . XHELP_IMAGE_URL . "/button_delete.png' title='" . _AM_XHELP_TEXT_DELETE . "' name='deleteStatus' /></a></td></tr>\r\n </td></tr>"; } echo "</table>"; echo "<div id='status_nav'>" . $nav->renderNav() . "</div>"; xhelpAdminFooter(); xoops_cp_footer(); }
/** * Event: update_status * Triggered after a ticket status change * Also See: batch_status, close_ticket, reopen_ticket * @param xhelpTicket $ticket The ticket that was modified * @param xhelpStatus $oldstatus The previous ticket status * @param xhelpStatus $newstatus The new ticket status */ function update_status($ticket, $oldstatus, $newstatus) { //notify staff department of change //notify submitter global $xoopsUser; $hDepartments =& xhelpGetHandler('department'); $tags = array(); $tags['TICKET_ID'] = $ticket->getVar('id'); $tags['TICKET_URL'] = XHELP_BASE_URL . '/ticket.php?id=' . $ticket->getVar('id'); // Added by marcan to get the ticket's subject available in the mail template $tags['TICKET_SUBJECT'] = $this->_ts->stripslashesGPC($ticket->getVar('subject', 'n')); // End of addition by marcan $tags['TICKET_OLD_STATUS'] = $oldstatus->getVar('description'); $tags['TICKET_OLD_STATE'] = xhelpGetState($oldstatus->getVar('state')); $tags['TICKET_STATUS'] = $newstatus->getVar('description'); $tags['TICKET_STATE'] = xhelpGetState($newstatus->getVar('state')); $tags['TICKET_UPDATEDBY'] = $xoopsUser->getVar('uname'); $tags['TICKET_DEPARTMENT'] = $this->_ts->stripslashesGPC($hDepartments->getNameById($ticket->getVar('department'))); $settings =& $this->_hNotification->get(XHELP_NOTIF_EDITSTATUS); $staff_setting = $settings->getVar('staff_setting'); $user_setting = $settings->getVar('user_setting'); if ($email_tpl = $this->_getEmailTpl('dept', 'changed_status', $this->_module, $template_id)) { $sendTo =& $this->_getSubscribedStaff($ticket, $email_tpl['bit_value'], $settings); $success = $this->_sendEvents($email_tpl, $sendTo, $tags); } if ($email_tpl = $this->_getEmailTpl('ticket', 'changed_this_status', $this->_module, $template_id)) { //$sendTo = $this->_getEmail($ticket->getVar('uid')); $sendTo = $this->_getSubscribedUsers($ticket->getVar('id')); $success = $this->_sendEvents($email_tpl, $sendTo, $tags); } }