public function indexAction() { $objQuestion = new Questionanswer_Model_Question(array()); $objAnswer = new Questionanswer_Model_Answer(array()); $page = $this->_getParam('page'); if (!is_numeric($page)) { $page = 1; } $question_id = $this->_getParam('qid'); if (!is_numeric($question_id)) { $question_id = 0; } $questions_list = array(); $question_array = $objQuestion->getQuestions($question_id, 0, 1, '', 0, 0); if (count($question_array) > 0) { $i = 0; foreach ($question_array as $question_info) { $qsuser = null; $table = Engine_Api::_()->getDbtable('users', 'user'); $select = $table->select()->where('user_id = ?', $question_info['user_id']); $qsuser = $table->fetchRow($select); $question_info['user_photo'] = $this->view->htmlLink($qsuser, $this->view->itemPhoto($qsuser, 'thumb.icon', $qsuser->getTitle(), array('class' => 'qa_photo', 'style' => 'float:left')), array('class' => 'f1')); $question_info['user_link'] = $this->view->htmlLink($qsuser, $qsuser->getTitle()); //get answer of question $answers_array = $objAnswer->getAnswers($question_info['question_id'], 0, 0); $answers_list = array(); foreach ($answers_array as $answer_info) { $auser = null; $table = Engine_Api::_()->getDbtable('users', 'user'); $select = $table->select()->where('user_id = ?', $answer_info['user_id']); $auser = $table->fetchRow($select); $answer_info['user_photo'] = $this->view->htmlLink($auser, $this->view->itemPhoto($auser, 'thumb.icon', $auser->getTitle(), array('class' => 'qa_photo', 'style' => 'float:left')), array('class' => 'f1')); $answer_info['user_link'] = $this->view->htmlLink($auser, $auser->getTitle()); $answers_list[] = $answer_info; } $questions_list[$i]['answers_list'] = $answers_list; $questions_list[$i]['question'] = $question_info; $i++; } } // Make paginator $this->view->paginator = $paginator = Zend_Paginator::factory($questions_list); $this->view->paginator = $paginator->setCurrentPageNumber($page); }
public function listAction() { //get object $objQuestion = new Questionanswer_Model_Question(array()); $objQuestionVote = new Questionanswer_Model_Questionvotes(array()); $objAnswer = new Questionanswer_Model_Answer(array()); $_user_id = $this->_helper->api()->user()->getViewer()->getIdentity(); if (!$_user_id) { $_user_id = 0; } //get user id $user_id = $_POST['user_id']; $_category = $_POST['category']; $_page = $_POST['page']; $_search_query = ""; $_search = $_POST['search']; $_question_id = $_POST['qid']; // SEARCH QUESTION if (!empty($_search)) { //$_search = htmlentities(stripslashes($_search)); $_search_arr = explode(" ", $_search); $_searchs = array(); foreach ($_search_arr as $item) { if ($item != "") { $_searchs[] = $item; } } $_search_query = implode("%", $_searchs); $_search_query = "%" . $_search_query . "%"; $_search_query = addslashes($_search_query); } if ($_page <= 0) { $_page = 1; } //get question $questions_per_page = 5; $total_questions = $objQuestion->countQuestion($_question_id, $user_id, $_category, $_search_query); $page_vars = make_page($total_questions, $questions_per_page, $_page); $question_array = $objQuestion->getQuestions($_question_id, $user_id, $_category, $_search_query, $questions_per_page, $page_vars[0]); if (count($question_array) > 0) { $questions_list = array(); $i = 0; foreach ($question_array as $question_info) { //get user picture $qsuser = null; $table = Engine_Api::_()->getDbtable('users', 'user'); $select = $table->select()->where('user_id = ?', $question_info['user_id']); $qsuser = $table->fetchRow($select); $question_info['user_photo'] = $this->view->htmlLink($qsuser, $this->view->itemPhoto($qsuser, 'thumb.icon', $qsuser->getTitle(), array('class' => 'qa_photo', 'style' => 'float:left')), array('class' => 'f1')); //check user voted $is_vote = $objQuestionVote->getQuestionVotesByUserIdAndQuestionId($_user_id, $question_info['question_id']); if ($_user_id && $_user_id != $question_info['user_id'] && $is_vote == 0) { $is_vote = "1"; } else { $is_vote = "0"; } $question_info['is_allowed'] = $is_vote; //get answer of question $answers_array = $objAnswer->getAnswers($question_info['question_id'], 0, 0); $answers_list = array(); foreach ($answers_array as $answer_info) { $auser = null; $table = Engine_Api::_()->getDbtable('users', 'user'); $select = $table->select()->where('user_id = ?', $answer_info['user_id']); $auser = $table->fetchRow($select); $answer_info['user_photo'] = $this->view->htmlLink($auser, $this->view->itemPhoto($auser, 'thumb.icon', $auser->getTitle(), array('class' => 'qa_photo', 'style' => 'float:left')), array('class' => 'f1')); $answers_list[] = $answer_info; } $questions_list[$i]['answers_list'] = $answers_list; $questions_list[$i]['question'] = $question_info; $i++; } } if ($total_questions == 0) { echo '{"result":"norecord", "message":"No data found!"}'; die; } else { $page_info = array("p" => $page_vars[1], "maxpage" => $page_vars[2], "p_start" => $page_vars[0] + 1, "p_end" => $page_vars[0] + $total_questions, "total_records" => $total_questions); echo json_encode(array("result" => $total_questions, "page_info" => $page_info, "threads_info" => $questions_list)); die; } }