/** * 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); }
/** * 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>'; }
/** * 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; }