Exemplo n.º 1
0
 public function signupAction()
 {
     $this->_helper->viewRenderer->setNoRender(true);
     if ($this->getRequest()->isPost()) {
         $signupForm = new Application_Form_Signup();
         if ($signupForm->isValid($this->getRequest()->getParams())) {
             //save new user
             $user = new Application_Model_Models_User($signupForm->getValues());
             $user->registerObserver(new Tools_Mail_Watchdog(array('trigger' => Tools_Mail_SystemMailWatchdog::TRIGGER_SIGNUP)));
             $user->setRoleId(Tools_Security_Acl::ROLE_MEMBER);
             if (isset($this->_helper->session->refererUrl)) {
                 $user->setReferer($this->_helper->session->refererUrl);
             }
             $signupResult = Application_Model_Mappers_UserMapper::getInstance()->save($user);
             if (!$user->getId()) {
                 $user->setId($signupResult);
             }
             //send mails by notifying mail observer about successful sign-up,
             $user->notifyObservers();
             //redirect to signup landing page
             $signupLandingPage = Tools_Page_Tools::getLandingPage(Application_Model_Models_Page::OPT_SIGNUPLAND);
             if ($signupLandingPage instanceof Application_Model_Models_Page) {
                 $this->_redirect($this->_helper->website->getUrl() . $signupLandingPage->getUrl());
                 exit;
             } else {
                 $this->_redirect($this->_helper->website->getUrl());
             }
         } else {
             $this->_helper->flashMessenger->addMessage(Tools_Content_Tools::proccessFormMessagesIntoHtml($signupForm->getMessages(), get_class($signupForm)));
             $signupPageUrl = $this->_helper->session->signupPageUrl;
             unset($this->_helper->session->signupPageUrl);
             $this->_redirect($this->_helper->website->getUrl() . ($signupPageUrl ? $signupPageUrl : ''));
         }
     }
 }
Exemplo n.º 2
0
 public static function runPageRankSculpting($siloId, $pageContent)
 {
     self::$_websiteHelper = Zend_Controller_Action_HelperBroker::getStaticHelper('website');
     $silo = Application_Model_Mappers_SiloMapper::getInstance()->find($siloId);
     $sculptingReplacement = array();
     $links = Tools_Content_Tools::findLinksInContent($pageContent);
     if (empty($links) || !isset($links[1])) {
         return $pageContent;
     }
     $hrefs = array_combine($links[0], $links[1]);
     $siloedPagesUrls = array_merge(array(self::$_websiteHelper->getUrl() . 'index.html', self::$_websiteHelper->getUrl() . 'index.htm'), array_map(array('self', '_callbackUrls'), $silo->getRelatedPages()));
     foreach ($hrefs as $key => $href) {
         if (in_array($href, $siloedPagesUrls)) {
             unset($hrefs[$key]);
             continue;
         }
         $page = Application_Model_Mappers_PageMapper::getInstance()->findByUrl(str_replace(self::$_websiteHelper->getUrl(), '', $href));
         if ($page === null) {
             continue;
         }
         $pageContent = str_replace($key, '<span class="' . md5($key) . '">' . $page->getNavName() . '</span>', $pageContent);
         $sculptingReplacement[] = array('id' => md5($key), 'repl' => $key);
         unset($page);
     }
     Zend_Registry::set('sculptingReplacement', json_encode($sculptingReplacement));
     return $pageContent;
 }
Exemplo n.º 3
0
 /**
  * Method for loading directory content via AJAX call
  * @return JSON
  */
 public function getdirectorycontentAction()
 {
     if ($this->getRequest()->isPost()) {
         $folderName = filter_var($this->getRequest()->getParam('folder'), FILTER_SANITIZE_STRING);
         $folderPath = realpath($this->_websiteConfig['path'] . $this->_websiteConfig['media'] . $folderName);
         //retrieve content for given folder
         if (!$folderName || $folderPath === false) {
             $this->view->error = 'Wrong folder specified';
             return false;
         }
         $this->view->imageList = array();
         if (is_dir($folderPath . DIRECTORY_SEPARATOR . 'product')) {
             $listImages = Tools_Filesystem_Tools::scanDirectory($folderPath . DIRECTORY_SEPARATOR . 'product', false, false);
             foreach ($listImages as $image) {
                 array_push($this->view->imageList, array('name' => $image, 'src' => Tools_Content_Tools::applyMediaServers($this->_helper->website->getUrl() . $this->_websiteConfig['media'] . $folderName . '/product/' . $image)));
             }
         }
         $this->view->filesList = array();
         $listFiles = Tools_Filesystem_Tools::scanDirectory($folderPath, false, false);
         foreach ($listFiles as $item) {
             if (!is_dir($folderPath . DIRECTORY_SEPARATOR . $item)) {
                 array_push($this->view->filesList, array('name' => $item));
             }
         }
     } else {
         $this->_redirect($this->_helper->website->getUrl(), array('exit' => true));
     }
 }
