id = $id; $this->id_reason = $reason['id_reason']; $this->id_contact = $reason['id_contact']; $this->visible = $reason['visible']; $this->contact = $reason['contact']; $this->title = $reason['title']; /*$this->versions = $reason['versions'];*/ } } } public static function getReason($id) { if(!($r = Db::getInstance()->ExecuteS(' SELECT * FROM `'._DB_PREFIX_.'support_reason` WHERE `id_reason` = '.(int) $id )) || count($r) == 0) { return false; } $result = array( 'id_reason' => $r[0]['id_reason'], 'id_contact' => $r[0]['id_contact'], 'visible' => $r[0]['visible'], 'title' => array(), ); $rl = Db::getInstance()->ExecuteS(' SELECT * FROM `'._DB_PREFIX_.'support_reason_lang` WHERE `id_reason` = '.(int) $id ); foreach($rl as $l) { $result['title'][$l['id_lang']] = $l['title']; } $cl = Db::getInstance()->ExecuteS(' SELECT cl.`name`, cl.`id_lang` FROM `'._DB_PREFIX_.'contact_lang` cl LEFT JOIN `'._DB_PREFIX_.'support_reason` sr ON sr.`id_contact` = cl.`id_contact` WHERE sr.`id_reason` = '.(int) $id ); foreach($cl as $l) { $result['contact'][$l['id_lang']] = $l['name']; } /*foreach(Db::getInstance()->ExecuteS(' SELECT `version` FROM `'._DB_PREFIX_.'support_reason_site_version` WHERE `id_reason` = '.(int) $id ) as $version) { $result['versions'][] = $version['version']; }*/ return $result; } public static function getReasons($where = array(), $lite=false, $order_by='`id_reason` ASC', $limit=null) { global $cookie; $result = array(); $query = ' SELECT sr.`id_reason` FROM `'._DB_PREFIX_.'support_reason` sr '; !empty($where)? $query .= 'WHERE '.implode(' AND ', $where):$query; $query .= ' ORDER BY '.$order_by; if($limit !== null) { $query .= ' LIMIT '.$limit; } if($reasons = Db::getInstance()->ExecuteS($query)) { if ($lite) { foreach($reasons AS $reason) { $result[] = $reason['id_reason']; } } else { foreach($reasons AS $reason) { $result[] = new Reason($reason['id_reason']); } } } return $result; } public function save() { if($this->id !== null) { Db::getInstance()->Execute(' UPDATE `'._DB_PREFIX_.'support_reason` SET `id_contact` = '.(int) $this->id_contact.' `visible` = '.(int) $this->visible.' WHERE `id_reason` = '.(int) $this->id.' '); Db::getInstance()->Execute('DELETE FROM `'._DB_PREFIX_.'support_reason_lang` WHERE `id_reason` = '.(int) $this->id); $reason_i18n = array(); foreach($this->title as $k => $v) { if(!isset($reason_i18n[$k])) { $reason_i18n[$k] = array(); } $reason_i18n[$k]['title'] = $v; } foreach($reason_i18n as $lang => $values) { Db::getInstance()->Execute(' INSERT INTO `'._DB_PREFIX_.'support_reason_lang` VALUES ( '.$this->id.', '.$lang.', "'.(isset($values['title'])? pSQL($values['title']): '').'" ) '); } } else { Db::getInstance()->Execute(' INSERT INTO `'._DB_PREFIX_.'support_reason` VALUES ( DEFAULT, '.(int) $this->id_contact.', '.(int) $this->visible.' ) '); $this->id = Db::getInstance()->Insert_ID(); Db::getInstance()->Execute('DELETE FROM `'._DB_PREFIX_.'support_reason_lang` WHERE `id_reason` = '.(int) $this->id); $reason_i18n = array(); foreach($this->title as $k => $v) { if(!isset($reason_i18n[$k])) { $reason_i18n[$k] = array(); } $reason_i18n[$k]['title'] = $v; } foreach($reason_i18n as $lang => $values) { Db::getInstance()->Execute(' INSERT INTO `'._DB_PREFIX_.'support_reason_lang` VALUES ( '.$this->id.', '.$lang.', "'.(isset($values['title'])? pSQL($values['title']): '').'" ) '); } } } public static function deleteReason($id) { if($reason = Reason::getReason($id)) { Db::getInstance()->Execute('DELETE FROM `'._DB_PREFIX_.'support_reason_lang` WHERE `id_reason` = '.(int) $id); Db::getInstance()->Execute('DELETE FROM `'._DB_PREFIX_.'support_reason` WHERE `id_reason` = '.(int) $id); } } public function insertReasonCustomerThread($id_thread) { if(!($result = Db::getInstance()->ExecuteS(' SELECT * FROM `'._DB_PREFIX_.'support_reason_customerthread` WHERE `id_customer_thread` = '.(int) $id_thread )) || count($result) == 0) { $insert = Db::getInstance()->Execute(' INSERT INTO `'._DB_PREFIX_.'support_reason_customerthread` VALUES ( '.$this->id.', '.(int) $id_thread.' ) '); } } }