id = $id; $this->id_question = $question['id_question']; $this->id_section = $question['id_section']; $this->status = $question['status']; $this->position = $question['position']; $this->title = $question['title']; $this->answer = $question['answer']; /*$this->versions = $question['versions'];*/ } } } public static function getQuestion($id) { if(!($q = Db::getInstance()->ExecuteS(' SELECT * FROM `'._DB_PREFIX_.'support_question` WHERE `id_question` = '.(int) $id )) || count($q) == 0) { return false; } $result = array( 'id_question' => $q[0]['id_question'], 'id_section' => $q[0]['id_section'], 'status' => $q[0]['status'], 'position' => $q[0]['position'], 'title' => array(), 'answer' => array(), ); $ql = Db::getInstance()->ExecuteS(' SELECT * FROM `'._DB_PREFIX_.'support_question_lang` WHERE `id_question` = '.(int) $id ); foreach($ql as $l) { $result['answer'][$l['id_lang']] = $l['answer']; $result['title'][$l['id_lang']] = $l['title']; } /*foreach(Db::getInstance()->ExecuteS(' SELECT `version` FROM `'._DB_PREFIX_.'support_section_site_version` WHERE `id_section` = '.(int) $id ) as $version) { $result['versions'][] = $version['version']; }*/ return $result; } public static function getQuestionsByIdSection($id) { if(!($questions = Db::getInstance()->ExecuteS(' SELECT * FROM `'._DB_PREFIX_.'support_question` WHERE `id_section` = '.(int) $id.' ORDER BY `position`' )) || count($questions) == 0) { return false; } $result = array(); foreach($questions AS $question) { $result[] = new Question($question['id_question']); } return $result; /*$result = array(); $ids = array(); foreach ($questions as $q) { $result[$q['id_question']] = array( 'id_question' => $q['id_question'], 'id_section' => $q['id_section'], 'status' => $q['status'], 'position' => $q['position'], 'title' => array(), 'answer' => array(), ); $ids[] = $q['id_question']; } $ql = Db::getInstance()->ExecuteS(' SELECT * FROM `'._DB_PREFIX_.'support_question_lang` WHERE `id_question` IN ('.implode(',', $ids).')' ); foreach($ql as $l) { $result[$l['id_question']]['answer'][$l['id_lang']] = $l['answer']; $result[$l['id_question']]['title'][$l['id_lang']] = $l['title']; }*/ return $result; } public static function getQuestionIdsByIdSection($id) { if(!($questions = Db::getInstance()->ExecuteS(' SELECT `id_question` FROM `'._DB_PREFIX_.'support_question` WHERE `id_section` = '.(int) $id )) || count($questions) == 0) { return false; } else { return $questions; } } public function save() { if($this->id !== null) { Db::getInstance()->Execute(' UPDATE `'._DB_PREFIX_.'support_question` SET `status` = '.(int) $this->status.', `id_section` = '.(int) $this->id_section.', `position` = '.(int) $this->position.' WHERE `id_question` = '.(int) $this->id.' '); Db::getInstance()->Execute('DELETE FROM `'._DB_PREFIX_.'support_question_lang` WHERE `id_question` = '.(int) $this->id); $question_i18n = array(); foreach($this->title as $k => $v) { if(!isset($question_i18n[$k])) { $question_i18n[$k] = array(); } $question_i18n[$k]['title'] = $v; } foreach($this->answer as $k => $v) { if(!isset($question_i18n[$k])) { $question_i18n[$k] = array(); } $question_i18n[$k]['answer'] = $v; } foreach($question_i18n as $lang => $values) { Db::getInstance()->Execute(' INSERT INTO `'._DB_PREFIX_.'support_question_lang` VALUES ( '.$this->id.', '.$lang.', "'.(isset($values['title'])? pSQL($values['title']): '').'", "'.(isset($values['answer'])? pSQL($values['answer'], true): '').'" ) '); } } else { $sql_position = 'SELECT MAX(position) FROM '. _DB_PREFIX_.'support_question WHERE `id_section`='.(int) $this->id_section; $position = Db::getInstance()->getValue($sql_position); Db::getInstance()->Execute(' INSERT INTO `'._DB_PREFIX_.'support_question` VALUES ( DEFAULT, '.(int) $this->id_section.', '.(int) $this->status.', '.($position+1).' ) '); $this->id = Db::getInstance()->Insert_ID(); Db::getInstance()->Execute('DELETE FROM `'._DB_PREFIX_.'support_question_lang` WHERE `id_question` = '.(int) $this->id); $question_i18n = array(); foreach($this->title as $k => $v) { if(!isset($question_i18n[$k])) { $question_i18n[$k] = array(); } $question_i18n[$k]['title'] = $v; } foreach($this->answer as $k => $v) { if(!isset($question_i18n[$k])) { $question_i18n[$k] = array(); } $question_i18n[$k]['answer'] = $v; } foreach($question_i18n as $lang => $values) { Db::getInstance()->Execute(' INSERT INTO `'._DB_PREFIX_.'support_question_lang` VALUES ( '.$this->id.', '.$lang.', "'.(isset($values['title'])? pSQL($values['title']): '').'", "'.(isset($values['answer'])? pSQL($values['answer'], true): '').'" ) '); } } } public static function deleteQuestion($id) { if($question = Question::getQuestion($id)) { Db::getInstance()->Execute('DELETE FROM `'._DB_PREFIX_.'support_question_lang` WHERE `id_question` = '.(int) $id); Db::getInstance()->Execute('DELETE FROM `'._DB_PREFIX_.'support_question` WHERE `id_question` = '.(int) $id); } } }