Exemple #1
0
 public function editPageAction()
 {
     $id = $this->_getParam('id');
     $this->view->user_id = $id;
     $model1 = new Application_Model_Page();
     $model = $model1->find($id);
     if (false === $model) {
         $this->_flashMessenger->addMessage(array('error' => 'Invalid request! Please try again.'));
         $this->_helper->_redirector->gotoUrl($this->view->seoUrl('/hr/employees'));
     }
     $options = array('title' => $model->getTitle(), 'identifire' => $model->getIdentifire(), 'content' => $model->getContent(), 'metaTitle' => $model->getMetaTitle(), 'metaDescription' => $model->getMetaDescription(), 'metaKeyword' => $model->getMetaKeyword(), 'status' => $model->getStatus());
     $request = $this->getRequest();
     $form = new Application_Form_Page();
     $form->populate($options);
     $options = $request->getPost();
     if ($request->isPost()) {
         if ($form->isValid($options)) {
             $sanitize = new Base_Sanitize();
             if (trim($options['identifire']) == "") {
                 $options['identifire'] = $options['title'];
             }
             if (trim($options['identifire']) != "") {
                 $options['identifire'] = $sanitize->clearInputs($options['identifire']);
                 $options['identifire'] = $sanitize->sanitize($options['identifire']);
                 //update seo url table
                 $seo_url_title = $options['identifire'];
                 $actual_url = "/index/contact";
                 $seo_url = "/contact";
                 $actual_url = "/employee/page/identifire/{$model->getIdentifire()}";
                 $new_actual_url = "/employee/page/identifire/{$seo_url_title}";
                 $seo_url = "/{$seo_url_title}";
                 $seoUrlM = new Application_Model_SeoUrl();
                 $soeUrl = $seoUrlM->fetchRow("actual_url='{$actual_url}'");
                 if (false !== $soeUrl) {
                     if ($seo_url != "") {
                         $soeUrl->setActualUrl($new_actual_url);
                         $soeUrl->setSeoUrl($seo_url);
                         $soeUrl->save();
                     }
                 } else {
                     if ($seo_url != "") {
                         $seoUrl = new Application_Model_SeoUrl();
                         $seoUrl->setActualUrl($new_actual_url);
                         $seoUrl->setSeoUrl($seo_url);
                         $seoUrl->save();
                     }
                 }
             }
             $model->setOptions($options);
             $model->save();
             $this->_flashMessenger->addMessage(array('success' => 'Page has been updated successfully!'));
             $this->_helper->_redirector->gotoUrl($this->view->seoUrl('/cms/edit-page/id/' . $id));
         } else {
             $this->_flashMessenger->addMessage(array('error' => 'Unable to save the data. Please provide valid inputs and try again.'));
             $form->reset();
             $form->populate($options);
         }
     }
     $this->view->form = $form;
 }
 public function pageAction()
 {
     $checkFaPull = false;
     //flag shows that system needs to check featured areas in session
     $pageForm = new Application_Form_Page();
     $pageId = $this->getRequest()->getParam('id');
     $mapper = Application_Model_Mappers_PageMapper::getInstance();
     $page = $pageId ? $mapper->find($pageId) : new Application_Model_Models_Page();
     if (!$this->getRequest()->isPost()) {
         $pageForm->getElement('pageCategory')->addMultiOptions($this->_getMenuOptions($page));
         $pageForm->getElement('pageCategory')->setValue($page->getParentId());
         if ($page instanceof Application_Model_Models_Page) {
             $pageForm->setOptions($page->toArray());
             $pageForm->getElement('pageId')->setValue($page->getId());
             $pageForm->getElement('draft')->setValue($page->getDraft());
             //will be like this for now until page will support multiple options set (from the interface)
             $pageOptions = $page->getExtraOptions();
             $pageForm->getElement('extraOptions')->setValue(isset($pageOptions[0]) ? $pageOptions[0] : 0);
             $defaultPageUrl = $this->_helper->website->getDefaultpage();
             if ($pageForm->getElement('url')->getValue() == $this->_helper->page->clean($defaultPageUrl)) {
                 $pageForm->getElement('url')->setAttribs(array('readonly' => true, 'class' => 'noedit'));
             }
         }
     } else {
         $params = $this->getRequest()->getParams();
         $messages = $params['pageCategory'] == -4 ? array('pageCategory' => array('Please make your selection')) : array();
         $optimized = isset($params['optimized']) && $params['optimized'];
         //if page is optimized by samba unset optimized values from update
         if ($optimized) {
             $params = $this->_restoreOriginalValues($params);
         }
         if ($pageForm->isValid($params)) {
             $pageData = $pageForm->getValues();
             $pageData['url'] = $this->_helper->page->filterUrl($pageData['url']);
             //if we'r creating page -> check that we do not have an identical urls
             if (!$pageId) {
                 $pageExists = $mapper->findByUrl($pageData['url']);
                 if ($pageExists instanceof Application_Model_Models_Page) {
                     $this->_helper->response->fail('Page with url <strong>' . $pageData['url'] . '</strong> already exists.');
                     exit;
                 }
                 $checkFaPull = true;
             }
             //saving old data for seo routine
             $this->_helper->session->oldPageUrl = $page->getUrl();
             $this->_helper->session->oldPageH1 = $page->getH1();
             $this->_helper->session->oldPageDraft = $page->getDraft();
             if (!$optimized) {
                 $page->registerObserver(new Tools_Seo_Watchdog());
             }
             $page->registerObserver(new Tools_Search_Watchdog());
             $page->registerObserver(new Tools_Page_GarbageCollector(array('action' => Tools_System_GarbageCollector::CLEAN_ONUPDATE)));
             if ($page->getId() && $page->getParentId() == 0 && ($pageData['inMenu'] != Application_Model_Models_Page::IN_MAINMENU || $pageData['pageCategory'] != 0)) {
                 if ($this->_hasSubpages($page->getId())) {
                     $this->_helper->response->fail($this->_helper->language->translate('Cannot downgrade the category.<br />This page is a category page and has subpages. Please remove or move subpages to another category first'));
                     exit;
                 }
             }
             $page->setOptions($pageData);
             //prevent renaming of the index page
             if ($page->getUrl() != $this->_helper->website->getDefaultpage()) {
                 $page->setUrl($pageData['url']);
             }
             $page->setTargetedKeyPhrase($page->getH1());
             $page->setParentId($pageData['pageCategory']);
             $page->setShowInMenu($pageData['inMenu']);
             // saving new page preview image is recieved it in request
             if (isset($params['pagePreviewImage']) && !empty($params['pagePreviewImage'])) {
                 $previewImageName = Tools_Page_Tools::processPagePreviewImage(!$optimized ? $page->getUrl() : $this->_helper->session->oldPageUrl, $params['pagePreviewImage']);
             } elseif (!$optimized && $this->_helper->session->oldPageUrl !== $page->getUrl()) {
                 // TODO: Refactor this part
                 $previewImageName = Tools_Page_Tools::processPagePreviewImage(!$optimized ? $page->getUrl() : $this->_helper->session->oldPageUrl, Tools_Page_Tools::processPagePreviewImage($this->_helper->session->oldPageUrl));
             }
             if (isset($previewImageName)) {
                 $page->setPreviewImage($previewImageName);
             }
             $page = $mapper->save($page);
             if ($checkFaPull) {
                 $this->_processFaPull($page->getId());
             }
             $page->notifyObservers();
             $this->_helper->response->success(array('redirectTo' => $page->getUrl()));
             exit;
         }
         $messages = array_merge($pageForm->getMessages(), $messages);
         $this->_helper->response->fail(Tools_Content_Tools::proccessFormMessages($messages));
         exit;
     }
     $this->view->faCount = $page->getId() ? sizeof(Application_Model_Mappers_FeaturedareaMapper::getInstance()->findAreasByPageId($page->getId())) : 0;
     //page preview image
     $this->view->pagePreviewImage = Tools_Page_Tools::getPreview($page);
     //Tools_Page_Tools::processPagePreviewImage($page->getUrl());
     $this->view->sambaOptimized = $page->getOptimized();
     // page help section
     $this->view->helpSection = $pageId ? 'editpage' : 'addpage';
     if ($page->getOptimized()) {
         $pageForm->lockFields(array('h1', 'headerTitle', 'url', 'navName', 'metaDescription', 'metaKeywords', 'teaserText'));
     }
     $this->view->pageForm = $pageForm;
 }