예제 #1
0
 /**
  * Stores content as view script in cache and renders it
  * 
  * @param Cms_Model_Page $page
  */
 protected function _renderPageAsView(Cms_Model_Page $page)
 {
     $cacheId = HCMS_Controller_Action_Cms_Page::CMS_PAGE_CACHE_PRE . $page->get_id();
     $resources = Zend_Controller_Front::getInstance()->getParam("bootstrap")->getOption('resources');
     $cacheDir = $resources['cachemanager']['core']['backend']['options']['cache_dir'];
     $cacheFileName = 'zend_cache---' . $cacheId;
     // Create Zend_Cache_Core object
     $cache = HCMS_Cache::getInstance()->getCoreCache();
     // If no cache available for this content page
     if (!$cache->test($cacheId)) {
         $cache->save((string) $page->get_content(), $cacheId);
         //forcing raw string :(
         file_put_contents($cacheDir . "/" . $cacheFileName, $page->get_content());
     }
     $this->view->addScriptPath($cacheDir);
     return $this->view->render($cacheFileName);
 }
예제 #2
0
 /**
  * Enable inline wysiwyg editor in front
  * 
  * @param string $content
  * @param Cms_Model_Page $page 
  */
 public function renderEditable($content, Cms_Model_Page $page)
 {
     if (!self::$enabled) {
         return $content;
     }
     //only for html format
     if ($page->get_format() != 'html') {
         return $content;
     }
     //more check TODO
     return '<div class="editable" data-id="' . $page->get_id() . '">' . $content . '</div>';
 }
예제 #3
0
 /**
  * Check if the page is in use in menus, routes...
  *
  * @param Cms_Model_Page $page
  * @return boolean
  */
 public function isInUse(Cms_Model_Page $page)
 {
     //check menu items
     $select = $this->_dbTable->select();
     $select->setIntegrityCheck(false)->from(array('mi' => 'cms_menu_item'), array('mi.id'))->where('mi.page_id = ?', $page->get_id());
     //echo $select->__toString();die();
     $resultSet = $this->_dbTable->fetchAll($select);
     if (count($resultSet)) {
         return true;
     }
     //check routes
     $select = $this->_dbTable->select();
     $select->setIntegrityCheck(false)->from(array('r' => 'cms_route'), array('r.id'))->where('r.page_id = ?', $page->get_id());
     //echo $select->__toString(); die();
     $resultSet = $this->_dbTable->fetchAll($select);
     if (count($resultSet)) {
         return true;
     }
     return false;
 }