Ejemplo n.º 1
0
 /**
  * Prepare data which must be published
  *
  * @return array
  */
 protected function _prepareDataForPublish()
 {
     $data = array();
     $attributes = $this->_config->getPageRevisionControledAttributes();
     foreach ($this->getData() as $key => $value) {
         if (in_array($key, $attributes)) {
             $this->unsetData($key);
             $data[$key] = $value;
         }
     }
     $data['published_revision_id'] = $this->getId();
     return $data;
 }
Ejemplo n.º 2
0
 /**
  * Preparing cms page object before it will be saved
  *
  * @param Varien_Event_Observer $observer
  * @return Enterprise_Cms_Model_Observer
  */
 public function cmsPageSaveBefore(Varien_Event_Observer $observer)
 {
     /* @var $page Mage_Cms_Model_Page */
     $page = $observer->getEvent()->getObject();
     /*
      * All new pages created by user without permission to publish
      * should be disabled from the beginning.
      */
     if (!$page->getId()) {
         $page->setIsNewPage(true);
         if (!$this->_config->canCurrentUserPublishRevision()) {
             $page->setIsActive(false);
         }
         // newly created page should be auto assigned to website root
         $page->setWebsiteRoot(true);
     } else {
         if (!$page->getUnderVersionControl()) {
             $page->setPublishedRevisionId(null);
         }
     }
     /*
      * Checking if node's data was passed and if yes. Saving new sort order for nodes.
      */
     $nodesData = $page->getNodesData();
     $appendToNodes = array();
     $sortOrder = array();
     if ($nodesData) {
         try {
             $nodesData = Mage::helper('core')->jsonDecode($page->getNodesData());
         } catch (Zend_Json_Exception $e) {
             $nodesData = null;
         }
         if (!empty($nodesData)) {
             foreach ($nodesData as $row) {
                 if (isset($row['page_exists']) && $row['page_exists']) {
                     $appendToNodes[$row['node_id']] = 0;
                 }
                 if (isset($appendToNodes[$row['parent_node_id']])) {
                     if (strpos($row['node_id'], '_') !== FALSE) {
                         $appendToNodes[$row['parent_node_id']] = $row['sort_order'];
                     } else {
                         $sortOrder[$row['node_id']] = $row['sort_order'];
                     }
                 }
             }
         }
     }
     $page->setNodesSortOrder($sortOrder);
     $page->setAppendToNodes($appendToNodes);
     return $this;
 }