/** * Purge Cms Page * * @param Mage_Cms_Model_Page $page * @return Phoenix_VarnishCache_Model_Control_Cms_Page */ public function purge(Mage_Cms_Model_Page $page) { if ($this->_canPurge()) { $storeIds = Mage::getResourceModel('varnishcache/cms_page_store_collection')->addPageFilter($page->getId())->getAllIds(); if (count($storeIds) && current($storeIds) == 0) { $storeIds = Mage::getResourceModel('core/store_collection')->setWithoutDefaultFilter()->getAllIds(); } foreach ($storeIds as $storeId) { $url = Mage::app()->getStore($storeId)->getUrl(null, array('_direct' => $page->getIdentifier())); extract(parse_url($url)); $path = rtrim($path, '/'); $this->_getCacheControl()->clean($host, '^' . $path . '/{0,1}$'); // Purge if current page is a home page $homePageIdentifier = Mage::getStoreConfig(self::XML_PATH_WEB_DEFAULT_CMS_HOME_PAGE, $storeId); if ($page->getIdentifier() == $homePageIdentifier) { $url = Mage::app()->getStore($storeId)->getUrl(); extract(parse_url($url)); $path = rtrim($path, '/'); $this->_getCacheControl()->clean($host, '^' . $path . '/{0,1}$'); $this->_getCacheControl()->clean($host, '^/{0,1}$'); } } $this->_getSession()->addSuccess(Mage::helper('varnishcache')->__('Varnish cache for "%s" has been purged.', $page->getTitle())); } return $this; }
/** * Get request path * * @param Mage_Cms_Model_Page $cmsPage * @return string */ public function generateRequestPath($cmsPage) { return $cmsPage->getIdentifier(); }
public function deletePermanentRedirects(Mage_Cms_Model_Page $page) { $urls = Mage::getModel('core/url_rewrite')->getCollection()->addFieldToFilter('store_id', $page->getStoreId())->addFieldToFilter('request_path', array('like' => $page->getIdentifier() . '%')); foreach ($urls as $url) { $url->delete(); // Removing old url to avoid infinite loop } }