【问题标题】:Two product layout in magentoMagento中的两种产品布局
【发布时间】:2013-03-06 10:01:30
【问题描述】:

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

喜欢

1) 目录/产品/view.phtml(原文)

2) 目录/产品/newview.phtml(新文件)

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

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

还有3类和4类,基于newview.phtml的产品展示

【问题讨论】:

    标签: magento layout product


    【解决方案1】:

    您可以在设计标签集中的后端每个产品上进行设置:

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

    否则,您也可以通过 Observer 执行此操作,以一次性获取类别 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');
    }
    

    【讨论】:

    • 你能告诉我这是添加观察到的正确方法吗? local(dir) --> Mage (dir) --> Catalog (dir) == Modal (dir) --> Observer.php (File) == etc (dir) --> config.xml ===== == Observer.php ======= class Mage_Catalog_Model_Observer { public function generateBlocksAfter($event){.....} } ======= config.xml ====== ....
    • 我建议将其设置在您自己的模块中,而不是在 Mage_Catalog 中,但是是的,这似乎是正确的方法
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多