从块Magento操作模板
我试图更改目录页面中AddtoCart按钮的行为,并仅在特定情况下显示它。我正在做的是添加一个自定义模块,用于更新布局并用我自己的文件替换Product/List.phtml。这种方法在发布自定义模块时不是很灵活,因为几乎所有用户都将使用不同的模板文件,并且他们必须将我的模板文件与他们的模板文件合并从块Magento操作模板,magento,Magento,我试图更改目录页面中AddtoCart按钮的行为,并仅在特定情况下显示它。我正在做的是添加一个自定义模块,用于更新布局并用我自己的文件替换Product/List.phtml。这种方法在发布自定义模块时不是很灵活,因为几乎所有用户都将使用不同的模板文件,并且他们必须将我的模板文件与他们的模板文件合并 因此,我的问题是,我可以从块操作phtml吗?也许可以覆盖*Mage\u Catalog\u block\u Product\u List*并在*BeforeToHtml*函数中更改模板,这是一种更
因此,我的问题是,我可以从块操作phtml吗?也许可以覆盖*Mage\u Catalog\u block\u Product\u List*并在*BeforeToHtml*函数中更改模板,这是一种更好的方法吗?是否可行?首先让我说,Magento在这方面缺乏一点灵活性(在渲染到模板时)。如果我对您的理解正确,您将决定该产品是否畅销:
- 您可以在之后添加一个事件以查看产品是否畅销。通过这种方式,您可以在系统中设置产品是否可供销售。当您在事件中更改可销售对象的值时,它将更改为缺货消息。也许这就是您想要的(但问题是它被用在
语句中-它要么可以添加到购物车中,要么缺货(请参见下面的代码)if/else
- 然后,您可以使用翻译文件将缺货的字符串转换为您想要的字符串(有点像黑客)
- 试图覆盖
的问题是,直到Mage\u Catalog\u Block\u Product\u List
方法,模板文件才被包含。您可以覆盖它,并调用\u toHtml
在代码块的开头。但是,删除“添加到购物车”按钮将涉及一些非常困难的正则表达式父项::\u toHtml()
<?php if($_product->isSaleable()): ?>
<button type="button" title="<?php echo $this->__('Add to Cart') ?>" class="button btn-cart" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>')"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button>
<?php else: ?>
<p class="availability out-of-stock"><span><?php echo $this->__('Out of stock') ?></span></p>
<?php endif; ?>