public function showAction() { $commentMapper = new CommentMapper(); if ($this->getRequest()->getPost('saveComment')) { $date = new \Ilch\Date(); $commentModel = new CommentModel(); if ($this->getRequest()->getPost('fkId')) { $commentModel->setKey('article/index/show/id/' . $this->getRequest()->getParam('id') . '/id_c/' . $this->getRequest()->getPost('fkId')); $commentModel->setFKId($this->getRequest()->getPost('fkId')); } else { $commentModel->setKey('article/index/show/id/' . $this->getRequest()->getParam('id')); } $commentModel->setText($this->getRequest()->getPost('article_comment_text')); $commentModel->setDateCreated($date); $commentModel->setUserId($this->getUser()->getId()); $commentMapper->save($commentModel); } if ($this->getRequest()->isPost() & $this->getRequest()->getParam('preview') == 'true') { $this->getLayout()->getHmenu()->add($this->getTranslator()->trans('menuArticle'), array('action' => 'index'))->add($this->getTranslator()->trans('preview'), array('action' => 'index')); $title = $this->getRequest()->getPost('title'); $catId = $this->getRequest()->getPost('cats'); $content = $this->getRequest()->getPost('content'); $image = $this->getRequest()->getPost('image'); $articleModel = new ArticleModel(); $articleModel->setTitle($title); $articleModel->setCatId($catId); $articleModel->setContent($content); $articleModel->setArticleImage($image); $articleModel->setVisits(0); $this->getView()->set('article', $articleModel); } else { $articleMapper = new ArticleMapper(); $articleModel = new ArticleModel(); $categoryMapper = new CategoryMapper(); $article = $articleMapper->getArticleByIdLocale($this->getRequest()->getParam('id')); $articlesCats = $categoryMapper->getCategoryById($article->getCatId()); $comments = $commentMapper->getCommentsByKey('article/index/show/id/' . $this->getRequest()->getParam('id')); $this->getLayout()->getHmenu()->add($this->getTranslator()->trans('menuArticle'), array('action' => 'index'))->add($this->getTranslator()->trans('menuCats'), array('controller' => 'cats', 'action' => 'index'))->add($articlesCats->getName(), array('controller' => 'cats', 'action' => 'show', 'id' => $articlesCats->getId()))->add($article->getTitle(), array('action' => 'show', 'id' => $article->getId())); $articleModel->setId($article->getId()); $articleModel->setVisits($article->getVisits() + 1); $articleMapper->saveVisits($articleModel); $this->getLayout()->set('metaTitle', $article->getTitle()); $this->getLayout()->set('metaDescription', $article->getDescription()); $this->getView()->set('article', $article); $this->getView()->set('comments', $comments); } }
/** * Inserts or updates a article model in the database. * * @param ArticleModel $article */ public function save(ArticleModel $article) { if ($article->getId()) { if ($this->getArticleByIdLocale($article->getId(), $article->getLocale())) { $this->db()->update('articles')->values(array('cat_id' => $article->getCatId()))->where(array('id' => $article->getId()))->execute(); $this->db()->update('articles_content')->values(array('title' => $article->getTitle(), 'description' => $article->getDescription(), 'content' => $article->getContent(), 'perma' => $article->getPerma(), 'article_img' => $article->getArticleImage(), 'article_img_source' => $article->getArticleImageSource()))->where(array('article_id' => $article->getId(), 'locale' => $article->getLocale()))->execute(); } else { $this->db()->insert('articles_content')->values(array('article_id' => $article->getId(), 'author_id' => $article->getAuthorId(), 'description' => $article->getDescription(), 'title' => $article->getTitle(), 'content' => $article->getContent(), 'perma' => $article->getPerma(), 'locale' => $article->getLocale(), 'article_img' => $article->getArticleImage(), 'article_img_source' => $article->getArticleImageSource()))->execute(); } } else { $date = new \Ilch\Date(); $articleId = $this->db()->insert('articles')->values(array('cat_id' => $article->getCatId(), 'date_created' => $date->toDb()))->execute(); $this->db()->insert('articles_content')->values(array('article_id' => $articleId, 'author_id' => $article->getAuthorId(), 'description' => $article->getDescription(), 'title' => $article->getTitle(), 'content' => $article->getContent(), 'perma' => $article->getPerma(), 'locale' => $article->getLocale(), 'article_img' => $article->getArticleImage(), 'article_img_source' => $article->getArticleImageSource()))->execute(); } }
public function treatAction() { $articleMapper = new ArticleMapper(); $categoryMapper = new CategoryMapper(); if ($this->getRequest()->getParam('id')) { $this->getLayout()->getAdminHmenu()->add($this->getTranslator()->trans('menuArticle'), array('action' => 'index'))->add($this->getTranslator()->trans('edit'), array('action' => 'treat')); if ($this->getRequest()->getParam('locale') == '') { $locale = ''; } else { $locale = $this->getRequest()->getParam('locale'); } $this->getView()->set('article', $articleMapper->getArticleByIdLocale($this->getRequest()->getParam('id'), $locale)); } else { $this->getLayout()->getAdminHmenu()->add($this->getTranslator()->trans('menuArticle'), array('action' => 'index'))->add($this->getTranslator()->trans('add'), array('action' => 'treat')); } if ($this->getRequest()->isPost()) { $model = new ArticleModel(); if ($this->getRequest()->getParam('id')) { $model->setId($this->getRequest()->getParam('id')); } $model->setCatId($this->getRequest()->getPost('cats')); $model->setAuthorId($this->getUser()->getId()); $model->setDescription($this->getRequest()->getPost('description')); $model->setTitle($this->getRequest()->getPost('title')); $model->setContent($this->getRequest()->getPost('content')); $model->setArticleImage($this->getRequest()->getPost('image')); $model->setArticleImageSource($this->getRequest()->getPost('imageSource')); $model->setPerma($this->getRequest()->getPost('permaLink')); if ($this->getRequest()->getPost('language') != '') { $model->setLocale($this->getRequest()->getPost('language')); } else { $model->setLocale(''); } $articleMapper->save($model); $this->redirect(array('action' => 'index')); } $this->getView()->set('cats', $categoryMapper->getCategories()); $this->getView()->set('contentLanguage', $this->getConfig()->get('content_language')); $this->getView()->set('languages', $this->getTranslator()->getLocaleList()); $this->getView()->set('multilingual', (bool) $this->getConfig()->get('multilingual_acp')); }