我的Magento网站的产品有一些自定义选项,一个文本,一个文件上传和四个下拉列表。
网站的设计要求我需要在整个产品视图页面中显示这些选项,而不是在一个组中。
是否有一个函数可以调用以返回单个自定义选项的HTML?
答案 0 :(得分:0)
有一些方法可以做到这一点等于作弊。
您的商店需要使用javascript进行操作,并且在页面呈现之前,您可以使用on dom:loaded事件对Prototype进行大量操作。您可以将自定义选项附加到DOM中的任何位置,也可以隐藏它们,并在更新表单元素的页面上放置其他位置。如果您必须捕获颜色名称但不希望在每个产品上添加大量颜色,您可能希望这样做 - 文本框可以放在产品上,您的控件可以写入它。
某些$$(&#39;作弊&#39;)的好处在于,您不必深入了解Magento代码以了解什么是设计考虑因素&#39;。< / p>
答案 1 :(得分:0)
我对组没有正确理解。如果你的意思是类别;
创建一个新属性集,该属性集应包含您要显示的属性。之后,在创建产品时,请选择此属性集而不是默认值。因此,只有这些属性才能在指定的产品中使用。
尝试以下代码段(不要忘记更改“attribute_code”)
假设您要在产品页面中显示多选列表,在这种情况下:
$selectArray = $this->getProduct()->getAttributeText('YOUR_ATTRIBUTE_CODE');
$endOfArray = end($selectArray);
echo "<ul class='set-some-class'>";
foreach($selectArray as $selectionItem) {
echo "<li> . $selectionItem";
if($selectionItem != $endOfArray) {
echo "</li>\n";
} else {
echo "</ul>";
}
}
对于产品视图页面以外的页面,在这种情况下:
$attribute = Mage::getModel('catalog/product')->getAttribute('catalog_product', 'YOUR_ATTRIBUTE_CODE');
$options = $attribute->getSource()->getAllOptions(true, true);
$lastOption = end($options);
echo "<ul class='set-some-class'";
foreach($options as $option) {
echo $option['label'];
if($option != $lastOption) {
echo "<li>\n";
} else {
echo "</ul>";
}
}