magento的两个产品布局

时间:2013-03-18 05:55:31

标签: magento layout product

在magento项目中,我有四个类别,我有2个产品模板文件

喜欢

1)catalog / product / view.phtml(original)

2)catalog / product / newview.phtml(新文件)

现在我想根据类别显示产品布局

类似于id 1和2类,产品展示基于view.phtml

和类别3和4,产品显示基于newview.phtml

2 个答案:

答案 0 :(得分:0)

您可以在设计选项卡集的后端中的每个产品上设置此项:

<reference name="product.info">
     <action method="setTemplate"><template>catalog/product/newview.phtml</template></action>
</reference>

否则,您也可以通过观察者执行此操作,一次性获取X类中的所有产品。

使用类似这样的函数创建自己的模块,观察controller_action_layout_generate_blocks_after事件:

public function generateBlocksAfter($event)
{                      
    $controller   = $event->getAction();
//limit to the product view page 
if($controller->getFullActionName() != 'catalog_product_view')
{
    return;
}
$layout       = $controller->getLayout();
$product_info = $layout->getBlock('product.info');
if(!$product_info)
{
     Mage::log('Could not find product.info block');
     return;
 }
$id = Mage::registry('current_product')->getId();
$prod = Mage::getModel('catalog/product')->load($id);
$category_ids = $prod->getCategoryIds();
if(in_array(3,$category_ids) || in_array(4,$category_ids))     
     $product_info->setTemplate('catalog/product/newview.phtml');
}

答案 1 :(得分:0)

根据local.xml文件中的类别id使用此代码进行显示

      <reference name="product_list">
          <action method="setTemplate"><name>catalog/product/list_new.phtml</name></action>
      </reference>
 </CATEGORY_5>