public function export($head, $dl)
 {
     $file = PATH . 'export/' . str_replace('{date}', date('dmY-his'), accounts::ACC_EXP_FILENAME);
     $sep = ',';
     $csv = array();
     $searchParams = '';
     if (!isset($_GET['orderby'])) {
         $_GET['orderby'] = 'order_asc';
     }
     $orderBy = 'ORDER BY `name`';
     if (isset($_GET['orderby'])) {
         switch ($_GET['orderby']) {
             // Name (ascending)..
             case 'name_asc':
                 $orderBy = 'ORDER BY `name`';
                 break;
                 // Name (descending)..
             // Name (descending)..
             case 'name_desc':
                 $orderBy = 'ORDER BY `name` desc';
                 break;
                 // Email Address (ascending)..
             // Email Address (ascending)..
             case 'email_asc':
                 $orderBy = 'ORDER BY `email`';
                 break;
                 // Email Address (descending)..
             // Email Address (descending)..
             case 'email_desc':
                 $orderBy = 'ORDER BY `email` desc';
                 break;
                 // Most tickets..
             // Most tickets..
             case 'tickets_asc':
                 $orderBy = 'ORDER BY `tickCount` desc';
                 break;
                 // Least tickets..
             // Least tickets..
             case 'tickets_desc':
                 $orderBy = 'ORDER BY `tickCount`';
                 break;
         }
     }
     // Filters..
     if ($_GET['keys']) {
         $_GET['keys'] = mswSafeImportString(strtolower($_GET['keys']));
         $filters[] = "LOWER(`" . DB_PREFIX . "portal`.`name`) LIKE '%" . $_GET['keys'] . "%' OR LOWER(`" . DB_PREFIX . "portal`.`email`) LIKE '%" . $_GET['keys'] . "%' OR LOWER(`" . DB_PREFIX . "portal`.`notes`) LIKE '%" . $_GET['keys'] . "%'";
     }
     if (isset($_GET['ip']) && $_GET['ip']) {
         $filters[] = "`ip` = '" . mswSafeImportString($_GET['ip']) . "'";
     }
     if (isset($_GET['from'], $_GET['to']) && $_GET['from'] && $_GET['to']) {
         $from = $MSDT->mswDatePickerFormat($_GET['from']);
         $to = $MSDT->mswDatePickerFormat($_GET['to']);
         $filters[] = "DATE(FROM_UNIXTIME(`ts`)) BETWEEN '{$from}' AND '{$to}'";
     }
     if (isset($_GET['timezone']) && $_GET['timezone']) {
         $filters[] = "`timezone` = '" . mswSafeImportString($_GET['timezone']) . "'";
     }
     if (isset($_GET['status']) && in_array($_GET['status'], array('yes', 'no'))) {
         $filters[] = "`enabled` = '{$_GET['status']}'";
     }
     if (isset($_GET['c1'], $_GET['c2']) && $_GET['c2'] > 0) {
         $_GET['c1'] = (int) $_GET['c1'];
         $_GET['c2'] = (int) $_GET['c2'];
         $filters[] = "(SELECT count(*) FROM `" . DB_PREFIX . "tickets` WHERE `" . DB_PREFIX . "portal`.`email` = `" . DB_PREFIX . "tickets`.`email` AND `spamFlag` = 'no') BETWEEN '{$_GET['c1']}' AND '{$_GET['c2']}'";
     }
     // Build search string..
     if (!empty($filters)) {
         for ($i = 0; $i < count($filters); $i++) {
             $searchParams .= ($i ? ' AND (' : 'WHERE (') . $filters[$i] . ')';
         }
     }
     $q = mysql_query("SELECT `name`,`email`,`ip`,`timezone` FROM `" . DB_PREFIX . "portal`\n        {$searchParams}\n\t\t{$orderBy}\n\t\t") or die(mswMysqlErrMsg(mysql_errno(), mysql_error(), __LINE__, __FILE__));
     if (mysql_num_rows($q) > 0) {
         while ($ACC = mysql_fetch_object($q)) {
             $csv[] = mswCleanCSV($ACC->name, $sep) . $sep . mswCleanCSV($ACC->email, $sep) . $sep . mswCleanCSV($ACC->ip, $sep) . $sep . mswCleanCSV($ACC->timezone, $sep);
         }
         // Download...
         if (!empty($csv)) {
             // Save file to server and download..
             $dl->write($file, $head . mswDefineNewline() . implode(mswDefineNewline(), $csv));
             if (file_exists($file)) {
                 $dl->dl($file, 'text/csv');
             }
         }
     }
     // If nothing found, just go back to search screen..
     header("Location: index.php?p=accountsearch");
     exit;
 }
 public function exportLogFile($dl)
 {
     global $msg_log15, $msg_log14;
     if (!is_writeable(PATH . 'export')) {
         die('<b>export</b> directory must be writeable for this operation. Check and try again..');
     }
     $file = PATH . 'export/' . str_replace('{date}', date('dmY-his'), systemSettings::ENTRY_LOG_FILENAME);
     $data = '';
     $sepr = ',';
     $from = isset($_GET['from']) && $this->datetime->mswDatePickerFormat($_GET['from']) != '0000-00-00' ? $_GET['from'] : '';
     $to = isset($_GET['to']) && $this->datetime->mswDatePickerFormat($_GET['to']) != '0000-00-00' ? $_GET['to'] : '';
     $type = isset($_GET['type']) && in_array($_GET['type'], array('user', 'acc')) ? $_GET['type'] : '';
     $keys = '';
     $where = array();
     if (isset($_GET['q'])) {
         $chop = explode(' ', $_GET['q']);
         $words = '';
         for ($i = 0; $i < count($chop); $i++) {
             $words .= ($i ? 'OR ' : 'WHERE (') . "`" . DB_PREFIX . "portal`.`name` LIKE '%" . mswSafeImportString($chop[$i]) . "%' OR `" . DB_PREFIX . "users`.`name` LIKE '%" . mswSafeImportString($chop[$i]) . "%' ";
         }
         if ($words) {
             $where[] = $words . ')';
         }
     }
     if ($type) {
         $where[] = (!empty($where) ? 'AND ' : 'WHERE ') . '`type` = \'' . $type . '\'';
     }
     if ($from && $to) {
         $where[] = (!empty($where) ? 'AND ' : 'WHERE ') . 'DATE(FROM_UNIXTIME(`' . DB_PREFIX . 'log`.`ts`)) BETWEEN \'' . $this->datetime->mswDatePickerFormat($from) . '\' AND \'' . $this->datetime->mswDatePickerFormat($to) . '\'';
     }
     $q_log = mysql_query("SELECT *,\n           `" . DB_PREFIX . "log`.`ts` AS `lts`,\n\t\t   `" . DB_PREFIX . "log`.`userID` AS `personID`,\n\t\t   `" . DB_PREFIX . "portal`.`name` AS `portalName`,\n\t\t   `" . DB_PREFIX . "log`.`ip` AS `entryLogIP`,\n\t\t   `" . DB_PREFIX . "users`.`name` AS `userName`\n\t\t   FROM `" . DB_PREFIX . "log`\n           LEFT JOIN `" . DB_PREFIX . "users`\n           ON `" . DB_PREFIX . "log`.`userID` = `" . DB_PREFIX . "users`.`id` \n\t\t   LEFT JOIN `" . DB_PREFIX . "portal`\n           ON `" . DB_PREFIX . "log`.`userID` = `" . DB_PREFIX . "portal`.`id` \n\t\t   " . (!empty($where) ? implode(mswDefineNewline(), $where) : '') . "\n           ORDER BY `" . DB_PREFIX . "log`.`id` DESC\n           ") or die(mswMysqlErrMsg(mysql_errno(), mysql_error(), __LINE__, __FILE__));
     while ($LOG = mysql_fetch_object($q_log)) {
         $data .= mswCleanCSV($LOG->type == 'acc' ? $LOG->portalName : $LOG->userName, $sepr) . $sepr . ($LOG->type == 'user' ? $msg_log15 : $msg_log14) . $sepr . mswCleanCSV($LOG->entryLogIP, $sepr) . $sepr . mswCleanCSV($this->datetime->mswDateTimeDisplay($LOG->lts, $this->settings->dateformat), $sepr) . $sepr . mswCleanCSV($this->datetime->mswDateTimeDisplay($LOG->lts, $this->settings->timeformat), $sepr) . mswDefineNewline();
     }
     // Save file to server and download..
     $dl->write($file, rtrim($data));
     if (file_exists($file)) {
         $dl->dl($file, 'text/csv');
     }
     exit;
 }
