Magento产品视图模板基于类别

时间:2012-03-22 09:57:22

标签: magento

我们正在开发一个Magento网上商店,它有两个类别。

我们希望使用第一类的默认产品视图模板和第二类的自定义产品视图模板。

这可能吗?我们如何才能实现这一目标?

*编辑 - 解决方案*

对任何对此感到好奇的人。解决方案比我想象的容易得多。

我只需将这段代码放在相关类别的自定义布局更新部分中,我就必须将“应用于产品”选项设置为是!

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

*编辑* 我已经尝试将此代码添加到catalog.xml。

<CATEGORY_5>
    <reference name="product.info">
        <action method="setTemplate"><template>catalog/product/view-recipe.phtml</template></action>
    </reference>
</CATEGORY_5>

*编辑* 我尝试将此代码添加到catalog.xml:

<CATEGORY_5>
    <reference name="product.info">
        <action method="setTemplate"><template>catalog/product/view-recipe.phtml</template></action>
    </reference>
</CATEGORY_5>

此代码到自定义布局更新部分:

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

我安装了补丁但很遗憾没有结果。

2 个答案:

答案 0 :(得分:5)

您的意思是类别目录列表吗?然后,您可以尝试“自定义布局更新”。

  • 目录 - &gt;管理类别
  • 从“页面布局”
  • 中选择自定义布局
  • 在“自定义布局更新”
  • 中添加以下内容
<reference name="product_list">
<action method="setTemplate">
    <template>catalog/product/custom-theme.phtml</template>
</action>
</reference>

当然,你应该先创建custom layout,你可以从base list.phtml中引用

*编辑* 如果您想要自定义特定产品/类别,则可以使用custom layout handle。请考虑以下链接。

*编辑* 首先,您应该从CategoryController.php文件夹修改viewAction() /app/code/core/Mage/Catalog/Controllers方法(如Inchoo示例中所指定)。

然后,你应该做那样的事情:

<CATEGORY_20>
<reference name="product.info">
            <action method="setTemplate"><template>catalog/product/custom-theme.phtml</template></action>
    </reference>
</CATEGORY_20>

*编辑* Magento有一个关于自定义布局更新的错误,问题是7625.他们在下一个版本中通过Bug Track指定修复,但仍然有问题。因此,Ingo Weseloh制作了一个补丁,您可以找到以下链接。

Exanto Reclayup 7625

*编辑*

迈克尔,你可以试试这个(这是艾伦风暴的消化)

<CATEGORY_20>
<reference name="product.info">
  <action method="setTemplate"><template>catalog/product/custom-theme.phtml</template></action>
  <action method="setIsHandle"><applied>1</applied></action>
</reference>

答案 1 :(得分:-1)

$category_id = 14; // if you know static category then enter number

$catagory_model = Mage::getModel('catalog/category')->load($category_id); //where $category_id is the id of the category

$collection = Mage::getResourceModel('catalog/product_collection');

$collection->addCategoryFilter($catagory_model); //category filter

$collection->addAttributeToFilter('status',1); //only enabled product

$collection->addAttributeToSelect(array('name','url','small_image')); //add product attribute to be fetched

//$collection->getSelect()->order('rand()'); //uncomment to get products in random order     

$collection->addStoreFilter();          

if(!empty($collection))

{

        foreach ($collection as $_product):?>

        <a href="<?php echo $_product->getProductUrl();?>"><img src="<?php echo Mage::helper('catalog/image')->init($_product, 'small_image')->resize(197, 167); ?>" />   </a>  

 <?php   endforeach;

}else

    {

        echo 'No products exists';

}