Magento:如何在产品页面的右栏中正确移动自定义简单产品选项?

时间:2012-10-04 14:20:17

标签: css xml magento magento-1.7

我迫切希望将简单产品(只有简单产品)的自定义选项(类型:无线电输入)移动到右栏。

现在,它们似乎显示在名为“container2”的容器中,位于页面底部,并在view.phtml中调用,如下所示:

<div class="clearer"></div>
<?php if ($_product->isSaleable() && $this->hasOptions()):?>
<?php echo $this->getChildChildHtml('container2', '', true, true) ?>
<?php endif;?>

Container2也位于内容块中的布局文件catalog.xml中。

所以我所做的只是从引用名称=“内容”块移动选项包装器,新的一个:引用名称=“右”。

出于某种原因,这里的代码实际上没有很好地格式化,而且它也缺少一些位,所以我把它粘贴在这里:http://pastebin.com/nhCUXcF4

基本上我可以在右栏中看到我的选项,但是当我点击它时就不会检查收音机输入,因为它要求再次选择一个选项(它们是必需的)

如果我将选项保留在内容块的底部,在容器2中,它们可以正常工作,就好像我点击一个,它被正确检查。如果我没有选中任何内容并单击“添加到购物车”,则会要求选择所需选项。

我认为问题来自于container1,container2这件事我并不是很了解。我也在目录XML中看到它们是像

这样的代码
<block type="core/template_facade" name="product.info.container2" as="container2">
<action method="setDataByKey"><key>alias_in_layout</key><value>container2</value>    </action>
   <action method="setDataByKeyFromRegistry"><key>options_container</key
    <key_in_registry>product</key_in_registry></action>
 <action method="append"><block>product.info.options.wrapper</block></action>
 <action method="append"><block>product.info.options.wrapper.bottom</block></action>
</block>

所以基本上我的问题是如何正确地将所需的选项从view.phtml(产品页面)的内容移动到右栏?任何帮助现在都绝对值得赞赏。感谢。

1 个答案:

答案 0 :(得分:2)

有一种更简单的方法可以做到这一点。

而不是使用3列或2列右侧布局使用1列布局,然后将右侧列添加到产品视图模板文件中,如下所示:

<div class="col-right sidebar">
    <?php if ($_product->isSaleable() && $this->hasOptions()):?>
    <?php echo $this->getChildChildHtml('container2', '', true, true) ?>
    <?php endif;?>
</div>

更改产品视图页面的CSS要比更改块等更容易。