PHP显示Magento是/否属性如果值为是并显示jpg而不是“是”

时间:2016-01-13 09:48:33

标签: php magento

我想在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

那么上面的是/否语法究竟出了什么问题呢?一些帮助会很棒。

2 个答案:

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