在默认布局中,选项和添加到购物车按钮由
<?php echo $this->getChildChildHtml('container1', '', true, true) ?>
我想将可配置选项从添加到购物车和数量字段中拆分出来,以将它们显示在我布局中的不同位置。有什么想法或准备好使用的解决方法吗?
在默认布局中,选项和添加到购物车按钮由
<?php echo $this->getChildChildHtml('container1', '', true, true) ?>
我想将可配置选项从添加到购物车和数量字段中拆分出来,以将它们显示在我布局中的不同位置。有什么想法或准备好使用的解决方法吗?
你可以很容易地拆分它(但我花了很多时间来找到它:)) - 如果你查看公共函数 getChildChildHtml的app/code/core/Mage/Core/Block/Abstract.php到 PHPDoc ,你会看到第二个参数确定了子块名称。因此,您可以在价格块渲染之前先调用
<?php echo $this->getChildChildHtml('container1', 'product.info.options.wrapper', true, true) ?>
并在价格块呈现后,调用
<?php echo $this->getChildChildHtml('container1', 'product.info.options.wrapper.bottom', true, true) ?>
虽然您的最终解决方案将取决于这些块需要在布局中移动/插入的位置,但您绝对可以将“添加到购物车”product.info.options.wrapper.bottom
从可配置选项中分离出来,product.info.container1
或者product.info.container2
像这样:
<catalog_product_view>
<reference name="product.info.container1">
<action method="unsetChild"><name>product.info.options.wrapper.bottom</name></action>
</reference>
<reference name="product.info.container2">
<action method="unsetChild"><name>product.info.options.wrapper.bottom</name></action>
</reference>
</catalog_product_view>
然后单独显示“添加到购物车”按钮的最简单方法是注释掉catalog/product/view.phtml
允许显示product.info.addtocart
块的条件,无论产品是否具有选项:
<?php if (!$this->hasOptions()): // Remove this condition ?>
<div class="add-to-box">
<?php if($_product->isSaleable()): ?>
<?php echo $this->getChildHtml('addtocart') ?>
...
<?php endif; ?>
</div>
...
<?php endif; ?>
希望这可以帮助您了解这些块的结构。可能有用的其他资源: