shop-old/core/cs_ticket_message.class.php
2026-04-20 01:03:43 +02:00

221 lines
4.8 KiB
PHP

<?php
/*
* @version $Id: index.php 10381 2008-06-01 03:35:53Z $
* @package Carteasy
* @copyright Copyright (C) 2005 - 2011 Wlanium
* @license proprietary
* @author Thomas Bartelt
* Carteasy is a web shop system
*/
class Cs_ticket_message {
private $object_fields = array(
'ticket_id' => 'integer',
'm_from' => 'text',
'm_to' => 'text',
'cc' => 'text',
'subject' => 'text',
'message' => 'text',
'create_type' => 'integer'
);
private $base_object;
function __construct($base_object) {
$this->base_object = $base_object;
$this->db = $base_object->db;
}
public function get_all_ticket_messages($ticket_id) {
$sql = "SELECT
*
FROM
ticket_messages
WHERE
ticket_id=".$this->db->real_escape_string($ticket_id);
$result = $this->db->query($sql);
$data = array();
$z = 1;
while ($obj = $result->fetch_object()) {
$obj->message_number = $z;
$this->id = $obj->id;
$obj->attachments = $this->get_file_list();
$data['messages'][$z] = $obj;
$z++;
}
$data['last_message_number'] = $z - 1;
return $data;
}
public function get_first_message($ticket_id) {
$sql = "SELECT
*
FROM
ticket_messages
WHERE
ticket_id=".$this->db->real_escape_string($ticket_id).
" ORDER
BY id ASC
LIMIT
1";
$result = $this->db->query($sql);
while ($obj = $result->fetch_object()) {
$data = $obj;
$this->id = $obj->id;
$obj->attachments = $this->get_file_list();
}
return $data;
}
public function get_data() {
$sql = "SELECT
*
FROM
ticket_messages
WHERE
id=".$this->db->real_escape_string($this->id);
$result = $this->db->query($sql);
$obj = $result->fetch_object();
$obj->attachments = $this->get_file_list();
return $obj;
} // end get_data
public function delete() {
$sql = "DELETE FROM
ticket_messages
WHERE
id=".$this->db->real_escape_string($this->id);
$this->db->query($sql);
return;
}
public function data_filter($request) {
$data = array();
foreach ($this->object_fields as $field_name => $var_type) {
if (isset($request[$field_name])) {
if ($var_type == 'text') {
$data[$field_name] = $request[$field_name];
} else {
$data[$field_name] = (int)$request[$field_name];
}
}
}
return $data;
}
// TODO : real_escape_string this ?
public function create($data, $attachments = false) {
if ($data) {
$sql = "INSERT INTO
ticket_messages
SET ";
foreach ($data as $var_name => $value) {
$value = $this->db->real_escape_string($value);
if ($this->object_fields[$var_name] == 'integer') {
$sql .= $var_name.' = '.$value.', ';
} else {
$sql .= $var_name.' = "'.$value.'", ';
}
}
$sql .= 'create_time = current_timestamp';
$this->db->query($sql);
$this->id = $this->db->insert_id;
if ($attachments) {
foreach ($attachments as $attachment) {
$this->add_file(array (
'file_name' => $attachment->file_name,
'mime_type' => $attachment->mime_type,
'content' => $attachment->content
));
}
}
}
return;
}
// TODO : real_escape_string this ?
public function update($data) {
if ($data) {
$sql = "UPDATE
ticket_messages
SET ";
foreach ($data as $var_name => $value) {
$value = $this->db->real_escape_string($value);
if ($this->object_fields[$var_name] == 'integer') {
$sql .= $var_name.'='.$value.', ';
} else {
$sql .= $var_name.'="'.$value.'", ';
}
}
$sql = substr($sql, 0, -2);
$sql .= ' WHERE id='.$this->db->real_escape_string($this->id);
$this->db->query($sql);
}
return;
}
public function delete_by_id($id) {
$sql = "DELETE FROM
ticket_messages
WHERE
id=".$this->db->real_escape_string($id);
$rs = $this->db->query($sql);
}
public function add_file($data) {
if ($data) {
$sql = "
INSERT INTO
ticket_message_attachments
(ticket_message_id, file_name, mime_type, content) VALUES
(".$this->id.", '".$data['file_name']."', '".$data['mime_type']."','".base64_encode($data['content'])."')" ;
$this->db->query($sql);
}
return;
}
public function get_file_list() {
$sql = "SELECT * FROM ticket_message_attachments WHERE ticket_message_id=".$this->id;
$result = $this->db->query($sql);
$data = array();
while ($obj = $result->fetch_object()) {
$obj->content = base64_decode($obj->content);
$data[] = $obj;
}
return $data;
}
public function get_file($file_id) {
$sql = "SELECT * FROM ticket_message_attachments WHERE id=".$file_id;
$result = $this->db->query($sql);
$obj = $result->fetch_object();
$obj->content = base64_decode($obj->content);
return $obj;
}
public function delete_file($file_id) {
$sql = "
DELETE FROM ticket_message_attachments
WHERE id=".$this->db->real_escape_string($file_id)."
";
$result = $this->db->query($sql);
return;
}
}
?>