Exemplo n.º 4
0
 /**
  * @deprecated Use Tools_Page_Tools::getPreview() instead. Will be removed in 2.2
  */
 public static function getPreviewPath($pageId, $capIfNoPreview = false, $croped = false)
 {
     Tools_System_Tools::debugMode() && error_log('Called deprecated Tools_Page_Tools::getPreviewPath(). Use Tools_Page_Tools::getPreview() instead');
     $websiteHelper = Zend_Controller_Action_HelperBroker::getStaticHelper('website');
     $configHelper = Zend_Controller_Action_HelperBroker::getStaticHelper('config');
     $pageHelper = Zend_Controller_Action_HelperBroker::getStaticHelper('page');
     $websiteUrl = $configHelper->getConfig('mediaServers') ? Tools_Content_Tools::applyMediaServers($websiteHelper->getUrl()) : $websiteHelper->getUrl();
     try {
         $previews = Tools_Filesystem_Tools::findFilesByExtension($websiteHelper->getPath() . ($croped ? $websiteHelper->getPreviewCrop() : $websiteHelper->getPreview()), 'jpg|png|jpeg|gif', true, true, false);
     } catch (Exceptions_SeotoasterException $se) {
         if (APPLICATION_ENV == 'development') {
             error_log("(Cant find preview thumbnail because: " . $se->getMessage() . "\n" . $se->getTraceAsString());
         }
         return $websiteUrl . 'system/images/noimage.png';
     }
     $page = Application_Model_Mappers_PageMapper::getInstance()->find($pageId);
     if ($page instanceof Application_Model_Models_Page) {
         $cleanUrl = $pageHelper->clean(preg_replace('~/+~', '-', $page->getUrl()));
         unset($page);
         $path = array_key_exists($cleanUrl, $previews) ? str_replace($websiteHelper->getPath(), $websiteUrl, $previews[$cleanUrl]) : '';
         if (!$path && $capIfNoPreview) {
             return $websiteUrl . 'system/images/noimage.png';
         }
         return str_replace(DIRECTORY_SEPARATOR, '/', $path);
     }
     return $websiteUrl . 'system/images/noimage.png';
 }
Exemplo n.º 5
0
 public function manageformAction()
 {
     $formForm = new Application_Form_Form();
     $formPageConversionMapper = Application_Model_Mappers_FormPageConversionMapper::getInstance();
     $pageMapper = Application_Model_Mappers_PageMapper::getInstance();
     if ($this->getRequest()->isPost()) {
         if ($formForm->isValid($this->getRequest()->getParams())) {
             $formPageConversionModel = new Application_Model_Models_FormPageConversion();
             $formData = $this->getRequest()->getParams();
             $form = new Application_Model_Models_Form($this->getRequest()->getParams());
             $contactEmail = $form->getContactEmail();
             $validEmail = $this->validateEmail($contactEmail);
             if (isset($validEmail['error'])) {
                 $this->_helper->response->fail(Tools_Content_Tools::proccessFormMessagesIntoHtml(array('contactEmail' => $validEmail['error']), get_class($formForm)));
             }
             if (isset($formData['thankyouTemplate']) && $formData['thankyouTemplate'] != 'select') {
                 $trackingPageUrl = $this->_createTrackingPage($formData['name'], $formData['thankyouTemplate']);
             }
             $this->_addConversionCode();
             $formPageConversionModel->setFormName($formData['name']);
             $formPageConversionModel->setPageId($formData['pageId']);
             $formPageConversionModel->setConversionCode($formData['trackingCode']);
             $formPageConversionMapper->save($formPageConversionModel);
             Application_Model_Mappers_FormMapper::getInstance()->save($form);
             $this->_helper->cache->clean('', '', array(Widgets_Form_Form::WFORM_CACHE_TAG));
             $this->_helper->response->success($this->_helper->language->translate('Form saved'));
         } else {
             $this->_helper->response->fail(Tools_Content_Tools::proccessFormMessagesIntoHtml($formForm->getMessages(), get_class($formForm)));
         }
     }
     $formName = filter_var($this->getRequest()->getParam('name'), FILTER_SANITIZE_STRING);
     $pageId = $this->getRequest()->getParam('pageId');
     $trackingPageName = 'form-' . $formName . '-thank-you';
     $trackingPageUrl = $this->_helper->page->filterUrl($trackingPageName);
     $trackingPageExist = $pageMapper->findByUrl($trackingPageUrl);
     if (!empty($trackingPageExist)) {
         $trackingPageResultUrl = $trackingPageUrl;
     }
     $form = Application_Model_Mappers_FormMapper::getInstance()->findByName($formName);
     $mailTemplates = Tools_Mail_Tools::getMailTemplatesHash();
     $regularPageTemplates = Application_Model_Mappers_TemplateMapper::getInstance()->findByType(Application_Model_Models_Template::TYPE_REGULAR);
     $conversionCode = $formPageConversionMapper->getConversionCode($formName, $pageId);
     if (!empty($conversionCode)) {
         $formForm->getElement('trackingCode')->setValue($conversionCode[0]->getConversionCode());
     }
     $formForm->getElement('name')->setValue($formName);
     $formForm->getElement('replyMailTemplate')->setMultioptions(array_merge(array(0 => 'select template'), $mailTemplates));
     if ($form !== null) {
         $formForm->populate($form->toArray());
     }
     $this->view->trackingPageUrl = $trackingPageResultUrl;
     $this->view->regularTemplates = $regularPageTemplates;
     $this->view->pageId = $pageId;
     $this->view->formForm = $formForm;
     $this->view->helpSection = 'editform';
 }
