/** * Action - tags * add/delete tags * * Access to the action is possible in the following paths: * - /blogmanager/tags * * @return void */ public function tagsAction() { $json = array(); //----------------------- // Получим обьект записи $request = $this->getRequest(); $post_id = (int) $request->getPost('id'); $post = new Default_Model_DbTable_BlogPost($this->db); // Если конкретной записи нет, то перейдем к странице по умолчанию if (!$post->loadForUser($this->_identity->user_id, $post_id)) { $this->_redirect('/blogmanager'); } $tag = $request->getPost('tag'); try { if ($request->getPost('add')) { $addedTags = $post->addTags($tag); if (count($addedTags) == 0) { throw new Exception("Значение добавляемой метки уже существует"); } if ($this->_isAjaxRequest) { // Создадим обьект шаблона $templater = Default_Plugin_SysBox::createViewSmarty(); //Установим параметры шаблона $templater->tags = $addedTags; // Получим результат шаблона $html = $templater->render('blogmanager/lib/download-tags.tpl'); $json = array('result' => $this->Translate('Метка добавлена к записи блога'), 'tag' => $addedTags[0]['tag'], 'html' => $html); } else { $this->_flashMessenger->addMessage($this->Translate('Метка добавлена к записи блога')); } } else { if ($request->getPost('delete')) { $post->deleteTags($tag); if ($this->_isAjaxRequest) { $json = array('result' => $this->Translate('Метка удалена из записи блога'), 'tag' => $tag); } else { $this->_flashMessenger->addMessage($this->Translate('Метка удалена из записи блога')); } } } } catch (Exception $e) { if ($this->_isAjaxRequest) { $json = array('class_message' => 'warning', 'messages' => array('<em>' . $this->Translate('Ошибка при добавлении / удалении метки в блог') . '</em>', Default_Plugin_SysBox::getMessageError($e))); } else { $this->_flashMessenger->addMessage($this->Translate('Ошибка при добавлении / удалении метки в блог')); } } if ($this->_isAjaxRequest) { $this->sendJson($json); } else { $this->_redirect('/blogmanager/preview' . '?id=' . $post->getId()); } }