Example #1
0
 public function addAnswer($user_id, $question_id, $content, $date_created)
 {
     $table = Engine_Api::_()->getDbTable('answers', 'Questionanswer');
     $data = array('user_id' => $user_id, 'question_id' => $question_id, 'content' => $content, 'date_created' => $date_created);
     $table->insert($data);
     //update number answer of question
     $objQuestion = new Questionanswer_Model_Question(array());
     $objQuestion->updateNumberAnswer($question_id);
     return $this;
 }
Example #2
0
 public function postanswerAction()
 {
     $objAnswer = new Questionanswer_Model_Answer(array());
     $_user_id = $this->_helper->api()->user()->getViewer()->getIdentity();
     $question_id = $_POST['question_id'];
     $content = $_POST['mess'];
     $date_created = date('Y-m-d H:i:s');
     //$answer = $objAnswer->addAnswer($_user_id, $question_id, $content, $date_created);
     $params['user_id'] = $_user_id;
     $params['question_id'] = $question_id;
     $params['content'] = trim($content);
     $params['date_created'] = $date_created;
     $answer = Engine_Api::_()->getDbtable('answers', 'Questionanswer')->createRow();
     $answer->setFromArray($params);
     $answer->save();
     //get question detail
     $objQuestion = new Questionanswer_Model_Question(array());
     $question_detail = $objQuestion->getQuestionById($question_id);
     $objQuestion->updateNumberAnswer($question_id);
     //add notification for owner of question
     if ($answer instanceof Core_Model_Item_Abstract) {
         if (!Engine_Api::_()->core()->hasSubject()) {
             Engine_Api::_()->core()->setSubject($answer);
         }
     }
     $subject = Engine_Api::_()->core()->getSubject();
     $subjectOwner = Engine_Api::_()->getItem('user', $question_detail['user_id']);
     $viewer = Engine_Api::_()->user()->getViewer();
     if ($subjectOwner->getIdentity() != $viewer->getIdentity()) {
         $notifyApi = Engine_Api::_()->getDbtable('notifications', 'activity');
         $notifyApi->addNotification($subjectOwner, $viewer, $answer, 'answer_posted', array('label' => "question"));
     }
     $linkQuestion = $this->view->htmlLink("qa?qid=" . $question_detail['question_id'], substr($question_detail['content'], 0, 150));
     $activity = Engine_Api::_()->getDbtable('actions', 'activity');
     $action = $activity->addActivity(Engine_Api::_()->user()->getViewer(), Engine_Api::_()->user()->getViewer(), 'answer_new', null, array('body' => substr(trim($content), 0, 200), 'question' => $linkQuestion));
     if (null !== $action) {
         $activity->attachActivity($action, $answer);
     }
     echo '{"result":"success", "message":"Post message successfully!"}';
     die;
 }