Exemplo n.º 6
0
 private function _updateContentLinksRelatios()
 {
     if (!$this->_object instanceof Application_Model_Models_Container) {
         throw new Exceptions_SeotoasterException('Wrong object given. Instance of Application_Model_Models_Container expected.');
     }
     $links = array();
     $mapper = Application_Model_Mappers_LinkContainerMapper::getInstance();
     $links[$this->_object->getId()] = Tools_Content_Tools::findLinksInContent($this->_object->getContent(), true);
     $containerId = $this->_object->getId();
     $containerLinks = $mapper->fetchStructured($containerId);
     if (is_array($containerLinks) && isset($containerLinks[$containerId])) {
         $diff = array_diff($containerLinks[$containerId], $links[$containerId]);
         $mapper->delete($containerId, $diff);
     }
     return $mapper->saveStructured($links);
 }
Exemplo n.º 7
0
 protected function _load()
 {
     if (!is_array($this->_options) || empty($this->_options) || !isset($this->_options[0]) || !$this->_options[0] || preg_match('~^\\s*$~', $this->_options[0])) {
         throw new Exceptions_SeotoasterException($this->_translator->translate('You should specify folder.'));
     }
     $configHelper = Zend_Controller_Action_HelperBroker::getStaticHelper('config');
     $path = $this->_websiteHelper->getPath() . $this->_websiteHelper->getMedia() . $this->_options[0] . '/';
     $mediaServersAllowed = $configHelper->getConfig('mediaServers');
     unset($configHelper);
     $websiteData = $mediaServersAllowed ? Zend_Registry::get('website') : null;
     $thumbSize = isset($this->_options[1]) ? $this->_options[1] : self::DEFAULT_THUMB_SIZE;
     $useCrop = isset($this->_options[2]) ? (bool) $this->_options[2] : false;
     $useCaption = isset($this->_options[3]) ? (bool) $this->_options[3] : false;
     if (!is_dir($path)) {
         throw new Exceptions_SeotoasterException($path . ' is not a directory.');
     }
     $sourceImages = Tools_Filesystem_Tools::scanDirectory($path . 'original/');
     $galFolder = $path . ($useCrop ? 'crop/' : 'thumbnails/');
     if (!is_dir($galFolder)) {
         @mkdir($galFolder);
     }
     foreach ($sourceImages as $key => $image) {
         if (is_file($galFolder . $image)) {
             $imgInfo = getimagesize($galFolder . $image);
             if ($imgInfo[0] != $thumbSize) {
                 Tools_Image_Tools::resize($path . 'original/' . $image, $thumbSize, !$useCrop, $galFolder, $useCrop);
             }
         } else {
             Tools_Image_Tools::resize($path . 'original/' . $image, $thumbSize, !$useCrop, $galFolder, $useCrop);
         }
         $sourcePart = str_replace($this->_websiteHelper->getPath(), $this->_websiteHelper->getUrl(), $galFolder);
         if ($mediaServersAllowed) {
             $mediaServer = Tools_Content_Tools::getMediaServer();
             $cleanWebsiteUrl = str_replace('www.', '', $websiteData['url']);
             $sourcePart = str_replace($websiteData['url'], $mediaServer . '.' . $cleanWebsiteUrl, $sourcePart);
         }
         $sourceImages[$key] = array('path' => $sourcePart . $image, 'name' => $image);
     }
     $this->_view->folder = $this->_options[0];
     $this->_view->original = str_replace($this->_websiteHelper->getPath(), $this->_websiteHelper->getUrl(), $path) . 'original/';
     $this->_view->images = $sourceImages;
     $this->_view->useCaption = $useCaption;
     $this->_view->galFolderPath = $galFolder;
     $this->_view->mediaServersAllowed = $mediaServersAllowed;
     $this->_view->galFolder = str_replace($this->_websiteHelper->getPath(), $this->_websiteHelper->getUrl(), $galFolder);
     return $this->_view->render('gallery.phtml');
 }
 public function featuredAction()
 {
     $featuredForm = new Application_Form_Featured();
     if ($this->getRequest()->isPost()) {
         if ($featuredForm->isValid($this->getRequest()->getParams())) {
             $featuredArea = new Application_Model_Models_Featuredarea($featuredForm->getValues());
             Application_Model_Mappers_FeaturedareaMapper::getInstance()->save($featuredArea);
             $this->_helper->response->success('Added');
             exit;
         } else {
             $this->_helper->response->fail(Tools_Content_Tools::proccessFormMessagesIntoHtml($featuredForm->getMessages(), get_class($featuredForm)));
         }
     }
     $pageId = $this->getRequest()->getParam('pid');
     $this->view->pageId = $pageId;
     $this->view->faForm = $featuredForm;
     if (isset($this->_helper->session->faPull)) {
         unset($this->_helper->session->faPull);
     }
 }
