$order_column = $sortOptions[$sort]; } $order_column = $order_column ? $order_column : 'email.email'; if ($_REQUEST['order'] && $orderWays[strtoupper($_REQUEST['order'])]) { $order = $orderWays[strtoupper($_REQUEST['order'])]; } $order = $order ? $order : 'ASC'; if ($order_column && strpos($order_column, ',')) { $order_column = str_replace(',', " {$order},", $order_column); } $x = $sort . '_sort'; ${$x} = ' class="' . strtolower($order) . '" '; $order_by = "{$order_column} {$order} "; $total = db_count('SELECT count(*) FROM ' . EMAIL_TABLE . ' email '); $page = $_GET['p'] && is_numeric($_GET['p']) ? $_GET['p'] : 1; $pageNav = new Pagenate($total, $page, PAGE_LIMIT); $qs += array('sort' => $_REQUEST['sort'], 'order' => $_REQUEST['order']); $pageNav->setURL('emails.php', $qs); $qstr = '&order=' . ($order == 'DESC' ? 'ASC' : 'DESC'); $query = "{$sql} GROUP BY email.email_id ORDER BY {$order_by} LIMIT " . $pageNav->getStart() . "," . $pageNav->getLimit(); $res = db_query($query); if ($res && ($num = db_num_rows($res))) { $showing = $pageNav->showing() . ' ' . __('emails'); } else { $showing = __('No emails found!'); } $def_dept_id = $cfg->getDefaultDeptId(); $def_dept_name = $cfg->getDefaultDept()->getName(); $def_priority = $cfg->getDefaultPriority()->getDesc(); ?> <div class="pull-left" style="width:700px;padding-top:5px;">
} $order=$order?$order:'DESC'; if($order_column && strpos($order_column,',')){ $order_column=str_replace(','," $order,",$order_column); } $x=$sort.'_sort'; $$x=' class="'.strtolower($order).'" '; $order_by="$order_column $order "; $qselect = 'SELECT log.* '; $qfrom=' FROM '.SYSLOG_TABLE.' log '; $total=db_count("SELECT count(*) $qfrom $qwhere"); $page = ($_GET['p'] && is_numeric($_GET['p']))?$_GET['p']:1; //pagenate $pageNav=new Pagenate($total, $page, PAGE_LIMIT); $pageNav->setURL('logs.php',$qs); $qs += array('order' => ($order=='DESC' ? 'ASC' : 'DESC')); $qstr = '&'. Http::build_query($qs); $query="$qselect $qfrom $qwhere ORDER BY $order_by LIMIT ".$pageNav->getStart().",".$pageNav->getLimit(); $res=db_query($query); if($res && ($num=db_num_rows($res))) $showing=$pageNav->showing().' '.$title; else $showing=__('No logs found!'); ?> <h2><?php echo __('System Logs');?> <i class="help-tip icon-question-sign" href="#system_logs"></i> </h2> <div id='filter' >
$order_column = $sortOptions[$sort]; } $order_column = $order_column ? $order_column : 'canned.title'; if ($_REQUEST['order'] && $orderWays[strtoupper($_REQUEST['order'])]) { $order = $orderWays[strtoupper($_REQUEST['order'])]; } $order = $order ? $order : 'ASC'; if ($order_column && strpos($order_column, ',')) { $order_column = str_replace(',', " {$order},", $order_column); } $x = $sort . '_sort'; ${$x} = ' class="' . strtolower($order) . '" '; $order_by = "{$order_column} {$order} "; $total = db_count('SELECT count(*) FROM ' . CANNED_TABLE . ' canned '); $page = $_GET['p'] && is_numeric($_GET['p']) ? $_GET['p'] : 1; $pageNav = new Pagenate($total, $page, PAGE_LIMIT); $qstr = '&' . Http::build_query($qs); $qs += array('sort' => $_REQUEST['sort'], 'order' => $_REQUEST['order']); $pageNav->setURL('canned.php', $qs); //Ok..lets roll...create the actual query $qstr .= '&order=' . ($order == 'DESC' ? 'ASC' : 'DESC'); $query = "{$sql} GROUP BY canned.canned_id ORDER BY {$order_by} LIMIT " . $pageNav->getStart() . "," . $pageNav->getLimit(); $res = db_query($query); if ($res && ($num = db_num_rows($res))) { $showing = $pageNav->showing() . ' ' . _N('premade response', 'premade responses', $total); } else { $showing = __('No premade responses found!'); } ?> <div class="pull-left" style="width:700px;padding-top:5px;"> <h2><?php
$orderWays = array('DESC' => 'DESC', 'ASC' => 'ASC'); //Sorting options... if ($_REQUEST['sort']) { $order_column = $sortOptions[$_REQUEST['sort']]; } if ($_REQUEST['order']) { $order = $orderWays[$_REQUEST['order']]; } $order_column = $order_column ? $order_column : 'ipaddr'; $order = $order ? $order : 'ASC'; $order_by = " ORDER BY {$order_column} {$order} "; $total = db_count('SELECT count(*) ' . $from . ' ' . $where); $pagelimit = 1000; //No limit. $page = $_GET['p'] && is_numeric($_GET['p']) ? $_GET['p'] : 1; $pageNav = new Pagenate($total, $page, $pagelimit, $trl); $pageNav->setURL('admin.php', $qstr . '&sort=' . urlencode($_REQUEST['sort']) . '&order=' . urlencode($_REQUEST['order'])); $query = "{$select} {$from} {$where} {$order_by}"; //echo $query; $result = db_query($query); $showing = db_num_rows($result) ? $pageNav->showing() : ''; $negorder = $order == 'DESC' ? 'ASC' : 'DESC'; //Negate the sorting.. $deletable = 0; ?> <div class="msg">API Keys</div> <hr> <div><b><?php echo $showing; ?> </b></div>
} if ($_REQUEST['order']) { $order = $orderWays[$_REQUEST['order']]; } if ($_GET['limit']) { $qstr .= '&limit=' . urlencode($_GET['limit']); } $order_by = $order_by ? $order_by : 'ticket.created'; $order = $order ? $order : 'DESC'; $pagelimit = $_GET['limit'] ? $_GET['limit'] : PAGE_LIMIT; $page = $_GET['p'] && is_numeric($_GET['p']) ? $_GET['p'] : 1; $qselect = 'SELECT ticket.ticket_id,ticket.ticketID,ticket.dept_id,isanswered,ispublic,subject,name ' . ',dept_name,status,source,priority_id,ticket.created,ticket.updated,staff.firstname,staff.lastname'; $qfrom = ' FROM (' . TICKET_TABLE . ' ticket' . ' LEFT JOIN ' . DEPT_TABLE . ' dept ON ticket.dept_id=dept.dept_id )' . ' LEFT JOIN ' . STAFF_TABLE . ' staff ON ticket.staff_id=staff.staff_id'; //Pagenation stuff....wish MYSQL could auto pagenate (something better than limit) $total = db_count('SELECT count(*) ' . $qfrom . ' ' . $qwhere); $pageNav = new Pagenate($total, $page, $pagelimit); $pageNav->setURL('view.php', $qstr . '&sort=' . urlencode($_REQUEST['sort']) . '&order=' . urlencode($_REQUEST['order'])); //Ok..lets roll...create the actual query $qselect .= ' ,count(attach_id) as attachments '; $qfrom .= ' LEFT JOIN ' . TICKET_ATTACHMENT_TABLE . ' attach ON ticket.ticket_id=attach.ticket_id '; $qgroup = ' GROUP BY ticket.ticket_id'; $query = "{$qselect} {$qfrom} {$qwhere} {$qgroup} ORDER BY {$order_by} {$order} LIMIT " . $pageNav->getStart() . "," . $pageNav->getLimit(); //echo $query; $tickets_res = db_query($query); $showing = db_num_rows($tickets_res) ? $pageNav->showing() : ""; $results_type = $status ? $ger_status . 'Tickets' : 'Tickets'; $negorder = $order == 'DESC' ? 'ASC' : 'DESC'; //Negate the sorting.. ?> <div class="page-header">
$order_column = $sortOptions[$sort]; } $order_column = $order_column ?: 'user.name'; if ($_REQUEST['order'] && $orderWays[strtoupper($_REQUEST['order'])]) { $order = $orderWays[strtoupper($_REQUEST['order'])]; } $order = $order ?: 'ASC'; if ($order_column && strpos($order_column, ',')) { $order_column = str_replace(',', " {$order},", $order_column); } $x = $sort . '_sort'; ${$x} = ' class="' . strtolower($order) . '" '; $order_by = "{$order_column} {$order} "; $total = db_count('SELECT count(DISTINCT user.id) ' . $from . ' ' . $where); $page = $_GET['p'] && is_numeric($_GET['p']) ? $_GET['p'] : 1; $pageNav = new Pagenate($total, $page, PAGE_LIMIT); $qstr = '&' . Http::build_query($qs); $qs += array('sort' => $_REQUEST['sort'], 'order' => $_REQUEST['order']); $pageNav->setURL('users.php', $qs); $qstr .= '&order=' . ($order == 'DESC' ? 'ASC' : 'DESC'); $select .= ', count(DISTINCT ticket.ticket_id) as tickets '; $from .= ' LEFT JOIN ' . TICKET_TABLE . ' ticket ON (ticket.user_id = user.id) '; $query = "{$select} {$from} {$where} GROUP BY user.id ORDER BY {$order_by} LIMIT " . $pageNav->getStart() . "," . $pageNav->getLimit(); //echo $query; $qhash = md5($query); $_SESSION['users_qs_' . $qhash] = $query; ?> <h2><?php echo __('User Directory'); ?> </h2>
$qfrom.=' LEFT JOIN '.TICKET_COLLABORATOR_TABLE.' collab ON (ticket.ticket_id = collab.ticket_id )'; $sjoin=''; if($search && $deep_search) { $sjoin.=' LEFT JOIN '.TICKET_THREAD_TABLE.' thread ON (ticket.ticket_id=thread.ticket_id )'; } //get ticket count based on the query so far.. $total=db_count("SELECT count(DISTINCT ticket.ticket_id) $qfrom $sjoin $qwhere"); //pagenate $pagelimit=($_GET['limit'] && is_numeric($_GET['limit']))?$_GET['limit']:PAGE_LIMIT; $page=($_GET['p'] && is_numeric($_GET['p']))?$_GET['p']:1; $pageNav=new Pagenate($total,$page,$pagelimit); $qstr = '&'.http::build_query($qs); $qs += array('sort' => $_REQUEST['sort'], 'order' => $_REQUEST['order']); $pageNav->setURL('tickets.php', $qs); //ADD attachment,priorities, lock and other crap $qselect.=' ,IF(ticket.duedate IS NULL,IF(sla.id IS NULL, NULL, DATE_ADD(ticket.created, INTERVAL sla.grace_period HOUR)), ticket.duedate) as duedate ' .' ,CAST(GREATEST(IFNULL(ticket.lastmessage, 0), IFNULL(ticket.closed, 0), IFNULL(ticket.reopened, 0), ticket.created) as datetime) as effective_date ' .' ,ticket.created as ticket_created, CONCAT_WS(" ", staff.firstname, staff.lastname) as staff, team.name as team ' .' ,IF(staff.staff_id IS NULL,team.name,CONCAT_WS(" ", staff.lastname, staff.firstname)) as assigned ' .' ,IF(ptopic.topic_pid IS NULL, topic.topic, CONCAT_WS(" / ", ptopic.topic, topic.topic)) as helptopic ' .' ,cdata.priority as priority_id, cdata.subject, pri.priority_desc, pri.priority_color'; $qfrom.=' LEFT JOIN '.TICKET_LOCK_TABLE.' tlock ON (ticket.ticket_id=tlock.ticket_id AND tlock.expire>NOW() AND tlock.staff_id!='.db_input($thisstaff->getId()).') '
$order_column = $sortOptions[$sort]; } $order_column = $order_column ? $order_column : 'tpl.name'; if ($_REQUEST['order'] && $orderWays[strtoupper($_REQUEST['order'])]) { $order = $orderWays[strtoupper($_REQUEST['order'])]; } $order = $order ? $order : 'ASC'; if ($order_column && strpos($order_column, ',')) { $order_column = str_replace(',', " {$order},", $order_column); } $x = $sort . '_sort'; ${$x} = ' class="' . strtolower($order) . '" '; $order_by = "{$order_column} {$order} "; $total = db_count('SELECT count(*) FROM ' . EMAIL_TEMPLATE_GRP_TABLE . ' tpl '); $page = $_GET['p'] && is_numeric($_GET['p']) ? $_GET['p'] : 1; $pageNav = new Pagenate($total, $page, PAGE_LIMIT); $qstr = '&' . Http::build_query($qs); $qs += array('sort' => $_REQUEST['sort'], 'order' => $_REQUEST['order']); $pageNav->setURL('templates.php', $qs); $qstr .= '&order=' . ($order == 'DESC' ? 'ASC' : 'DESC'); $query = "{$sql} GROUP BY tpl.tpl_id ORDER BY {$order_by} LIMIT " . $pageNav->getStart() . "," . $pageNav->getLimit(); $res = db_query($query); if ($res && ($num = db_num_rows($res))) { $showing = $pageNav->showing() . ' ' . _N('template', 'templates', $num); } else { $showing = __('No templates found!'); } ?> <div class="pull-left" style="width:700px;padding-top:5px;"> <h2><?php
$order_column = $sortOptions[$sort]; } $order_column = $order_column ? $order_column : 'rule.val'; if ($_REQUEST['order'] && $orderWays[strtoupper($_REQUEST['order'])]) { $order = $orderWays[strtoupper($_REQUEST['order'])]; } $order = $order ? $order : 'ASC'; if ($order_column && strpos($order_column, ',')) { $order_column = str_replace(',', " {$order},", $order_column); } $x = $sort . '_sort'; ${$x} = ' class="' . strtolower($order) . '" '; $order_by = "{$order_column} {$order} "; $total = db_count('SELECT count(DISTINCT rule.id) ' . $from . ' ' . $where); $page = $_GET['p'] && is_numeric($_GET['p']) ? $_GET['p'] : 1; $pageNav = new Pagenate($total, $page, PAGE_LIMIT); $qstr = '&' . Http::build_query($qs); $qs += array('sort' => $_REQUEST['sort'], 'order' => $_REQUEST['order']); $pageNav->setURL('banlist.php', $qs); $qstr .= '&order=' . ($order == 'DESC' ? 'ASC' : 'DESC'); $query = "{$select} {$from} {$where} ORDER BY {$order_by} LIMIT " . $pageNav->getStart() . "," . $pageNav->getLimit(); //echo $query; ?> <h2><?php echo __('Banned Email Addresses'); ?> <i class="help-tip icon-question-sign" href="#ban_list"></i> </h2> <div class="pull-left" style="width:600;padding-top:5px;"> <form action="banlist.php" method="GET" name="filter"> <input type="hidden" name="a" value="filter" >
$qfrom.=' LEFT JOIN '.TICKET_COLLABORATOR_TABLE.' collab ON (ticket.ticket_id = collab.ticket_id )'; $sjoin=''; if($search && $deep_search) { $sjoin.=' LEFT JOIN '.TICKET_THREAD_TABLE.' thread ON (ticket.ticket_id=thread.ticket_id )'; } //get ticket count based on the query so far.. $total=db_count("SELECT count(DISTINCT ticket.ticket_id) $qfrom $sjoin $qwhere"); //pagenate $pagelimit=($_GET['limit'] && is_numeric($_GET['limit']))?$_GET['limit']:PAGE_LIMIT; $page=($_GET['p'] && is_numeric($_GET['p']))?$_GET['p']:1; $pageNav=new Pagenate($total,$page,$pagelimit); $pageNav->setURL('tickets.php',$qstr.'&sort='.urlencode($_REQUEST['sort']).'&order='.urlencode($_REQUEST['order'])); //ADD attachment,priorities, lock and other crap $qselect.=' ,IF(ticket.duedate IS NULL,IF(sla.id IS NULL, NULL, DATE_ADD(ticket.created, INTERVAL sla.grace_period HOUR)), ticket.duedate) as duedate ' .' ,CAST(GREATEST(IFNULL(ticket.lastmessage, 0), IFNULL(ticket.closed, 0), IFNULL(ticket.reopened, 0), ticket.created) as datetime) as effective_date ' .' ,ticket.created as ticket_created, CONCAT_WS(" ", staff.firstname, staff.lastname) as staff, team.name as team ' .' ,IF(staff.staff_id IS NULL,team.name,CONCAT_WS(" ", staff.lastname, staff.firstname)) as assigned ' .' ,IF(ptopic.topic_pid IS NULL, topic.topic, CONCAT_WS(" / ", ptopic.topic, topic.topic)) as helptopic ' .' ,cdata.priority as priority_id, cdata.subject, pri.priority_desc, pri.priority_color'; $qfrom.=' LEFT JOIN '.TICKET_LOCK_TABLE.' tlock ON (ticket.ticket_id=tlock.ticket_id AND tlock.expire>NOW() AND tlock.staff_id!='.db_input($thisstaff->getId()).') ' .' LEFT JOIN '.STAFF_TABLE.' staff ON (ticket.staff_id=staff.staff_id) ' .' LEFT JOIN '.TEAM_TABLE.' team ON (ticket.team_id=team.team_id) ' .' LEFT JOIN '.SLA_TABLE.' sla ON (ticket.sla_id=sla.id AND sla.isactive=1) '
<h2><?php echo __('Custom Forms'); ?> </h2> </div> <div class="pull-right flush-right" style="padding-top:5px;padding-right:5px;"> <b><a href="forms.php?a=add" class="Icon form-add"><?php echo __('Add New Custom Form'); ?> </a></b></div> <div class="clear"></div> <?php $page = $_GET['p'] && is_numeric($_GET['p']) ? $_GET['p'] : 1; $count = DynamicForm::objects()->filter(array('type__in' => array('G')))->count(); $pageNav = new Pagenate($count, $page, PAGE_LIMIT); $pageNav->setURL('forms.php'); $showing = $pageNav->showing() . ' ' . _N('form', 'forms', $count); ?> <form action="forms.php" method="POST" name="forms"> <?php csrf_token(); ?> <input type="hidden" name="do" value="mass_process" > <input type="hidden" id="action" name="a" value="" > <table class="list" border="0" cellspacing="1" cellpadding="0" width="940"> <thead> <tr> <th width="7"> </th> <th><?php
<div style="width:700;padding-top:5px; float:left;"> <h2>Currently Installed Plugins</h2> </div> <div style="float:right;text-align:right;padding-top:5px;padding-right:5px;"> <b><a href="plugins.php?a=add" class="Icon form-add">Add New Plugin</a></b></div> <div class="clear"></div> <?php $page = $_GET['p'] && is_numeric($_GET['p']) ? $_GET['p'] : 1; $count = count($ost->plugins->allInstalled()); $pageNav = new Pagenate($count, $page, PAGE_LIMIT); $pageNav->setURL('forms.php'); $showing = $pageNav->showing() . ' forms'; ?> <form action="plugins.php" method="POST" name="forms"> <?php csrf_token(); ?> <input type="hidden" name="do" value="mass_process" > <input type="hidden" id="action" name="a" value="" > <table class="list" border="0" cellspacing="1" cellpadding="0" width="940"> <thead> <tr> <th width="7"> </th> <th>Plugin Name</th> <th>Status</td> <th>Date Installed</th> </tr> </thead> <tbody>
$order_column = $sortOptions[$sort]; } $order_column = $order_column ? $order_column : 'page.name'; if ($_REQUEST['order'] && $orderWays[strtoupper($_REQUEST['order'])]) { $order = $orderWays[strtoupper($_REQUEST['order'])]; } $order = $order ? $order : 'ASC'; if ($order_column && strpos($order_column, ',')) { $order_column = str_replace(',', " {$order},", $order_column); } $x = $sort . '_sort'; ${$x} = ' class="' . strtolower($order) . '" '; $order_by = "{$order_column} {$order} "; $total = db_count('SELECT count(*) FROM ' . PAGE_TABLE . ' page ' . $where); $page = $_GET['p'] && is_numeric($_GET['p']) ? $_GET['p'] : 1; $pageNav = new Pagenate($total, $page, PAGE_LIMIT); $qstr = '&' . Http::build_query($qs); $qs += array('sort' => $_REQUEST['sort'], 'order' => $_REQUEST['order']); $pageNav->setURL('pages.php', $qs); $qstr .= '&order=' . ($order == 'DESC' ? 'ASC' : 'DESC'); $query = "{$sql} {$where} GROUP BY page.id ORDER BY {$order_by} LIMIT " . $pageNav->getStart() . "," . $pageNav->getLimit(); $res = db_query($query); if ($res && ($num = db_num_rows($res))) { $showing = $pageNav->showing() . _N('site page', 'site pages', $num); } else { $showing = __('No pages found!'); } ?> <div class="pull-left" style="width:700px;padding-top:5px;"> <h2><?php
$qwhere .= ' AND created>=FROM_UNIXTIME(' . $startTime . ')'; $qstr .= '&startDate=' . urlencode($_REQUEST['startDate']); } if ($endTime) { $qwhere .= ' AND created<=FROM_UNIXTIME(' . $endTime . ')'; $qstr .= '&endDate=' . urlencode($_REQUEST['endDate']); } } $qselect = 'SELECT log.* '; $qfrom = ' FROM ' . SYSLOG_TABLE . ' log '; //get log count based on the query so far.. $total = db_count("SELECT count(*) {$qfrom} {$qwhere}"); $pagelimit = 30; $page = $_GET['p'] && is_numeric($_GET['p']) ? $_GET['p'] : 1; //pagenate $pageNav = new Pagenate($total, $page, $pagelimit, $trl); $pageNav->setURL('admin.php', $qstr); $query = "{$qselect} {$qfrom} {$qwhere} ORDER BY log.created DESC LIMIT " . $pageNav->getStart() . "," . $pageNav->getLimit(); //echo $query; $result = db_query($query); $showing = db_num_rows($resp) ? $pageNav->showing() : ""; ?> <div class="msg">System Logs</div> <div id='filter' > <form action="admin.php?t=syslog" method="get"> <input type="hidden" name="t" value="syslog" /> <div style="padding-left:15px;"> Date Span: From <input id="sd" size=15 name="startDate" value="<?php echo Format::htmlchars($_REQUEST['startDate']); ?>
$order_column = $sortOptions[$sort]; } $order_column = $order_column ? $order_column : 'topic.topic'; if ($_REQUEST['order'] && $orderWays[strtoupper($_REQUEST['order'])]) { $order = $orderWays[strtoupper($_REQUEST['order'])]; } $order = $order ? $order : 'ASC'; if ($order_column && strpos($order_column, ',')) { $order_column = str_replace(',', " {$order},", $order_column); } $x = $sort . '_sort'; ${$x} = ' class="' . strtolower($order) . '" '; $order_by = "{$order_column} {$order} "; $total = db_count('SELECT count(*) FROM ' . TOPIC_TABLE . ' topic '); $page = $_GET['p'] && is_numeric($_GET['p']) ? $_GET['p'] : 1; $pageNav = new Pagenate($total, $page, PAGE_LIMIT); $pageNav->setURL('helptopics.php', $qstr . '&sort=' . urlencode($_REQUEST['sort']) . '&order=' . urlencode($_REQUEST['order'])); //Ok..lets roll...create the actual query $qstr .= '&order=' . ($order == 'DESC' ? 'ASC' : 'DESC'); $query = "{$sql} GROUP BY topic.topic_id ORDER BY {$order_by} LIMIT " . $pageNav->getStart() . "," . $pageNav->getLimit(); $res = db_query($query); if ($res && ($num = db_num_rows($res))) { $showing = $pageNav->showing() . ' help topics'; } else { $showing = 'No help topic found!'; } ?> <div style="width:700px;padding-top:5px; float:left;"> <h2>Help Topics</h2> </div> <div style="float:right;text-align:right;padding-top:5px;padding-right:5px;">
if ($search) { $qstr .= '&a=' . urlencode($_REQUEST['a']) . '&q=' . urlencode($_REQUEST['q']); if (is_numeric($_REQUEST['q'])) { $qwhere .= " AND ticket.ticketID LIKE '{$queryterm}%'"; } else { //Deep search! $queryterm = db_real_escape($_REQUEST['q'], false); //escape the term ONLY...no quotes. $qwhere .= ' AND ( ' . " ticket.subject LIKE '%{$queryterm}%'" . " OR message.message LIKE '%{$queryterm}%'" . " OR response.response LIKE '%{$queryterm}%'" . ' ) '; $deep_search = true; //Joins needed for search $qfrom .= ' LEFT JOIN ' . TICKET_MESSAGE_TABLE . ' message ON (ticket.ticket_id=message.ticket_id )' . ' LEFT JOIN ' . TICKET_RESPONSE_TABLE . ' response ON (ticket.ticket_id=response.ticket_id )'; } } $total = db_count('SELECT count(DISTINCT ticket.ticket_id) ' . $qfrom . ' ' . $qwhere); $pageNav = new Pagenate($total, $page, PAGE_LIMIT); $pageNav->setURL('tickets.php', $qstr . '&sort=' . urlencode($_REQUEST['sort']) . '&order=' . urlencode($_REQUEST['order'])); //more stuff... $qselect .= ' ,count(attach_id) as attachments '; $qfrom .= ' LEFT JOIN ' . TICKET_ATTACHMENT_TABLE . ' attach ON ticket.ticket_id=attach.ticket_id '; $qgroup = ' GROUP BY ticket.ticket_id'; $query = "{$qselect} {$qfrom} {$qwhere} {$qgroup} ORDER BY {$order_by} {$order} LIMIT " . $pageNav->getStart() . "," . $pageNav->getLimit(); //echo $query; $res = db_query($query); $showing = $res && db_num_rows($res) ? $pageNav->showing() : ""; $showing .= $status ? ' ' . ucfirst($status) . ' Tickets' : ' All Tickets'; if ($search) { $showing = "Search Results: {$showing}"; } $negorder = $order == 'DESC' ? 'ASC' : 'DESC'; //Negate the sorting
<td></td> </tr> <?php } ?> </tbody> </table> </div> <div id="items" class="tab_content" style="display:none"> <table class="form_table" width="940" border="0" cellspacing="0" cellpadding="2"> <thead> <?php if ($list) { $page = $_GET['p'] && is_numeric($_GET['p']) ? $_GET['p'] : 1; $count = $list->getNumItems(); $pageNav = new Pagenate($count, $page, PAGE_LIMIT); $pageNav->setURL('list.php', array('id' => $list->getId())); $showing = $pageNav->showing() . ' ' . __('list items'); ?> <?php } else { $showing = __('Add a few initial items to the list'); } ?> <tr> <th colspan="5"> <em><?php echo $showing; ?> </em> </th>
$q = $settings['keywords']; if (is_numeric($q)) { $tickets->filter(array('number__startswith' => $q)); } else { //Deep search! // Use the search engine to perform the search $tickets = $ost->searcher->find($q, $tickets); } } if ($settings['topic_id']) { $tickets = $tickets->filter(array('topic_id' => $settings['topic_id'])); } TicketForm::ensureDynamicDataView(); $total = $tickets->count(); $page = $_GET['p'] && is_numeric($_GET['p']) ? $_GET['p'] : 1; $pageNav = new Pagenate($total, $page, PAGE_LIMIT); $qstr = '&' . Http::build_query($qs); $qs += array('sort' => $_REQUEST['sort'], 'order' => $_REQUEST['order']); $pageNav->setURL('tickets.php', $qs); $pageNav->paginate($tickets); $showing = $total ? $pageNav->showing() : ""; if (!$results_type) { $results_type = ucfirst($status) . ' ' . __('Tickets'); } $showing .= $status ? ' ' . $results_type : ' ' . __('All Tickets'); if ($search) { $showing = __('Search Results') . ": {$showing}"; } $negorder = $order == '-' ? 'ASC' : 'DESC'; //Negate the sorting $tickets->order_by($order . $order_by);
if($_REQUEST['order'] && $orderWays[strtoupper($_REQUEST['order'])]) { $order=$orderWays[strtoupper($_REQUEST['order'])]; } $order=$order?$order:'ASC'; if($order_column && strpos($order_column,',')){ $order_column=str_replace(','," $order,",$order_column); } $x=$sort.'_sort'; $$x=' class="'.strtolower($order).'" '; $order_by="$order_column $order "; $total=db_count('SELECT count(*) FROM '.FAQ_CATEGORY_TABLE.' cat '); $page=($_GET['p'] && is_numeric($_GET['p']))?$_GET['p']:1; $pageNav=new Pagenate($total, $page, PAGE_LIMIT); $qs += array('sort' => $_REQUEST['sort'], 'order' => $_REQUEST['order']); $pageNav->setURL('categories.php', $qs); $qstr = '&order='.($order=='DESC'?'ASC':'DESC'); $query="$sql GROUP BY cat.category_id ORDER BY $order_by LIMIT ".$pageNav->getStart().",".$pageNav->getLimit(); $res=db_query($query); if($res && ($num=db_num_rows($res))) $showing=$pageNav->showing().' '.__('categories'); else $showing=__('No FAQ categories found!'); ?> <div class="pull-left" style="width:700px;padding-top:5px;"> <h2><?php echo __('FAQ Categories');?></h2> </div> <div class="pull-right flush-right" style="padding-top:5px;padding-right:5px;">
if ($_REQUEST['order'] && $orderWays[strtoupper($_REQUEST['order'])]) { $order = $orderWays[strtoupper($_REQUEST['order'])]; } $order = $order ? $order : 'DESC'; if ($order_column && strpos($order_column, ',')) { $order_column = str_replace(',', " {$order},", $order_column); } $x = $sort . '_sort'; ${$x} = ' class="' . strtolower($order) . '" '; $order_by = "{$order_column} {$order} "; $qselect = 'SELECT log.* '; $qfrom = ' FROM ' . SYSLOG_TABLE . ' log '; $total = db_count("SELECT count(*) {$qfrom} {$qwhere}"); $page = $_GET['p'] && is_numeric($_GET['p']) ? $_GET['p'] : 1; //pagenate $pageNav = new Pagenate($total, $page, PAGE_LIMIT); $pageNav->setURL('logs.php', $qstr); $qstr .= '&order=' . ($order == 'DESC' ? 'ASC' : 'DESC'); $query = "{$qselect} {$qfrom} {$qwhere} ORDER BY {$order_by} LIMIT " . $pageNav->getStart() . "," . $pageNav->getLimit(); $res = db_query($query); if ($res && ($num = db_num_rows($res))) { $showing = $pageNav->showing() . ' ' . $title; } else { $showing = 'No logs found!'; } ?> <h2>System Logs <i class="help-tip icon-question-sign" href="#system_logs"></i></h2> <div id='filter' > <form action="logs.php" method="get"> <div style="padding-left:2px;">
<h2><?php echo __('Custom Lists'); ?> </h2> </div> <div class="pull-right flush-right" style="padding-top:5px;padding-right:5px;"> <b><a href="lists.php?a=add" class="Icon list-add"><?php echo __('Add New Custom List'); ?> </a></b></div> <div class="clear"></div> <?php $page = $_GET['p'] && is_numeric($_GET['p']) ? $_GET['p'] : 1; $count = DynamicList::objects()->count(); $pageNav = new Pagenate($count, $page, PAGE_LIMIT); $pageNav->setURL('lists.php'); $showing = $pageNav->showing() . ' ' . _N('custom list', 'custom lists', $count); ?> <form action="lists.php" method="POST" name="lists"> <?php csrf_token(); ?> <input type="hidden" name="do" value="mass_process" > <input type="hidden" id="action" name="a" value="" > <table class="list" border="0" cellspacing="1" cellpadding="0" width="940"> <caption>Custom Lists</caption> <thead> <tr> <th width="7"> </th> <th><?php
//Sorting options... if ($_REQUEST['sort']) { $order_column = $sortOptions[$_REQUEST['sort']]; } if ($_REQUEST['order']) { $order = $orderWays[$_REQUEST['order']]; } $order_column = $order_column ? $order_column : 'premade.title'; $order = $order ? $order : 'DESC'; $order_by = $search ? '' : " ORDER BY {$order_column} {$order} "; $total = db_count('SELECT count(*) ' . $from . ' ' . $where); $pagelimit = $thisuser->getPageLimit(); $pagelimit = $pagelimit ? $pagelimit : PAGE_LIMIT; //true default...if all fails. $page = $_GET['p'] && is_numeric($_GET['p']) ? $_GET['p'] : 1; $pageNav = new Pagenate($total, $page, $pagelimit); $pageNav->setURL('kb.php', $qstr . '&sort=' . urlencode($_REQUEST['sort']) . '&order=' . urlencode($_REQUEST['order'])); //Ok..lets roll...create the actual query $query = "{$select} {$from} {$where} {$order_by} LIMIT " . $pageNav->getStart() . "," . $pageNav->getLimit(); //echo $query; $replies = db_query($query); $showing = db_num_rows($replies) ? $pageNav->showing() : ''; $results_type = $search ? 'Search Results' : 'Premade/Canned Replies'; $negorder = $order == 'DESC' ? 'ASC' : 'DESC'; //Negate the sorting.. ?> <div> <?php if ($errors['err']) { ?> <p align="center" id="errormessage"><?php
$order_column = $sortOptions[$sort]; } $order_column = $order_column ? $order_column : 'staff.firstname,staff.lastname'; if ($_REQUEST['order'] && $orderWays[strtoupper($_REQUEST['order'])]) { $order = $orderWays[strtoupper($_REQUEST['order'])]; } $order = $order ? $order : 'ASC'; if ($order_column && strpos($order_column, ',')) { $order_column = str_replace(',', " {$order},", $order_column); } $x = $sort . '_sort'; ${$x} = ' class="' . strtolower($order) . '" '; $order_by = "{$order_column} {$order} "; $total = db_count('SELECT count(DISTINCT staff.staff_id) ' . $from . ' ' . $where); $page = $_GET['p'] && is_numeric($_GET['p']) ? $_GET['p'] : 1; $pageNav = new Pagenate($total, $page, PAGE_LIMIT); $pageNav->setURL('staff.php', $qstr . '&sort=' . urlencode($_REQUEST['sort']) . '&order=' . urlencode($_REQUEST['order'])); //Ok..lets roll...create the actual query $qstr .= '&order=' . ($order == 'DESC' ? 'ASC' : 'DESC'); $query = "{$select} {$from} {$where} GROUP BY staff.staff_id ORDER BY {$order_by} LIMIT " . $pageNav->getStart() . "," . $pageNav->getLimit(); //echo $query; ?> <h2>Staff Members</h2> <div style="width:700px; float:left;"> <form action="staff.php" method="GET" name="filter"> <input type="hidden" name="a" value="filter" > <select name="did" id="did"> <option value="0">— All Departments —</option> <?php $sql = 'SELECT dept.dept_id, dept.dept_name,count(staff.staff_id) as users ' . 'FROM ' . DEPT_TABLE . ' dept ' . 'INNER JOIN ' . STAFF_TABLE . ' staff ON(staff.dept_id=dept.dept_id) ' . 'GROUP By dept.dept_id HAVING users>0 ORDER BY dept_name'; if (($res = db_query($sql)) && db_num_rows($res)) {
<div class="pull-left" style="width:700;padding-top:5px;"> <h2><?php echo __('Custom Lists'); ?></h2> </div> <div class="pull-right flush-right" style="padding-top:5px;padding-right:5px;"> <b><a href="lists.php?a=add" class="Icon list-add"><?php echo __('Add New Custom List'); ?></a></b></div> <div class="clear"></div> <?php $page = ($_GET['p'] && is_numeric($_GET['p'])) ? $_GET['p'] : 1; $count = DynamicList::objects()->count(); $pageNav = new Pagenate($count, $page, PAGE_LIMIT); $pageNav->setURL('lists.php'); $showing=$pageNav->showing().' '._N('custom list', 'custom lists', $count); ?> <form action="lists.php" method="POST" name="lists"> <?php csrf_token(); ?> <input type="hidden" name="do" value="mass_process" > <input type="hidden" id="action" name="a" value="" > <table class="list" border="0" cellspacing="1" cellpadding="0" width="940"> <caption>Custom Lists</caption> <thead> <tr> <th width="7"> </th> <th><?php echo __('List Name'); ?></th> <th><?php echo __('Created') ?></th> <th><?php echo __('Last Updated'); ?></th> </tr> </thead> <tbody>
if (is_numeric($_REQUEST['q'])) { $qwhere .= " AND ticket.`number` LIKE '{$queryterm}%'"; } else { //Deep search! $queryterm = db_real_escape($_REQUEST['q'], false); //escape the term ONLY...no quotes. $qwhere .= ' AND ( ' . " cdata.subject LIKE '%{$queryterm}%'" . " OR thread.body LIKE '%{$queryterm}%'" . ' ) '; $deep_search = true; //Joins needed for search $qfrom .= ' LEFT JOIN ' . TICKET_THREAD_TABLE . ' thread ON (' . 'ticket.ticket_id=thread.ticket_id AND thread.thread_type IN ("M","R"))'; } } TicketForm::ensureDynamicDataView(); $total = db_count('SELECT count(DISTINCT ticket.ticket_id) ' . $qfrom . ' ' . $qwhere); $page = $_GET['p'] && is_numeric($_GET['p']) ? $_GET['p'] : 1; $pageNav = new Pagenate($total, $page, PAGE_LIMIT); $qstr = '&' . Http::build_query($qs); $qs += array('sort' => $_REQUEST['sort'], 'order' => $_REQUEST['order']); $pageNav->setURL('tickets.php', $qs); //more stuff... $qselect .= ' ,count(attach_id) as attachments '; $qfrom .= ' LEFT JOIN ' . TICKET_ATTACHMENT_TABLE . ' attach ON ticket.ticket_id=attach.ticket_id '; $qgroup = ' GROUP BY ticket.ticket_id'; $query = "{$qselect} {$qfrom} {$qwhere} {$qgroup} ORDER BY {$order_by} {$order} LIMIT " . $pageNav->getStart() . "," . $pageNav->getLimit(); //echo $query; $res = db_query($query); $showing = $res && db_num_rows($res) ? $pageNav->showing() : ""; if (!$results_type) { $results_type = ucfirst($status) . ' Tickets'; } $showing .= $status ? ' ' . $results_type : ' ' . __('All Tickets');
<h2><?php echo __('Currently Installed Plugins'); ?> </h2> </div> <div class="pull-right flush-right" style="padding-top:5px;padding-right:5px;"> <b><a href="plugins.php?a=add" class="Icon form-add"><?php echo __('Add New Plugin'); ?> </a></b></div> <div class="clear"></div> <?php $page = $_GET['p'] && is_numeric($_GET['p']) ? $_GET['p'] : 1; $count = count($ost->plugins->allInstalled()); $pageNav = new Pagenate($count, $page, PAGE_LIMIT); $pageNav->setURL('forms.php'); $showing = $pageNav->showing() . ' ' . _N('plugin', 'plugins', $count); ?> <form action="plugins.php" method="POST" name="forms"> <?php csrf_token(); ?> <input type="hidden" name="do" value="mass_process" > <input type="hidden" id="action" name="a" value="" > <table class="list" border="0" cellspacing="1" cellpadding="0" width="940"> <thead> <tr> <th width="7"> </th> <th><?php
$order_column = $sortOptions[$sort]; } $order_column = $order_column ? $order_column : 'canned.title'; if ($_REQUEST['order'] && $orderWays[strtoupper($_REQUEST['order'])]) { $order = $orderWays[strtoupper($_REQUEST['order'])]; } $order = $order ? $order : 'ASC'; if ($order_column && strpos($order_column, ',')) { $order_column = str_replace(',', " {$order},", $order_column); } $x = $sort . '_sort'; ${$x} = ' class="' . strtolower($order) . '" '; $order_by = "{$order_column} {$order} "; $total = db_count('SELECT count(*) FROM ' . CANNED_TABLE . ' canned '); $page = $_GET['p'] && is_numeric($_GET['p']) ? $_GET['p'] : 1; $pageNav = new Pagenate($total, $page, PAGE_LIMIT); $pageNav->setURL('canned.php', $qstr . '&sort=' . urlencode($_REQUEST['sort']) . '&order=' . urlencode($_REQUEST['order'])); //Ok..lets roll...create the actual query $qstr .= '&order=' . ($order == 'DESC' ? 'ASC' : 'DESC'); $query = "{$sql} GROUP BY canned.canned_id ORDER BY {$order_by} LIMIT " . $pageNav->getStart() . "," . $pageNav->getLimit(); $res = db_query($query); if ($res && ($num = db_num_rows($res))) { $showing = $pageNav->showing() . ' premade responses'; } else { $showing = 'No premade responses found!'; } ?> <div style="width:700px;padding-top:5px; float:left;"> <h2>Canned Responses</h2> </div> <div style="float:right;text-align:right;padding-top:5px;padding-right:5px;">
$order_column = $sortOptions[$sort]; } $order_column = $order_column ?: 'org.name'; if ($_REQUEST['order'] && $orderWays[strtoupper($_REQUEST['order'])]) { $order = $orderWays[strtoupper($_REQUEST['order'])]; } $order = $order ?: 'ASC'; if ($order_column && strpos($order_column, ',')) { $order_column = str_replace(',', " {$order},", $order_column); } $x = $sort . '_sort'; ${$x} = ' class="' . strtolower($order) . '" '; $order_by = "{$order_column} {$order} "; $total = db_count('SELECT count(DISTINCT org.id) ' . $from . ' ' . $where); $page = $_GET['p'] && is_numeric($_GET['p']) ? $_GET['p'] : 1; $pageNav = new Pagenate($total, $page, PAGE_LIMIT); $pageNav->setURL('orgs.php', $qstr . '&sort=' . urlencode($_REQUEST['sort']) . '&order=' . urlencode($_REQUEST['order'])); //Ok..lets roll...create the actual query $qstr .= '&order=' . ($order == 'DESC' ? 'ASC' : 'DESC'); $select .= ', count(DISTINCT user.id) as users '; $from .= ' LEFT JOIN ' . USER_TABLE . ' user ON (user.org_id = org.id) '; $query = "{$select} {$from} {$where} GROUP BY org.id ORDER BY {$order_by} LIMIT " . $pageNav->getStart() . "," . $pageNav->getLimit(); //echo $query; $qhash = md5($query); $_SESSION['orgs_qs_' . $qhash] = $query; ?> <h2>Organizations</h2> <div style="width:700px; float:left;"> <form action="orgs.php" method="get"> <?php csrf_token();
$order_column = $order_column ?: 'user.name'; if ($_REQUEST['order'] && $orderWays[strtoupper($_REQUEST['order'])]) $order = $orderWays[strtoupper($_REQUEST['order'])]; $order=$order ?: 'ASC'; if ($order_column && strpos($order_column,',')) $order_column = str_replace(','," $order,",$order_column); $x=$sort.'_sort'; $$x=' class="'.strtolower($order).'" '; $order_by="$order_column $order "; $total=db_count('SELECT count(DISTINCT user.id) '.$from.' '.$where); $page=($_GET['p'] && is_numeric($_GET['p']))?$_GET['p']:1; $pageNav=new Pagenate($total,$page,PAGE_LIMIT); $pageNav->setURL('users.php',$qstr.'&sort='.urlencode($_REQUEST['sort']).'&order='.urlencode($_REQUEST['order'])); //Ok..lets roll...create the actual query $qstr.='&order='.($order=='DESC'?'ASC':'DESC'); $select .= ', count(DISTINCT ticket.ticket_id) as tickets '; $from .= ' LEFT JOIN '.TICKET_TABLE.' ticket ON (ticket.user_id = user.id) '; $query="$select $from $where GROUP BY user.id ORDER BY $order_by LIMIT ".$pageNav->getStart().",".$pageNav->getLimit(); //echo $query; $showing = $search ? __('Search Results').': ' : ''; $res = db_query($query); if($res && ($num=db_num_rows($res)))
<td></td> </tr> <?php } ?> </tbody> </table> </div> <div id="items" class="tab_content" style="display:none"> <table class="form_table" width="940" border="0" cellspacing="0" cellpadding="2"> <thead> <?php if ($list) { $page = $_GET['p'] && is_numeric($_GET['p']) ? $_GET['p'] : 1; $count = $list->getItemCount(); $pageNav = new Pagenate($count, $page, PAGE_LIMIT); $pageNav->setURL('dynamic-list.php', 'id=' . urlencode($_REQUEST['id'])); $showing = $pageNav->showing() . ' list items'; ?> <?php } else { $showing = 'Add a few initial items to the list'; } ?> <tr> <th colspan="5"> <em><?php echo $showing; ?> </em> </th>