我正在尝试将我的升级版从产品“内容”视图移到模板中的自己的部分。
我的XML看起来像这样:
<catalog_product_view translate="label">
<reference name="root">
<action method="setTemplate">
<template>page/2columns-left.phtml</template>
</action>
</reference>
<reference name="content">
<block type="catalog/product_view" name="product.info" template="catalog/product/view.phtml">
...other blocks...
<block type="catalog/product_list_upsell" name="product.info.upsell" as="upsell_products" template="catalog/product/list/upsell.phtml" />
....other blocks...
</block>
</reference>
</catalog_product_view>
然后,在page/2columns-left.phtml
内,它会调用$this->getChildHtml('content')
来呈现catalog/product/view.phtml
,然后在THAT文件中调用$this->getChildHtml('upsell_products')
。
我要做的是将'upsell_products'移出主要'内容'视图(因为它包含在模板的右列中),并将其移动到主2列模板中,以便加售实际上可以位于2列布局下方并跨越页面的整个宽度,而不是限制在右列。我知道我应该创建一个新模板,因为现在这不仅仅是2列,但是设置它的正确方法是什么?我尝试了很多不同的东西,似乎都没有。我希望我已经包含了所有相关信息。
答案 0 :(得分:1)
这就是我的所作所为。
在local.xml中添加以下内容:
<catalog_product_view>
<reference name="root">
<block type="core/text_list" name="bottom" as="bottom" translate="label">
<label>bottom</label>
</block>
</reference>
<reference name="bottom">
<block type="catalog/product_list_upsell" name="product.info.upsell" as="upsell_products" template="catalog/product/list/upsell.phtml">
<action method="setColumnCount"><columns>4</columns></action>
<action method="setItemLimit"><type>upsell</type><limit>4</limit></action>
</block>
</reference>
</catalog_product_view>
我创建了一个名为2columns-left-bottom的新模板,但如果您愿意,可以修改2columns-left。在您选择的任何模板中,您可以像这样调用底部:
<div><?php echo $this->getChildHtml('bottom') ?></div>
将其放置在主要容器col2-left-layout的页脚上方和下方(外侧)。你会有一些div的造型,但我把它留给你。
所以这已经定义了一个新的结构块,比如'right'或'left',然后将upsell_products的内容放入其中。
hth,sconnie