public function pageEditAction() { $data = $this->getRequest()->getPost('data'); $submit = $this->getRequest()->getPost('submit'); $id = $this->_getParam('id'); $typeId = $this->_getParam('type_id'); $langFilter = $this->_getParam('langFilter'); //check if cancel button is pressed if ($this->_formHelper->isCancel()) { //cancel form return $this->_formHelper->returnCancel($this->view->url(array('action' => 'page')), $this->translate('Action canceled')); } //create form object $form = new Cms_Form_Page($data, null, $langFilter); //postback - save? if ($this->_formHelper->isSave()) { //check if valid if ($form->isValid()) { $values = $form->getValues(); //create entity object from submitted values, and save $page = new Cms_Model_Page($values); //new entity if (!isset($data['id']) || $data['id'] <= 0) { $page->set_application_id($this->_applicationId)->set_user_id($this->_admin->get_id())->set_posted(HCMS_Utils_Time::timeTs2Mysql(time())); } else { $existingPage = new Cms_Model_Page(); if (!Cms_Model_PageMapper::getInstance()->find($data['id'], $existingPage)) { throw new Exception("Page not found"); } if ((int) $existingPage->get_application_id() != $this->_applicationId) { throw new Exception("Cannot edit this Page."); } } Cms_Model_PageMapper::getInstance()->save($page, $langFilter); //save categories if (isset($data['categories'])) { Cms_Model_PageMapper::getInstance()->saveCategories($page, $data['categories']); } //save done, return success return $this->_formHelper->returnSuccess($this->view->url(array('action' => 'page')), $this->translate('Page saved.')); } else { //we have errors - return json or continue $this->_formHelper->returnError($form->getMessages()); } } elseif (!$this->_formHelper->getRequest()->isPost()) { //edit action if (isset($id) && $id > 0) { $page = new Cms_Model_Page(); if (!Cms_Model_PageMapper::getInstance()->find($id, $page, $langFilter)) { throw new Exception("Page not found"); } //fetch data $data = $page->toArray(); //populate form with data $form->setData($data); } else { $this->view->typeId = $typeId; } } $this->view->data = $data; $this->view->types = Cms_Model_PageTypeMapper::getInstance()->fetchAll(); //custom elements $pageTypes = $this->_application->get_settings("page_types"); $typeId = $this->_getParam('type_id') ? $this->_getParam('type_id') : $page->get_type_id(); $this->view->customElements = isset($pageTypes) && isset($pageTypes[$typeId]['custom_elements']) ? $pageTypes[$typeId]['custom_elements'] : array(); }
protected function savePage($row) { $titles = explode("\n", $this->data[$row]['Name']); if (isset($this->data[$row]['Meta Keywords'])) { $metaKeywords = explode("\n", $this->data[$row]['Meta Keywords']); } if (isset($this->data[$row]['Meta Description'])) { $metaDescriptions = explode("\n", $this->data[$row]['Meta Description']); } $page = new Cms_Model_Page(); $page->set_application_id(1)->set_format('html')->set_status('published')->set_type_id(1)->set_user_id(1)->set_posted(HCMS_Utils_Time::timeTs2Mysql(time())); foreach ($this->languages as $langIndex => $lang) { $curRow = $row; $title = $this->getLangText($titles, $langIndex); if (isset($metaKeywords)) { $metaKeyword = $this->getMetaKeywords($metaKeywords, $langIndex); } if (isset($metaDescriptions)) { $metaDescription = $this->getMetaDescription($metaDescriptions, $langIndex); } $urlIdParts = array(); while (isset($this->data[$curRow])) { $currTitles = explode("\n", $this->data[$curRow]['Name']); if (isset($metaKeyword) && isset($metaDescription)) { $meta = array("keywords" => $metaKeyword, "description" => $metaDescription); } else { $meta = array("keywords" => "", "description" => ""); } if (isset($currTitles[$langIndex])) { $urlIdParts[] = $this->seoFilter->filter($currTitles[$langIndex]); } if (!isset($this->data[$curRow]['parent'])) { break; } $curRow = $this->data[$curRow]['parent']; } $urlIdParts = array_reverse($urlIdParts); $urlId = implode('-', $urlIdParts); $page->set_code('')->set_url_id($urlId)->set_content('<h1>' . $title . '</h1>')->set_title($title)->set_meta($meta); if (Cms_Model_PageMapper::getInstance()->findByUrlId($urlId, 1, $page)) { continue; } Cms_Model_PageMapper::getInstance()->save($page, $lang); } $this->data[$row]['page_id'] = $page->get_id(); }
public function indexAction() { $data = $this->getRequest()->getPost('data'); //print_r($this->_fields); //create form object $form = new Contact_Form_Generic($data, null, $this->_fields, $this->getRequest()); $entityClassName = $this->getEntityClassName(); $mapperClassName = $this->getMapperClassName(); //postback - save? if ($this->_formHelper->isSave()) { //check if valid if ($form->isValid()) { $values = $form->getValues(); if ($this->hasFileUpload()) { $this->relocateUploadedFiles($values); $this->_genericFileHelper->pmcCleaner(); } //persist data if (isset($this->_formParams['db']['save']) && $this->_formParams['db']['save']) { $contact = new $entityClassName($values); $contact->set_application_id($this->_applicationId)->set_language(CURR_LANG)->set_form_id($this->_formId)->set_posted(HCMS_Utils_Time::timeTs2Mysql(time())); $mapperClassName::getInstance()->save($contact); } //send email $this->sendContactEmail($values, $this->_fields, CURR_LANG); //sending done, return success return $this->redirectLanding(); } else { $this->_formHelper->returnError($form->getMessages()); } } else { //set default values Contact_Form_Generic::setDefaultValues($this->_fields, $data); } $this->view->data = $data; $this->view->fields = $this->_fields; $this->view->formParams = $this->_formParams; $this->view->formId = $this->_formId; if (isset($this->_formParams['template'])) { $this->renderScript($this->_formParams['template']); } }