array(0=>'',1=>''), 'time' => array(1=>'',2=>'',3=>'',4=>'',5=>'',6=>'',7=>'',8=>'',9=>'',10=>'',11=>'',12=>''), ); $is_all_time = 0; // Default this month to date $date_from = date('Y-m-d',mktime(0, 0, 0, date("m"), 1, date("Y"))); $date_to = date('Y-m-d'); $input_datefrom = date('m/d/Y', strtotime('last month')); $input_dateto = date('m/d/Y'); /* Date */ if (!empty($_GET['w'])) { $df = preg_replace('/[^0-9]/','', hesk_GET('datefrom') ); if (strlen($df) == 8) { $date_from = substr($df,4,4) . '-' . substr($df,0,2) . '-' . substr($df,2,2); $input_datefrom = substr($df,0,2) . '/' . substr($df,2,2) . '/' . substr($df,4,4); } else { $date_from = date('Y-m-d', strtotime('last month') ); } $dt = preg_replace('/[^0-9]/','', hesk_GET('dateto') ); if (strlen($dt) == 8) { $date_to = substr($dt,4,4) . '-' . substr($dt,0,2) . '-' . substr($dt,2,2); $input_dateto = substr($dt,0,2) . '/' . substr($dt,2,2) . '/' . substr($dt,4,4); } else { $date_to = date('Y-m-d'); } if ($date_from > $date_to) { $tmp = $date_from; $tmp2 = $input_datefrom; $date_from = $date_to; $input_datefrom = $input_dateto; $date_to = $tmp; $input_dateto = $tmp2; $note_buffer = $hesklang['datetofrom']; } if ($date_to > date('Y-m-d')) { $date_to = date('Y-m-d'); $input_dateto = date('m/d/Y'); } $selected['w'][1]='checked="checked"'; $selected['time'][3]='selected="selected"'; } else { $selected['w'][0]='checked="checked"'; $_GET['time'] = intval( hesk_GET('time', 3) ); switch ($_GET['time']) { case 1: /* Today */ $date_from = date('Y-m-d'); $date_to = $date_from; $selected['time'][1]='selected="selected"'; $is_all_time = 1; break; case 2: /* Yesterday */ $date_from = date('Y-m-d',mktime(0, 0, 0, date("m"), date("d")-1, date("Y"))); $date_to = $date_from; $selected['time'][2]='selected="selected"'; $is_all_time = 1; break; case 4: /* Last month */ $date_from = date('Y-m-d',mktime(0, 0, 0, date("m")-1, 1, date("Y"))); $date_to = date('Y-m-d',mktime(0, 0, 0, date("m"), 0, date("Y"))); $selected['time'][4]='selected="selected"'; break; case 5: /* Last 30 days */ $date_from = date('Y-m-d',mktime(0, 0, 0, date("m")-1, date("d"), date("Y"))); $date_to = date('Y-m-d'); $selected['time'][5]='selected="selected"'; break; case 6: /* This week */ list($date_from,$date_to)=dateweek(0); $date_to = date('Y-m-d'); $selected['time'][6]='selected="selected"'; break; case 7: /* Last week */ list($date_from,$date_to)=dateweek(-1); $selected['time'][7]='selected="selected"'; break; case 8: /* This business week */ list($date_from,$date_to)=dateweek(0,1); $date_to = date('Y-m-d'); $selected['time'][8]='selected="selected"'; break; case 9: /* Last business week */ list($date_from,$date_to)=dateweek(-1,1); $selected['time'][9]='selected="selected"'; break; case 10: /* This year */ $date_from = date('Y').'-01-01'; $date_to = date('Y-m-d'); $selected['time'][10]='selected="selected"'; break; case 11: /* Last year */ $date_from = date('Y')-1 . '-01-01'; $date_to = date('Y')-1 . '-12-31'; $selected['time'][11]='selected="selected"'; break; case 12: /* All time */ $date_from = hesk_getOldestDate(); $date_to = date('Y-m-d'); $selected['time'][12]='selected="selected"'; $is_all_time = 1; break; default: $_GET['time'] = 3; $selected['time'][3]='selected="selected"'; } } unset($tmp); // Start SQL statement for selecting tickets $sql = "SELECT * FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."tickets` WHERE "; // Some default settings $archive = array(1=>0,2=>0); $s_my = array(1=>1,2=>1); $s_ot = array(1=>1,2=>1); $s_un = array(1=>1,2=>1); // --> TICKET CATEGORY $category = intval( hesk_GET('category', 0) ); // Make sure user has access to this category if ($category && hesk_okCategory($category, 0) ) { $sql .= " `category`='{$category}' "; } // No category selected, show only allowed categories else { $sql .= hesk_myCategories(); } // Show only tagged tickets? if ( ! empty($_GET['archive']) ) { $archive[1]=1; $sql .= " AND `archive`='1' "; } // Ticket owner preferences $fid = 1; require(HESK_PATH . 'inc/assignment_search.inc.php'); // --> TICKET STATUS $status = $hesk_settings['statuses']; foreach ($status as $k => $v) { if (empty($_GET['s'.$k])) { unset($status[$k]); } } // How many statuses are we pulling out of the database? $tmp = count($status); // Do we need to search by status? if ( $tmp < 6 ) { // If no statuses selected, show all if ($tmp == 0) { $status = $hesk_settings['statuses']; } else { // Add to the SQL $sql .= " AND `status` IN ('" . implode("','", array_keys($status) ) . "') "; } } // --> TICKET PRIORITY $possible_priority = array( 0 => 'CRITICAL', 1 => 'HIGH', 2 => 'MEDIUM', 3 => 'LOW', ); $priority = $possible_priority; foreach ($priority as $k => $v) { if (empty($_GET['p'.$k])) { unset($priority[$k]); } } // How many priorities are we pulling out of the database? $tmp = count($priority); // Create the SQL based on the number of priorities we need if ($tmp == 0 || $tmp == 4) { // Nothing or all selected, no need to modify the SQL code $priority = $possible_priority; } else { // A custom selection of priorities $sql .= " AND `priority` IN ('" . implode("','", array_keys($priority) ) . "') "; } // Prepare variables used in search and forms require_once(HESK_PATH . 'inc/prepare_ticket_export.inc.php'); //////////////////////////////////////////////////////////////////////////////// // Can view tickets that are unassigned or assigned to others? $can_view_ass_others = hesk_checkPermission('can_view_ass_others',0); $can_view_unassigned = hesk_checkPermission('can_view_unassigned',0); // Category options $category_options = ''; $my_cat = array(); $res2 = hesk_dbQuery("SELECT `id`, `name` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."categories` WHERE " . hesk_myCategories('id') . " ORDER BY `cat_order` ASC"); while ($row=hesk_dbFetchAssoc($res2)) { $my_cat[$row['id']] = hesk_msgToPlain($row['name'], 1); $row['name'] = (hesk_mb_strlen($row['name']) > 50) ? hesk_mb_substr($row['name'],0,50) . '...' : $row['name']; $cat_selected = ($row['id'] == $category) ? 'selected="selected"' : ''; $category_options .= ''; } // Generate export file if (isset($_GET['w'])) { require_once(HESK_PATH . 'inc/export_functions.inc.php'); list($success_msg, $tickets_exported) = hesk_export_to_XML($sql); } /* Print header */ require_once(HESK_PATH . 'inc/header.inc.php'); /* Print main manage users page */ require_once(HESK_PATH . 'inc/show_admin_nav.inc.php'); /* This will handle error, success and notice messages */ hesk_handle_messages(); // If an export was generated, show the link to download if (isset($success_msg)) { if ($tickets_exported > 0) { hesk_show_success($success_msg); } else { hesk_show_notice($hesklang['n2ex']); } } ?>