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; }
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; }