Exemplo n.º 1
0
 /**
  * Inits layout for viewing product page
  *
  * @param Mage_Catalog_Model_Product $product
  * @param Mage_Core_Controller_Front_Action $controller
  *
  * @return Mage_Catalog_Helper_Product_View
  */
 public function initProductLayout($product, $controller)
 {
     $design = Mage::getSingleton('catalog/design');
     $settings = $design->getDesignSettings($product);
     if ($settings->getCustomDesign()) {
         $design->applyCustomDesign($settings->getCustomDesign());
     }
     $update = $controller->getLayout()->getUpdate();
     $update->addHandle('default');
     $controller->addActionLayoutHandles();
     $update->addHandle('AJC_PRODUCT_TYPE_' . $product->getTypeId());
     $update->addHandle('PRODUCT_' . $product->getId());
     $controller->loadLayoutUpdates();
     $update->addUpdate($product->getCustomLayoutUpdate());
     $update->merge(strtolower($controller->getFullActionName()) . '_FINAL');
     // Apply custom layout update once layout is loaded
     $layoutUpdates = $settings->getLayoutUpdates();
     if ($layoutUpdates) {
         if (is_array($layoutUpdates)) {
             foreach ($layoutUpdates as $layoutUpdate) {
                 $update->addUpdate($layoutUpdate);
             }
         }
     }
     $controller->generateLayoutXml()->generateLayoutBlocks();
     // Apply custom layout (page) template once the blocks are generated
     if ($settings->getPageLayout()) {
         $controller->getLayout()->helper('page/layout')->applyTemplate($settings->getPageLayout());
     }
     $currentCategory = Mage::registry('current_category');
     $root = $controller->getLayout()->getBlock('root');
     if ($root) {
         $controllerClass = $controller->getFullActionName();
         if ($controllerClass != 'catalog-product-view') {
             $root->addBodyClass('catalog-product-view');
         }
         $root->addBodyClass('product-' . $product->getUrlKey());
         if ($currentCategory instanceof Mage_Catalog_Model_Category) {
             $root->addBodyClass('categorypath-' . $currentCategory->getUrlPath())->addBodyClass('category-' . $currentCategory->getUrlKey());
         }
     }
     return $this;
 }
Exemplo n.º 2
0
 /**
  * Inits layout for viewing product page
  *
  * @param Mage_Catalog_Model_Product $product
  * @param Mage_Core_Controller_Front_Action $controller
  *
  * @return Mage_Catalog_Helper_Product_View
  */
 public function initProductLayout($product, $controller)
 {
     $design = Mage::getSingleton('catalog/design');
     $settings = $design->getDesignSettings($product);
     if ($settings->getCustomDesign()) {
         $design->applyCustomDesign($settings->getCustomDesign());
     }
     $update = $controller->getLayout()->getUpdate();
     $update->addHandle('default');
     $controller->addActionLayoutHandles();
     /* START OF CODE FOR CUSTOMIZATION OF PREMIUM PACKAGING */
     /*
     $premium = false;
     
     $catIds = $product->getCategoryIds();
     
     $premium	=	Mage::getModel('packaging/packaging')->bool_isPremiumPackaging($catIds, true);
     
     if($premium) {
     	$update->addHandle('PRODUCT_TYPE_PREMIUM');
     	$update->addHandle('PRODUCT_' . $product->getId());
     } else {
     */
     $update->addHandle('PRODUCT_TYPE_' . $product->getTypeId());
     $update->addHandle('PRODUCT_' . $product->getId());
     /*
     }
     */
     /* END OF CODE FOR CUSTOMIZATION OF PREMIUM PACKAGING */
     $controller->loadLayoutUpdates();
     // Apply custom layout update once layout is loaded
     $layoutUpdates = $settings->getLayoutUpdates();
     if ($layoutUpdates) {
         if (is_array($layoutUpdates)) {
             foreach ($layoutUpdates as $layoutUpdate) {
                 $update->addUpdate($layoutUpdate);
             }
         }
     }
     $controller->generateLayoutXml()->generateLayoutBlocks();
     // Apply custom layout (page) template once the blocks are generated
     if ($settings->getPageLayout()) {
         $controller->getLayout()->helper('page/layout')->applyTemplate($settings->getPageLayout());
     }
     $currentCategory = Mage::registry('current_category');
     $root = $controller->getLayout()->getBlock('root');
     if ($root) {
         $controllerClass = $controller->getFullActionName();
         if ($controllerClass != 'catalog-product-view') {
             $root->addBodyClass('catalog-product-view');
         }
         $root->addBodyClass('product-' . $product->getUrlKey());
         if ($currentCategory instanceof Mage_Catalog_Model_Category) {
             $root->addBodyClass('categorypath-' . $currentCategory->getUrlPath())->addBodyClass('category-' . $currentCategory->getUrlKey());
         }
     }
     return $this;
 }
