autosave_transcripts()) { if ($this->result = $GLOBALS['db']->query('SELECT * FROM `sessions` WHERE `chatid`="'.$chatid.'"')) { if ($this->result2 = $GLOBALS['db']->query('SELECT * FROM `traffic` WHERE `id`="'.$chatid.'"')) { $GLOBALS['db']->query('INSERT INTO `transcripts` (`timestamp`, `chatid`, `operatorid`, `departmentid`, `guest`, `hostname`) VALUES (UNIX_TIMESTAMP(), "'.$chatid.'", "'.$GLOBALS['operator']->id().'", "'.$this->result[0]['departmentid'].'", "'.addslashes($GLOBALS['chat']->guestname($chatid)).'", "'.$this->result2[0]['hostname'].'")'); } } } } function insert($chatid, $message, $admin) { if ($GLOBALS['operator']->autosave_transcripts($_SESSION['hcl_'.$chatid]['operatorid'])) { if ($this->result = $GLOBALS['db']->query('SELECT * FROM `transcripts` WHERE `chatid`="'.$chatid.'" ORDER BY `id` DESC LIMIT 1')) { $this->timestamp = gmdate('G:i:s', time() + (3600 * $GLOBALS['conf']['offset'])); if ($admin == 'true') { $this->text = html_to_char(rawurldecode($message)).' '; $this->text = preg_replace("/%%user%%/i", $_SESSION['hcl_'.$chatid]['guest'], $this->text); $this->text = preg_replace("/url:(.*?) /i", "\\1 ", $this->text); $this->text = preg_replace("/image:(.*?) /i", "\"image\" ", $this->text); $this->text = preg_replace("/email:(.*?) /i", "\\1 ", $this->text); $this->text = preg_replace("/push:(.*?) /i", "Pushed Page: \\1 ", $this->text); $this->text = substr($this->text, 0, -1); $this->text = '('.$this->timestamp.') '.$_SESSION['hcl_'.$chatid]['operator'].': '.rawurldecode($this->text).'
'; //$this->text = '('.$this->timestamp.') '.$_SESSION['hcl_'.$chatid]['operator'].': '.char_to_html($this->text).'
'; } else { $this->text = '('.$this->timestamp.') '.$_SESSION['hcl_'.$chatid]['guest'].': '.rawurldecode($message).'
'; } $this->chat = rawurldecode($this->result[0]['transcript']).$this->text; $this->chat = rawurlencode($this->chat); $GLOBALS['db']->query('UPDATE `transcripts` SET `transcript`="'.$this->chat.'", `timestamp`=UNIX_TIMESTAMP() WHERE `id`="'.$this->result[0]['id'].'"'); } } } function build($chatid) { $this->chat = ''; $this->result = $GLOBALS['db']->query('SELECT * FROM `traffic` WHERE `id`="'.$chatid.'"'); $this->result2 = $GLOBALS['db']->query('SELECT * FROM `chat` WHERE `chatid`="'.$chatid.'" ORDER BY `timestamp` ASC'); foreach ($this->result2 as $key => $val) { $this->timestamp = gmdate('G:i:s', $this->result2[$key]['timestamp'] + (3600 * $GLOBALS['conf']['offset'])); if ($this->result2[$key]['x'] == 'o') { $this->text = html_to_char(rawurldecode($this->result2[$key]['message'])).' '; $this->text = preg_replace("/%%user%%/i", $_SESSION['hcl_'.$chatid]['guest'], $this->text); $this->text = preg_replace("/url:(.*?) /i", "\\1 ", $this->text); $this->text = preg_replace("/image:(.*?) /i", "\"image\" ", $this->text); $this->text = preg_replace("/email:(.*?) /i", "\\1 ", $this->text); $this->text = preg_replace("/push:(.*?) /i", "Pushed Page: \\1 ", $this->text); $this->text = substr($this->text, 0, -1); $this->text = '('.$this->timestamp.') '.$_SESSION['hcl_'.$chatid]['operator'].': '.char_to_html($this->text).'
'; } else { $this->text = '('.$this->timestamp.') '.$_SESSION['hcl_'.$chatid]['guest'].': '.rawurldecode($this->result2[$key]['message']).'
'; } $this->chat = $this->chat.$this->text; } $this->chat = rawurlencode($this->chat); $GLOBALS['db']->query('INSERT INTO `transcripts` (`timestamp`, `chatid`, `operatorid`, `departmentid`, `guest`, `hostname`, `transcript`) VALUES (UNIX_TIMESTAMP(), "'.$chatid.'", "'.$GLOBALS['operator']->id().'", "'.$_SESSION['hcl_'.$chatid]['departmentid'].'", "'.$_SESSION['hcl_'.$chatid]['guest'].'", "'.$this->result[0]['hostname'].'", "'.$this->chat.'")'); } function get($chatid = '', $id = '', $admin = '') { if ($chatid == '' && $id == '') { $this->transcripts = array(); if ($GLOBALS['auth']->admin() && $admin == 'admin') { if ($this->result = $GLOBALS['db']->query('SELECT * FROM `departments` WHERE 1')) { foreach ($this->result as $key => $val) { if ($this->result2 = $GLOBALS['db']->query('SELECT * FROM `transcripts` WHERE `departmentid`="'.$this->result[$key]['id'].'" ORDER BY `timestamp` DESC')) { foreach ($this->result2 as $key2 => $val2) { $this->result2[$key2]['time'] = gmdate('G:i:s D jS F Y', $this->result2[$key2]['timestamp'] + (3600 * $GLOBALS['conf']['offset'])); } $this->transcripts = array_merge($this->transcripts, array(array('name' => $GLOBALS['department']->name($this->result[$key]['id']), 'transcript' => $this->result2))); } } } } else { if ($this->result = $GLOBALS['db']->query('SELECT * FROM `assigns` WHERE `operatorid`="'.$GLOBALS['operator']->id().'"')) { foreach ($this->result as $key => $val) { if ($this->result2 = $GLOBALS['db']->query('SELECT * FROM `transcripts` WHERE `departmentid`="'.$this->result[$key]['departmentid'].'" AND `operatorid`="'.$GLOBALS['operator']->id().'" ORDER BY `timestamp` DESC')) { foreach ($this->result2 as $key2 => $val2) { $this->result2[$key2]['time'] = gmdate('G:i:s D jS F Y', $this->result2[$key2]['timestamp'] + (3600 * $GLOBALS['conf']['offset'])); } $this->transcripts = array_merge($this->transcripts, array(array('name' => $GLOBALS['department']->name($this->result[$key]['departmentid']), 'transcript' => $this->result2))); } } } } return $this->transcripts; } elseif ($id !== '') { $this->transcripts = array(); if ($this->result = $GLOBALS['db']->query('SELECT * FROM `transcripts` WHERE `id`="'.$id.'"')) { if ($GLOBALS['auth']->admin() && $admin == 'admin') { $this->transcripts['id'] = $this->result[0]['id']; $this->transcripts['nick'] = $this->result[0]['guest']; $this->transcripts['operator'] = $GLOBALS['operator']->name($this->result[0]['operatorid']); $this->transcripts['department'] = $GLOBALS['department']->name($this->result[0]['departmentid']); $this->transcripts['email'] = $GLOBALS['department']->email($this->result[0]['departmentid']); $this->transcripts['time'] = gmdate('G:i:s D jS F Y', $this->result[0]['timestamp'] + (3600 * $GLOBALS['conf']['offset'])); $this->transcripts['chat'] = rawurldecode($this->result[0]['transcript']); return $this->transcripts; } elseif ($this->result2 = $GLOBALS['db']->query('SELECT * FROM `assigns` WHERE `operatorid`="'.$GLOBALS['operator']->id().'"')) { foreach ($this->result2 as $key => $val) { if ($this->result2[$key]['departmentid'] == $this->result[0]['departmentid']) { $this->transcripts['id'] = $this->result[0]['id']; $this->transcripts['nick'] = $this->result[0]['guest']; $this->transcripts['operator'] = $GLOBALS['operator']->name($this->result[0]['operatorid']); $this->transcripts['department'] = $GLOBALS['department']->name($this->result[0]['departmentid']); $this->transcripts['email'] = $GLOBALS['department']->email($this->result[0]['departmentid']); $this->transcripts['time'] = gmdate('G:i:s D jS F Y', $this->result[0]['timestamp'] + (3600 * $GLOBALS['conf']['offset'])); $this->transcripts['chat'] = rawurldecode($this->result[0]['transcript']); return $this->transcripts; } } } } else { return false; } } else { $this->chat = ''; $this->result = $GLOBALS['db']->query('SELECT * FROM `traffic` WHERE `id`="'.$chatid.'"'); if ($this->result2 = $GLOBALS['db']->query('SELECT * FROM `chat` WHERE `chatid`="'.$chatid.'" ORDER BY `timestamp` ASC')) { foreach ($this->result2 as $key => $val) { $this->timestamp = gmdate('G:i:s', $this->result2[$key]['timestamp'] + (3600 * $GLOBALS['conf']['offset'])); if ($this->result2[$key]['x'] == 'o') { $this->text = html_to_char(rawurldecode($this->result2[$key]['message'])).' '; $this->text = preg_replace("/%%user%%/i", $_SESSION['hcl_'.$chatid]['guest'], $this->text); $this->text = preg_replace("/url:(.*?) /i", "\\1 ", $this->text); $this->text = preg_replace("/image:(.*?) /i", "\"image\" ", $this->text); $this->text = preg_replace("/email:(.*?) /i", "\\1 ", $this->text); $this->text = preg_replace("/push:(.*?) /i", "Pushed Page: \\1 ", $this->text); $this->text = substr($this->text, 0, -1); $this->text = '('.$this->timestamp.') '.$_SESSION['hcl_'.$chatid]['operator'].': '.char_to_html($this->text).'
'; } else { $this->text = '('.$this->timestamp.') '.$_SESSION['hcl_'.$chatid]['guest'].': '.rawurldecode($this->result2[$key]['message']).'
'; } $this->chat = $this->chat.$this->text; } return $this->chat; } else { return 'Error'; } } } } ?>