public function treatAction() { if ($this->getRequest()->getParam('id')) { $this->getLayout()->getAdminHmenu()->add($this->getTranslator()->trans('menuSite'), array('action' => 'index'))->add($this->getTranslator()->trans('editPage'), array('action' => 'treat', 'id' => $this->getRequest()->getParam('id'))); } else { $this->getLayout()->getAdminHmenu()->add($this->getTranslator()->trans('menuSite'), array('action' => 'index'))->add($this->getTranslator()->trans('menuActionNewSite'), array('action' => 'treat')); } $this->getView()->set('contentLanguage', $this->getConfig()->get('content_language')); $pageMapper = new PageMapper(); if ($this->getRequest()->getParam('id')) { if ($this->getRequest()->getParam('locale') == '') { $locale = ''; } else { $locale = $this->getRequest()->getParam('locale'); } $this->getView()->set('page', $pageMapper->getPageByIdLocale($this->getRequest()->getParam('id'), $locale)); } $this->getView()->set('languages', $this->getTranslator()->getLocaleList()); $this->getView()->set('multilingual', (bool) $this->getConfig()->get('multilingual_acp')); if ($this->getRequest()->isPost()) { $model = new PageModel(); if ($this->getRequest()->getParam('id')) { $model->setId($this->getRequest()->getParam('id')); } $model->setDescription($this->getRequest()->getPost('description')); $model->setTitle($this->getRequest()->getPost('pageTitle')); $model->setContent($this->getRequest()->getPost('pageContent')); if ($this->getRequest()->getPost('pageLanguage') != '') { $model->setLocale($this->getRequest()->getPost('pageLanguage')); } else { $model->setLocale(''); } $model->setPerma($this->getRequest()->getPost('pagePerma')); $pageMapper->save($model); $this->redirect(array('action' => 'index')); } }
/** * Inserts or updates a page model in the database. * * @param PageModel $page */ public function save(PageModel $page) { if ($page->getId()) { if ($this->getPageByIdLocale($page->getId(), $page->getLocale())) { $this->db()->update('pages_content')->values(array('title' => $page->getTitle(), 'description' => $page->getDescription(), 'content' => $page->getContent(), 'perma' => $page->getPerma()))->where(array('page_id' => $page->getId(), 'locale' => $page->getLocale()))->execute(); } else { $this->db()->insert('pages_content')->values(array('page_id' => $page->getId(), 'description' => $page->getDescription(), 'title' => $page->getTitle(), 'content' => $page->getContent(), 'perma' => $page->getPerma(), 'locale' => $page->getLocale()))->execute(); } } else { $date = new \Ilch\Date(); $pageId = $this->db()->insert('pages')->values(array('date_created' => $date->toDb()))->execute(); $this->db()->insert('pages_content')->values(array('page_id' => $pageId, 'description' => $page->getDescription(), 'title' => $page->getTitle(), 'content' => $page->getContent(), 'perma' => $page->getPerma(), 'locale' => $page->getLocale()))->execute(); } }