public function execute(HTTPRequestCustom $request) { $this->get_faq_question($request); if ($this->faq_question !== null && $this->check_authorizations()) { $this->delete_question(); $code = $this->faq_question->get_id(); } else { $code = -1; } return new JSONResponse(array('code' => $code, 'questions_number' => $code > 0 ? FaqService::count() : 0)); }
private function save() { $faq_question = $this->get_faq_question(); $faq_question->set_question($this->form->get_value('question')); $faq_question->set_rewrited_question(Url::encode_rewrite($faq_question->get_question())); $faq_question->set_id_category($this->form->get_value('id_category')->get_raw_value()); $faq_question->set_answer($this->form->get_value('answer')); if ($faq_question->get_q_order() === null) { $number_questions_in_category = FaqService::count('WHERE id_category = :id_category', array('id_category' => $faq_question->get_id_category())); $faq_question->set_q_order($number_questions_in_category + 1); } if (!$this->is_contributor_member() && $this->form->get_value('approved')) { $faq_question->approve(); } else { $faq_question->unapprove(); } if ($faq_question->get_id() === null) { $id = FaqService::add($faq_question); } else { $id = $faq_question->get_id(); FaqService::update($faq_question); } $this->contribution_actions($faq_question, $id); Feed::clear_cache('faq'); FaqCache::invalidate(); }