Exemplo n.º 9
0
 public function sculptingAction()
 {
     $siloForm = new Application_Form_Silo();
     if ($this->getRequest()->isPost()) {
         if ($siloForm->isValid($this->getRequest()->getParams())) {
             $silo = new Application_Model_Models_Silo($siloForm->getValues());
             if (Application_Model_Mappers_SiloMapper::getInstance()->save($silo)) {
                 $this->_helper->response->success('Silo added.');
             }
         } else {
             $this->_helper->response->fail(Tools_Content_Tools::proccessFormMessagesIntoHtml($siloForm->getMessages(), get_class($siloForm)));
         }
     }
     $this->view->helpSection = 'sculpting';
     $this->view->siloForm = $siloForm;
 }
Exemplo n.º 10
0
 public function manageAction()
 {
     $userForm = new Application_Form_User();
     $userForm->getElement('password')->setRequired(false);
     if ($this->getRequest()->isPost()) {
         //if we are updating
         $userId = $this->getRequest()->getParam('id');
         if ($userId) {
             $userForm->setId($userId);
         }
         if ($userForm->isValid($this->getRequest()->getParams())) {
             $data = $userForm->getValues();
             $user = new Application_Model_Models_User($data);
             Application_Model_Mappers_UserMapper::getInstance()->save($user);
             $this->_helper->response->success($this->_helper->language->translate('Saved'));
             exit;
         } else {
             $this->_helper->response->fail(Tools_Content_Tools::proccessFormMessages($userForm->getMessages()));
             exit;
         }
     }
     $pnum = (int) filter_var($this->getParam('pnum'), FILTER_SANITIZE_NUMBER_INT);
     $offset = 0;
     if ($pnum) {
         $offset = 10 * ($pnum - 1);
     }
     $select = $this->_zendDbTable->getAdapter()->select()->from('user');
     $by = filter_var($this->getParam('by', 'last_login'), FILTER_SANITIZE_STRING);
     $order = filter_var($this->getParam('order', 'desc'), FILTER_SANITIZE_STRING);
     $searchKey = filter_var($this->getParam('key'), FILTER_SANITIZE_STRING);
     if (!in_array($order, array('asc', 'desc'))) {
         $order = 'desc';
     }
     $select = $select->order($by . ' ' . $order);
     $paginatorOrderLink = '/by/' . $by . '/order/' . $order;
     if (!empty($searchKey)) {
         $select->where('email LIKE ?', '%' . $searchKey . '%')->orWhere('full_name LIKE ?', '%' . $searchKey . '%')->orWhere('role_id LIKE ?', '%' . $searchKey . '%')->orWhere('last_login LIKE ?', '%' . date("Y-m-d", strtotime($searchKey)) . '%')->orWhere('ipaddress LIKE ?', '%' . $searchKey . '%');
         $paginatorOrderLink .= '/key/' . $searchKey;
     }
     $adapter = new Zend_Paginator_Adapter_DbSelect($select);
     $users = $adapter->getItems($offset, 10);
     $userPaginator = new Zend_Paginator($adapter);
     $userPaginator->setCurrentPageNumber($pnum);
     $userPaginator->setItemCountPerPage(10);
     $pager = $this->view->paginationControl($userPaginator, 'Sliding', 'backend/user/pager.phtml', array('urlData' => $this->_websiteUrl . 'backend/backend_user/manage', 'order' => $paginatorOrderLink));
     if ($order === 'desc') {
         $order = 'asc';
     } else {
         $order = 'desc';
     }
     if (!empty($searchKey)) {
         $this->view->orderParam = $order . '/key/' . $searchKey;
     } else {
         $this->view->orderParam = $order;
     }
     $this->view->by = $by;
     $this->view->order = $order;
     $this->view->key = $searchKey;
     $this->view->pager = $pager;
     $this->view->users = $users;
     $this->view->helpSection = 'users';
     $this->view->userForm = $userForm;
 }
