/**
  * 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;
 }
 /**
  * Build a Solr document for a given page
  *
  * @param integer $storeId Store ID
  * @param Mage_Cms_Model_Page $page Page instance
  * @return Apache_Solr_Document
  */
 protected function buildPageDocument($storeId, $page)
 {
     $helper = Mage::helper('solr');
     $baseUrl = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB);
     $host = parse_url($baseUrl, PHP_URL_HOST);
     $document = new Apache_Solr_Document();
     $document->setField('appKey', 'Asm_Solr');
     $document->setField('type', 'cms/page');
     $document->setField('id', $helper->getPageDocumentId($page->getId()));
     $document->setField('site', $host);
     $document->setField('siteHash', $helper->getSiteHashForDomain($host));
     $document->setField('storeId', $storeId);
     $document->setField('created', $helper->dateToIso($page->getCreationTime()));
     $document->setField('changed', $helper->dateToIso($page->getUpdateTime()));
     $document->setField('sku', 'cms/page');
     $document->setField('productId', 0);
     $document->setField('pageId', $page->getId());
     $document->setField('title', $page->getTitle());
     $document->setField('content', Mage::helper('solr/contentExtractor')->getIndexableContent($page->getContent()));
     $document->setField('keywords', $helper->trimExplode(',', $page->getMetaKeywords(), true));
     $document->setField('url', Mage::helper('cms/page')->getPageUrl($page->getId()));
     return $document;
 }
Exemple #3
0
 /**
  * Data provider
  *
  * @return array
  */
 public function prepareLayoutDataProvider()
 {
     $urlRewrite = new Mage_Core_Model_Url_Rewrite();
     $cmsPage = new Mage_Cms_Model_Page(array('page_id' => 1, 'title' => 'Test CMS Page'));
     $existingUrlRewrite = new Mage_Core_Model_Url_Rewrite(array('url_rewrite_id' => 1));
     return array(array(array('cms_page' => $cmsPage, 'url_rewrite' => $urlRewrite), array('selector' => false, 'cms_page_link' => array('name' => $cmsPage->getTitle()), 'back_button' => true, 'save_button' => true, 'reset_button' => false, 'delete_button' => false, 'form' => array('cms_page' => $cmsPage, 'url_rewrite' => $urlRewrite), 'cms_pages_grid' => false)), array(array('url_rewrite' => $urlRewrite), array('selector' => true, 'cms_page_link' => false, 'back_button' => true, 'save_button' => false, 'reset_button' => false, 'delete_button' => false, 'form' => false, 'cms_pages_grid' => true)), array(array('url_rewrite' => $existingUrlRewrite, 'cms_page' => $cmsPage), array('selector' => false, 'cms_page_link' => array('name' => $cmsPage->getTitle()), 'back_button' => true, 'save_button' => true, 'reset_button' => true, 'delete_button' => true, 'form' => array('cms_page' => $cmsPage, 'url_rewrite' => $existingUrlRewrite), 'cms_pages_grid' => false)));
 }