Пример #1
0
 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);
 }
Пример #2
0
 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;
     }
 }