Exemplo n.º 11
0
 protected function _prepareEmailBody()
 {
     $tmplMessage = $this->_options['message'];
     $mailTemplate = Application_Model_Mappers_TemplateMapper::getInstance()->find($this->_options['template']);
     if (!empty($mailTemplate)) {
         $this->_entityParser->setDictionary(array('emailmessage' => !empty($tmplMessage) ? $tmplMessage : ''));
         //pushing message template to email template and cleaning dictionary
         $mailTemplate = $this->_entityParser->parse($mailTemplate->getContent());
         $this->_entityParser->setDictionary(array());
         $mailTemplate = $this->_entityParser->parse($mailTemplate);
         $themeData = Zend_Registry::get('theme');
         $extConfig = Zend_Registry::get('extConfig');
         $parserOptions = array('websiteUrl' => $this->_websiteHelper->getUrl(), 'websitePath' => $this->_websiteHelper->getPath(), 'currentTheme' => $extConfig['currentTheme'], 'themePath' => $themeData['path']);
         $cDbTable = new Application_Model_DbTable_Container();
         $select = $cDbTable->getAdapter()->select()->from('container', array('uniqHash' => new Zend_Db_Expr("MD5(CONCAT_WS('-',`name`, COALESCE(`page_id`, 0), `container_type`))"), 'id', 'name', 'page_id', 'container_type', 'content', 'published', 'publishing_date'))->where('(container_type = 2 OR container_type = 4)')->where('page_id IS NULL');
         $stat = $cDbTable->getAdapter()->fetchAssoc($select);
         $parser = new Tools_Content_Parser($mailTemplate, array('containers' => $stat), $parserOptions);
         return Tools_Content_Tools::stripEditLinks($parser->parseSimple());
     }
     return false;
 }
Exemplo n.º 12
0
 private function _massDeeplinkApply()
 {
     $pages = Application_Model_Mappers_PageMapper::getInstance()->fetchAllByContent($this->_object->getName());
     if (!empty($pages)) {
         foreach ($pages as $page) {
             Tools_Content_Tools::applyDeeplinkPerPage($this->_object, $page);
         }
     }
 }
Exemplo n.º 13
0
 private function _proccessImages(array $images, $path, $folder, $type)
 {
     if (!empty($images)) {
         $imagesContent = '';
         $srcPath = $this->_helper->website->getUrl() . $this->_helper->website->getMedia() . $folder;
         foreach ($images as $key => $image) {
             $srcPath = Tools_Content_Tools::applyMediaServers($srcPath);
             $imageName = preg_replace('~\\.(jpg|png|gif|jpeg)~i', '', $image);
             $imageSize = getimagesize($path . '/' . $type . '/' . $image);
             $imageElement = htmlspecialchars('<a class="_lbox" href="' . $srcPath . '/' . self::IMG_CONTENTTYPE_ORIGINAL . '/' . $image . '" title="' . str_replace('-', '&nbsp;', $imageName) . '"><img border="0" alt="' . str_replace('-', '&nbsp;', $imageName) . '" src="' . $srcPath . '/' . $type . '/' . $image . '" width="' . $imageSize[0] . '" height="' . $imageSize[1] . '" /></a>');
             $imagesContent .= '<a href="javascript:;" onmousedown="$(\'#content\').tinymce().execCommand(\'mceInsertContent\', false, \'' . $imageElement . '\');">';
             $imagesContent .= '<img title="' . $image . '" border="0" width="80" src="' . $srcPath . '/product/' . $image . '" /></a>';
         }
         return $imagesContent;
     }
 }
Exemplo n.º 14
0
 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;
 }