我想在view.phtml中显示是/否属性。我尝试了一些代码,但没有一个正常工作。
首先,我尝试了这种语法,我只找到了这种语法,它适用于具有文本值的属性:
<?php
if ($_product->getAn_342() != null && $_product->getAn_342() != "") {
echo $this->__('Deliveryinformation');
echo $_product->getAn_342();
}
?>
这对于具有是/否值的属性不起作用。使用此语法,将显示Attribut的Magento-ID,但不显示值。
接下来我尝试了这个语法,我在这个论坛中找到了这个:
<?php
if ($_product->getAttributeText($_data['An_56']) == "Yes"):
?>
但这不起作用。
解释: 我要展示的一个Attribut将是“畅销书”。 Attribut标签为“ an_bestsller ”,代码为“ an_56 ”,这将是 magento-Id 。
那么上面的是/否语法究竟出了什么问题呢?一些帮助会很棒。
答案 0 :(得分:0)
您可以尝试执行以下操作:
$attr = $product->getResource()->getAttribute("oversize_type");
if ($attr->usesSource()) {
$oversizeLabel = $attr->getSource()->getOptionText($oversizeId);
}
请将oversize_type更改为您的属性代码
以上是获取下拉类型选项文本的方法。
希望这会有所帮助。
答案 1 :(得分:0)
您需要检查不同的可翻译值:'N / A'或'NO':
if ($_product->getAttributeText($_data['An_56']) =! $this->__("N/A") && $_product->getAttributeText($_data['An_56'] != $this->__('NO')):
最好做一个扩展Mage_Catalog_Block_Product_View_Attributes的扩展并覆盖函数getAdditionalData:
public function getAdditionalData(array $excludeAttr = array())
{
$data = parent::getAdditionalData($excludeAttr);
foreach ($data as $code => $item) {
if ($item['value'] == Mage::helper('catalog')->__('N/A')
|| $item['value'] == Mage::helper('catalog')->__('No')
//You can add more values to hide
//|| $item['value'] == Mage::helper('catalog')->__('--')
) {
unset($data[$code]);
}
}
return $data;
}