Beispiel #3
0
 public function exportTicketHistory($dl, $dt)
 {
     global $msg_viewticket113;
     $id = (int) $_GET['exportHistory'];
     $sepr = ',';
     $file = PATH . 'export/' . str_replace(array('{ticket}', '{date}'), array(mswTicketNumber($id), $dt->mswDateTimeDisplay(strtotime(date('Ymd H:i:s')), 'dmY-his')), supportTickets::TICKET_HISTORY_FILENAME);
     $data = $msg_viewticket113 . mswDefineNewline();
     $qTH = mysql_query("SELECT * FROM `" . DB_PREFIX . "tickethistory`\n           WHERE `ticketID` = '{$id}'\n           ORDER BY `ts` DESC\n           ") or die(mswMysqlErrMsg(mysql_errno(), mysql_error(), __LINE__, __FILE__));
     while ($HIS = mysql_fetch_object($qTH)) {
         $data .= mswCleanCSV($dt->mswDateTimeDisplay($HIS->ts, $this->settings->dateformat), $sepr) . $sepr . mswCleanCSV($dt->mswDateTimeDisplay($HIS->ts, $this->settings->timeformat), $sepr) . $sepr . mswCleanCSV($HIS->action, $sepr) . mswDefineNewline();
     }
     if (mysql_num_rows($qTH) > 0) {
         // Save file to server and download..
         $dl->write($file, rtrim($data));
         if (file_exists($file)) {
             $dl->dl($file, 'text/csv');
         }
     }
 }