Example #1
0
 /**
  * Ban a product's reviews page
  *
  * @param  Varien_Object $eventObject
  * @return bool
  */
 public function banProductReview($eventObject)
 {
     $patterns = array();
     $review = $eventObject->getObject();
     $products = $review->getProductCollection()->getItems();
     $productIds = array_unique(array_map(create_function('$p', 'return $p->getEntityId();'), $products));
     $patterns[] = sprintf('/review/product/list/id/(?:%s)/category/', implode('|', array_unique($productIds)));
     $patterns[] = sprintf('/review/product/view/id/%d/', $review->getEntityId());
     $productPatterns = array();
     foreach ($products as $p) {
         $urlKey = $p->getUrlModel()->formatUrlKey($p->getName());
         if ($urlKey) {
             $productPatterns[] = $urlKey;
         }
     }
     if (!empty($productPatterns)) {
         $productPatterns = array_unique($productPatterns);
         $patterns[] = sprintf('(?:%s)', implode('|', $productPatterns));
     }
     $urlPattern = implode('|', $patterns);
     $result = $this->_getVarnishAdmin()->flushUrl($urlPattern);
     return $this->_checkResult($result);
 }
Example #2
0
 /**
  * Ban a product's reviews page
  *
  * @param  Varien_Object $eventObject
  * @return bool
  */
 public function banProductReview($eventObject)
 {
     if (Mage::helper('turpentine/varnish')->getVarnishEnabled()) {
         $patterns = array();
         /* @var $review \Mage_Review_Model_Review*/
         $review = $eventObject->getObject();
         /* @var $productCollection \Mage_Review_Model_Resource_Review_Product_Collection*/
         $productCollection = $review->getProductCollection();
         $products = $productCollection->addEntityFilter((int) $review->getEntityPkValue())->getItems();
         $productIds = array_unique(array_map(create_function('$p', 'return $p->getEntityId();'), $products));
         $patterns[] = sprintf('/review/product/list/id/(?:%s)/category/', implode('|', array_unique($productIds)));
         $patterns[] = sprintf('/review/product/view/id/%d/', $review->getEntityId());
         $productPatterns = array();
         foreach ($products as $p) {
             $urlKey = $p->getUrlModel()->formatUrlKey($p->getName());
             if ($urlKey) {
                 $productPatterns[] = $urlKey;
             }
         }
         if (!empty($productPatterns)) {
             $productPatterns = array_unique($productPatterns);
             $patterns[] = sprintf('(?:%s)', implode('|', $productPatterns));
         }
         $urlPattern = implode('|', $patterns);
         $result = $this->_getVarnishAdmin()->flushUrl($urlPattern);
         return $this->_checkResult($result);
     }
 }