public function treatAction() { $categoryMapper = new CategoryMapper(); $faqMapper = new FaqMapper(); if ($this->getRequest()->getParam('id')) { $this->getLayout()->getAdminHmenu()->add($this->getTranslator()->trans('menuFaqs'), array('action' => 'index'))->add($this->getTranslator()->trans('edit'), array('action' => 'treat')); $this->getView()->set('faq', $faqMapper->getFaqById($this->getRequest()->getParam('id'))); } else { $this->getLayout()->getAdminHmenu()->add($this->getTranslator()->trans('menuFaqs'), array('action' => 'index'))->add($this->getTranslator()->trans('add'), array('action' => 'treat')); } if ($this->getRequest()->isPost()) { $model = new FaqModel(); if ($this->getRequest()->getParam('id')) { $model->setId($this->getRequest()->getParam('id')); } $question = $this->getRequest()->getPost('question'); $answer = $this->getRequest()->getPost('answer'); if (empty($question)) { $this->addMessage('missingQuestion', 'danger'); } elseif (empty($answer)) { $this->addMessage('missingAnswer', 'danger'); } else { $model->setQuestion($question); $model->setAnswer($answer); $model->setCatId($this->getRequest()->getPost('catId')); $faqMapper->save($model); $this->addMessage('saveSuccess'); $this->redirect(array('action' => 'index')); } } $this->getView()->set('cats', $categoryMapper->getCategories()); }
/** * Inserts or updates faq model. * * @param FaqModel $faq */ public function save(FaqModel $faq) { $fields = array('cat_id' => $faq->getCatId(), 'question' => $faq->getQuestion(), 'answer' => $faq->getAnswer()); if ($faq->getId()) { $this->db()->update('faqs')->values($fields)->where(array('id' => $faq->getId()))->execute(); } else { $this->db()->insert('faqs')->values($fields)->execute(); } }