Php magento的产品页面是否可以有多个外观设计?
理论上,我应该如何编写代码或实现问题的解决方案 假设我有一个3种不同的产品页面设计Php magento的产品页面是否可以有多个外观设计?,php,css,magento,magento-1.5,Php,Css,Magento,Magento 1.5,理论上,我应该如何编写代码或实现问题的解决方案 假设我有一个3种不同的产品页面设计 特殊产品/属性:[名称:,宣传语:,价格:,产品图片:,说明:,] 常规产品/属性:[名称:,产品图像:,说明:,] 其他产品/属性:[名称:,产品图像:,说明:,链接:,] 我想他们都只共享一个模板(app/design/frontend/default/skinName/template/product/view.phtml),但我想为每个模板做3个变体。每种产品变体也有不同的属性。我正在使用Magento
谢谢大家! 您必须为它们创建不同的属性,如对于特殊产品,创建属性特殊类型“是/否”,并且每次添加产品时,您将选择此选项。最后,在view.phtml中,您必须检查此产品是否特殊。并在这里使用您的条件和实现您自己的设计。 希望这对你有帮助。
谢谢您必须为它们创建不同的属性,就像对于特殊产品一样,创建属性特殊类型“是/否”,并且您将在每次添加产品时选择此选项。最后,在view.phtml中,您必须检查此产品是否特殊。并在这里使用您的条件和实现您自己的设计。 希望这对你有帮助。 谢谢选项1:按产品类型布局XML 三种不同的产品变体是否是偶然分开的产品类型(例如,可配置、简单和可下载)? 如果是这样,您可以在themes layout/local.xml文件中使用布局更新声明设置不同的模板: 选项4:块重写 另一个选项(尽管更容易发生冲突)是重写
目录/产品视图
块,重载\u beforeToHtml()
方法,并指定要在那里使用的模板。我不会在这里详细介绍,因为我认为前面的选项更好
因此,根据您采取的方法类型,有很多种可能性(并非全部)。选项1:按产品类型布局XML
三种不同的产品变体是否是偶然分开的产品类型(例如,可配置、简单和可下载)?
如果是这样,您可以在themes layout/local.xml文件中使用布局更新声明设置不同的模板:
选项4:块重写
另一个选项(尽管更容易发生冲突)是重写目录/产品视图
块,重载\u beforeToHtml()
方法,并指定要在那里使用的模板。我不会在这里详细介绍,因为我认为前面的选项更好
因此,根据您采取的方法类型,有很多种可能性(这些不是全部)。这取决于您想要什么样的定制。如果你想改变整个页面,我不认为你可以。对不起,我不知道我现在学到的这方面。Magento具有通过布局句柄以自定义产品属性为目标的功能。你可以查看这个网站,这取决于你想要什么样的定制。如果你想改变整个页面,我不认为你可以。对不起,我不知道我现在学到的这方面。Magento具有通过布局句柄以自定义产品属性为目标的功能。你可以查看这个网站谢谢Vinai,这正是我要找的。谢谢Vinai,这正是我要找的。
<layout>
<PRODUCT_TYPE_configurable>
<reference name="product.info">
<action method="setTemplate">
<template>my/catalog/product/view_configurable.phtml</template>
</action>
</reference>
</PRODUCT_TYPE_configurable>
<PRODUCT_TYPE_simple>
<reference name="product.info">
<action method="setTemplate">
<template>my/catalog/product/view_simple.phtml</template>
</action>
</reference>
</PRODUCT_TYPE_simple>
<!-- etc... -->
</layout>
public function controllerActionLayoutRenderBeforeCatalogProductView(Varien_Event_Observer $observer)
{
$block = Mage::app()->getLayout()->getBlock('product.info');
switch ($observer->getProduct()->getYourAttribute())
{
case 'Special Products':
$block->setTemplate('my/catalog/product/view_special.phtml');
break;
case 'Regular Products':
$block->setTemplate('my/catalog/product/view_regular.phtml');
break;
case 'Other Products':
$block->setTemplate('my/catalog/product/view_other.phtml');
break;
}
}