Exemplo n.º 3
0
 /**
  * Replace full action name to render emulated layout
  *
  * @param string $delimiter
  * @return string
  */
 public function getFullActionName($delimiter = '_')
 {
     if ($this->_fullActionName) {
         return $this->_fullActionName;
     }
     return parent::getFullActionName($delimiter);
 }
Exemplo n.º 4
0
 /**
  * Method to track the controller-action
  *
  * @access public
  * @param Mage_Core_Controller_Front_Action $action
  * @return $this
  */
 protected function _trackControllerAction($action)
 {
     if (!$this->_getHelper()->isTrackController()) {
         return $this;
     }
     $actionName = $action->getFullActionName('/');
     if (function_exists('newrelic_name_transaction')) {
         newrelic_name_transaction($actionName);
     }
     return $this;
 }
Exemplo n.º 5
0
 /**
  * Inits layout for viewing product page
  *
  * @param Mage_Catalog_Model_Product $product
  * @param Mage_Core_Controller_Front_Action $controller
  *
  * @return Mage_Catalog_Helper_Product_View
  */
 public function initProductLayout($product, $controller)
 {
     $design = Mage::getSingleton('catalog/design');
     $settings = $design->getDesignSettings($product);
     if ($settings->getCustomDesign()) {
         $design->applyCustomDesign($settings->getCustomDesign());
     }
     $update = $controller->getLayout()->getUpdate();
     $update->addHandle('default');
     $controller->addActionLayoutHandles();
     $update->addHandle('PRODUCT_TYPE_' . $product->getTypeId());
     $update->addHandle('PRODUCT_' . $product->getId());
     if ($product->getAttributeSetId() == '9') {
         $categoryId = (int) Mage::app()->getStore()->getRootCategoryId();
         $category = Mage::getModel('catalog/category')->setStoreId(Mage::app()->getStore()->getId())->load($categoryId);
         $layer = Mage::getSingleton('catalog/layer');
         $productCollection = $layer->getProductCollection();
         Mage::getModel('amfinder/finder')->getCompatibleCollection($product, $productCollection);
         if (Mage::registry('current_category')) {
             Mage::unregister('current_category');
         }
         Mage::register('current_category', $category);
         Mage::getSingleton('catalog/session')->setLastVisitedCategoryId($category->getId());
         Mage::register('finder_product', true);
         $update->removeHandle('catalog_product_view');
         $update->addHandle('amfinder_index_index');
     }
     $controller->loadLayoutUpdates();
     // Apply custom layout update once layout is loaded
     $layoutUpdates = $settings->getLayoutUpdates();
     if ($layoutUpdates) {
         if (is_array($layoutUpdates)) {
             foreach ($layoutUpdates as $layoutUpdate) {
                 $update->addUpdate($layoutUpdate);
             }
         }
     }
     $controller->generateLayoutXml()->generateLayoutBlocks();
     // Apply custom layout (page) template once the blocks are generated
     if ($settings->getPageLayout()) {
         $controller->getLayout()->helper('page/layout')->applyTemplate($settings->getPageLayout());
     }
     $currentCategory = Mage::registry('current_category');
     $root = $controller->getLayout()->getBlock('root');
     if ($root) {
         $controllerClass = $controller->getFullActionName();
         if ($controllerClass != 'catalog-product-view') {
             $root->addBodyClass('catalog-product-view');
         }
         $root->addBodyClass('product-' . $product->getUrlKey());
         if ($currentCategory instanceof Mage_Catalog_Model_Category) {
             $root->addBodyClass('categorypath-' . $currentCategory->getUrlPath())->addBodyClass('category-' . $currentCategory->getUrlKey());
         }
     }
     return $this;
 }