如何单独显示Magento自定义选项

时间:2011-11-25 17:21:08

标签: magento magento-1.4

我的Magento网站的产品有一些自定义选项,一个文本,一个文件上传和四个下拉列表。

网站的设计要求我需要在整个产品视图页面中显示这些选项,而不是在一个组中。

是否有一个函数可以调用以返回单个自定义选项的HTML?

2 个答案:

答案 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>";
  }
}