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

<?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,
);
}
}