private function validateForm()
{
if ($this->frm->isSubmitted()) {
$this->meta->setURLCallback('Backend\\Modules\\Faq\\Engine\\Model', 'getURL', array($this->record['id']));
$this->frm->cleanupFields();
// validate fields
$this->frm->getField('title')->isFilled(BL::err('QuestionIsRequired'));
$this->frm->getField('answer')->isFilled(BL::err('AnswerIsRequired'));
$this->frm->getField('category_id')->isFilled(BL::err('CategoryIsRequired'));
$this->meta->validate();
if ($this->frm->isCorrect()) {
// build item
$item['id'] = $this->id;
$item['meta_id'] = $this->meta->save(true);
$item['category_id'] = $this->frm->getField('category_id')->getValue();
$item['language'] = $this->record['language'];
$item['question'] = $this->frm->getField('title')->getValue();
$item['answer'] = $this->frm->getField('answer')->getValue(true);
$item['hidden'] = $this->frm->getField('hidden')->getValue();
// update the item
BackendFaqModel::update($item);
BackendTagsModel::saveTags($item['id'], $this->frm->getField('tags')->getValue(), $this->URL->getModule());
BackendModel::triggerEvent($this->getModule(), 'after_edit', array('item' => $item));
// edit search index
BackendSearchModel::saveIndex($this->getModule(), $item['id'], array('title' => $item['question'], 'text' => $item['answer']));
// everything is saved, so redirect to the overview
$this->redirect(BackendModel::createURLForAction('Index') . '&report=saved&var=' . rawurlencode($item['question']) . '&highlight=' . $item['id']);
}
}
}