我迫切希望将简单产品(只有简单产品)的自定义选项(类型: radio 输入)移至右列。
现在,它们似乎显示在页面底部名为“container2”的容器中,在 view.phtml 中调用它,如下所示:
<div class="clearer"></div>
<?php if ($_product->isSaleable() && $this->hasOptions()):?>
<?php echo $this->getChildChildHtml('container2', '', true, true) ?>
<?php endif;?>
Container2 也位于内容 block 内的布局文件catalog.xml 中。
所以我所做的只是将选项包装器从引用名称=“内容” block 中移出,这是一个新的:引用名称=“右”。
由于某种原因,代码在这里的格式实际上没有很好,而且还缺少一些位,所以我将其粘贴在这里:http://pastebin.com/nhCUXcF4
基本上我可以在右栏中看到我的选项,但是当我点击它时,就像没有检查 radio 输入,因为它要求再次选择一个选项(它们是必需的)
如果我将选项保留在容器2底部的内容 block 中,它们会正常工作,就像我单击其中一个一样,它会被正确检查。如果我不选中任何选项并单击添加到购物车,它会要求选择所需的选项。
我认为问题来自于我不太理解的“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(产品页面)的内容移动到右列?现在任何帮助将不胜感激。谢谢。
最佳答案
有一种更简单的方法可以做到这一点。
不要使用 3 列或 2 列右侧布局,而是使用 1 列布局,然后将右侧列添加到产品 View 模板文件中,如下所示:
<div class="col-right sidebar">
<?php if ($_product->isSaleable() && $this->hasOptions()):?>
<?php echo $this->getChildChildHtml('container2', '', true, true) ?>
<?php endif;?>
</div>
更改产品 View 页面的 CSS 比更改周围的 block 等容易得多。
关于css - 玛根托 : how to properly move custom simple products options in the right column on product page?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12729388/