You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
306 lines
8.6 KiB
306 lines
8.6 KiB
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
|
|
|
|
class Frontoffice_faq_model extends CI_Model {
|
|
|
|
|
|
public function __construct() {
|
|
parent::__construct();
|
|
}
|
|
|
|
|
|
public function display_faq( $id ) {
|
|
$sql = "";
|
|
|
|
if ( isset( $id ) ) {
|
|
$sql = "WHERE CONCAT(ques.question_id,' ', reps.reply_id) LIKE '%" . $id . "%'";
|
|
}
|
|
|
|
$query = "SELECT subj.subject, subj.subject_id, ques.question, ques.question_id, reps.reply, reps.reply_id, link.link
|
|
FROM frontoffice_faq_subject subj
|
|
LEFT JOIN frontoffice_faq_questions ques
|
|
ON subj.subject_id = ques.subject_id
|
|
LEFT JOIN frontoffice_faq_replies reps
|
|
ON ques.question_id = reps.question_id
|
|
LEFT JOIN frontoffice_faq_link link
|
|
ON reps.reply_id = link.reply_id
|
|
$sql ";
|
|
|
|
|
|
$result = $this->db->query( $query );
|
|
|
|
return $result->result();
|
|
}
|
|
|
|
public function display_search_faq($id) {
|
|
$sql = "";
|
|
|
|
if ( isset( $id ) ) {
|
|
$sql = "WHERE CONCAT(ques.question) LIKE \"%" . addslashes($id) . "%\" ";
|
|
}
|
|
$result = $this->db->query( "SELECT subj.subject, subj.subject_id, ques.question, ques.question_id, reps.reply, reps.reply_id, link.link
|
|
FROM frontoffice_faq_subject subj
|
|
LEFT JOIN frontoffice_faq_questions ques
|
|
ON subj.subject_id = ques.subject_id
|
|
LEFT JOIN frontoffice_faq_replies reps
|
|
ON ques.question_id = reps.question_id
|
|
LEFT JOIN frontoffice_faq_link link
|
|
ON reps.reply_id = link.reply_id $sql" );
|
|
|
|
if ( $result->num_rows() > 0 ) {
|
|
$arr = [];
|
|
foreach ( $result->result_array() as $key => $value ) {
|
|
array_push( $arr,
|
|
array(
|
|
"question" => $value['question'],
|
|
"q_id"=>$value['question_id'],
|
|
"reply_id" =>$value['reply_id'],
|
|
"subject_id"=>$value['subject_id']
|
|
//"template_name" => $value['email_tpl_name']
|
|
)
|
|
);
|
|
}
|
|
|
|
return $arr;
|
|
}else{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
public function displaysearchfaq($id)
|
|
{
|
|
$sql = addslashes($id);
|
|
|
|
$result = $this->db->query( "SELECT subj.subject, subj.subject_id, ffq.question, ffqk.question_id, reps.reply, reps.reply_id, link.link FROM `frontoffice_faq_question_keywords` ffqk JOIN frontoffice_faq_keywords ffk JOIN frontoffice_faq_questions ffq JOIN frontoffice_faq_replies reps JOIN frontoffice_faq_link link JOIN frontoffice_faq_subject subj WHERE ffqk.keyword_id = ffk.keyword_id AND ffq.question_id=ffqk.question_id AND ffk.keyword LIKE ? AND reps.reply_id = ffqk.question_id AND subj.subject_id = ffq.subject_id GROUP BY ffqk.question_id", array($sql));
|
|
|
|
$arr = [];
|
|
if ( $result->num_rows() > 0 ) {
|
|
foreach ( $result->result_array() as $key => $value ) {
|
|
array_push( $arr,
|
|
[
|
|
"question" => $value['question'],
|
|
"q_id" => $value['question_id'],
|
|
"reply_id" => $value['reply_id'],
|
|
"reply" => $value['reply'],
|
|
"subject_id" => $value['subject_id'],
|
|
//"template_name" => $value['email_tpl_name']
|
|
"result" => "success"
|
|
]
|
|
);
|
|
}
|
|
}
|
|
return $arr;
|
|
}
|
|
|
|
public function compares($keyword)
|
|
{
|
|
$result = $this->db->query("SELECT subj.subject, subj.subject_id, ffq.question, ffqk.question_id, reps.reply, reps.reply_id, link.link FROM `frontoffice_faq_question_keywords` ffqk JOIN frontoffice_faq_keywords ffk JOIN frontoffice_faq_questions ffq JOIN frontoffice_faq_replies reps JOIN frontoffice_faq_link link JOIN frontoffice_faq_subject subj WHERE ffqk.keyword_id = ffk.keyword_id AND ffq.question_id=ffqk.question_id AND ffk.keyword = ? AND reps.reply_id = link.reply_id AND subj.subject_id = ffq.subject_id GROUP BY ffqk.question_id", array($keyword));
|
|
|
|
if ( $result->num_rows() > 0 ) {
|
|
$arr = [];
|
|
foreach ( $result->result_array() as $key => $value ) {
|
|
array_push( $arr,
|
|
array(
|
|
"question" => $value['question'],
|
|
"link"=>$value['link'],
|
|
"q_id"=>$value['question_id'],
|
|
"reply_id" =>$value['reply_id'],
|
|
"reply" =>$value['reply'],
|
|
"subject_id"=>$value['subject_id']
|
|
)
|
|
);
|
|
}
|
|
return $arr;
|
|
}
|
|
}
|
|
|
|
public function suggestions()
|
|
{
|
|
$result = $this->db->query( "SELECT subj.subject, subj.subject_id, ques.question, ques.question_id, reps.reply, reps.reply_id, link.link
|
|
FROM frontoffice_faq_subject subj
|
|
LEFT JOIN frontoffice_faq_questions ques
|
|
ON subj.subject_id = ques.subject_id
|
|
LEFT JOIN frontoffice_faq_replies reps
|
|
ON ques.question_id = reps.question_id
|
|
LEFT JOIN frontoffice_faq_link link
|
|
ON reps.reply_id = link.reply_id WHERE ques.question IS NOT NULL" );
|
|
|
|
if ( $result->num_rows() > 0 ) {
|
|
$arr = [];
|
|
foreach ( $result->result_array() as $key => $value ) {
|
|
array_push( $arr,
|
|
array(
|
|
"question" => $value['question'],
|
|
"q_id"=>$value['question_id'],
|
|
"reply_id" =>$value['reply_id'],
|
|
"subject_id"=>$value['subject_id']
|
|
//"template_name" => $value['email_tpl_name']
|
|
)
|
|
);
|
|
}
|
|
|
|
return $arr;
|
|
}
|
|
}
|
|
|
|
public function list_faq_cat()
|
|
{
|
|
$result = $this->db->query( "SELECT * FROM frontoffice_faq_subject
|
|
ORDER BY FIELD(subject_id, 1, 2, 3, 6, 4, 5)" );
|
|
|
|
if ( $result->num_rows() > 0 ) {
|
|
return $result->result();
|
|
}
|
|
}
|
|
|
|
public function addQuestion( $q, $s, $r, $user_id)
|
|
{
|
|
|
|
$data1 = array(
|
|
'subject_id' => $s,
|
|
'question' => $q,
|
|
'author' => $user_id,
|
|
'status' => 1,
|
|
'date_time' => date('Y-m-d H:i:s')
|
|
);
|
|
$this->db->insert('frontoffice_faq_questions', $data1 );
|
|
$q_id = $this->db->insert_id();
|
|
|
|
$data2 = array(
|
|
'question_id' => $q_id,
|
|
'reply' => $r,
|
|
'author' => $user_id,
|
|
'status' => 1,
|
|
'date_time' => date('Y-m-d H:i:s')
|
|
);
|
|
|
|
$this->db->insert('frontoffice_faq_replies', $data2 );
|
|
|
|
if ($this->db->affected_rows()>0){
|
|
return true;
|
|
}else{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
public function listfaqquestions()
|
|
{
|
|
$qry = $this->db->query( "SELECT * FROM frontoffice_faq_questions ffq JOIN frontoffice_faq_replies ffr WHERE ffq.question_id=ffr.question_id " );
|
|
if ( $qry->num_rows() > 0 ) {
|
|
return $qry->result();
|
|
}
|
|
}
|
|
|
|
public function display_catQ($id)
|
|
{
|
|
|
|
$qry = $this->db->query( "SELECT * FROM frontoffice_faq_questions ffq JOIN frontoffice_faq_replies ffr WHERE ffq.question_id=ffr.question_id AND ffq.subject_id=?", array($id) );
|
|
if ( $qry->num_rows() > 0 ) {
|
|
return $qry->result();
|
|
}
|
|
}
|
|
|
|
public function display_reply($qid,$id)
|
|
{
|
|
$questionID = $qid;
|
|
$Id = $id;
|
|
|
|
$qry = $this->db->query("SELECT * FROM frontoffice_faq_questions ffq JOIN frontoffice_faq_replies ffr JOIN frontoffice_faq_subject ffs WHERE ffq.question_id=? AND ffr.reply_id=? AND ffs.subject_id = ffq.subject_id", array($questionID,$Id));
|
|
if ( $qry->num_rows() > 0 ) {
|
|
return $qry->result();
|
|
}
|
|
}
|
|
|
|
public function natureofbusiness()
|
|
{
|
|
$qry = $this->db->query("SELECT * FROM contact_nature_of_business");
|
|
if ( $qry->num_rows() > 0 ) {
|
|
return $qry->result();
|
|
}
|
|
}
|
|
|
|
public function getQuestion($q)
|
|
{
|
|
$qry = $this->db->query("SELECT * FROM frontoffice_faq_questions ffq JOIN frontoffice_faq_replies ffr WHERE ffq.question_id=ffr.question_id AND ffq.question_id= ?",array($q));
|
|
if ( $qry->num_rows() > 0 ) {
|
|
return $qry->row();
|
|
}else{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
public function deleteQuestion($q)
|
|
{
|
|
$qry = $this->db->query('DELETE FROM frontoffice_faq_questions WHERE question_id= ?', array($q));
|
|
$qry1 = $this->db->query('DELETE FROM frontoffice_faq_replies WHERE question_id= ?', array($q));
|
|
if ($this->db->affected_rows()) {
|
|
return true;
|
|
}else{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
public function editQuestion($qid, $q, $s, $a)
|
|
{
|
|
$questionId = $qid;
|
|
$subjectId = $s;
|
|
$question = $q;
|
|
$reply = $a;
|
|
|
|
$data = array(
|
|
'subject_id' => $subjectId,
|
|
'question' => $question,
|
|
);
|
|
|
|
$data1 = array(
|
|
'reply' => $reply,
|
|
);
|
|
|
|
$this->db->where('question_id',$questionId);
|
|
$this->db->update('frontoffice_faq_questions', $data);
|
|
$questionUpdated=$this->db->affected_rows();
|
|
|
|
$this->db->where('question_id',$questionId);
|
|
$this->db->update('frontoffice_faq_replies', $data1);
|
|
$replyUpdated=$this->db->affected_rows();
|
|
|
|
if ($questionUpdated||$replyUpdated) {
|
|
return true;
|
|
}else{
|
|
return false;
|
|
}
|
|
|
|
}
|
|
|
|
public function helpfulYes( $q,$a )
|
|
{
|
|
$this->db->insert('frontoffice_faq_helpful_counter', $this->answerHelpful($q,$a));
|
|
$q_id = $this->db->insert_id();
|
|
|
|
if ($this->db->affected_rows()>0){
|
|
return true;
|
|
}else{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
public function helpfulNo( $q,$a )
|
|
{
|
|
$this->db->insert('frontoffice_faq_helpful_counter', $this->answerHelpful($q,$a));
|
|
$q_id = $this->db->insert_id();
|
|
if ($this->db->affected_rows()>0){
|
|
return true;
|
|
}else{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
private function answerHelpful($questionId, $status) : array
|
|
{
|
|
return array(
|
|
'question_id' => $questionId,
|
|
'faq_helpful_status'=> $status,
|
|
);
|
|
}
|
|
|
|
|
|
}
|
|
|