显示类型为yes / no的自定义属性,其值在magento的list.phtml中为yes

时间:2012-12-03 09:21:32

标签: magento-1.7

我做了一些yes / no类型的属性。现在我想在list.phtml中显示值为yes的那些属性

我尝试了很多代码,但未能解决这个问题。请帮我解决问题,因为紧急。

最后我尝试了这段代码

<?php $attributes = $_product->getAttributes();

   foreach ($attributes as $attribute) {
         $excludeAttr = array();echo $attribute->getIsVisibleOnFront() ;
        if ( !in_array($attribute->getAttributeCode(), $excludeAttr)) {
            $value = $attribute->getFrontend()->getValue($_product);echo $value;
        if (!$_product->hasData($attribute->getAttributeCode())) {
                $value = Mage::helper('catalog')->__('N/A');
            } elseif ((string)$value == '') {
                $value = Mage::helper('catalog')->__('No');
            } elseif ($attribute->getFrontendInput() == 'price' && is_string($value)) {
                $value = Mage::app()->getStore()->convertPrice($value, true);
            }

            if (is_string($value) && strlen($value)) {
                $data[$attribute->getAttributeCode()] = array(
                    'label' => $attribute->getStoreLabel(),
                    'value' => $value,
                    'code'  => $attribute->getAttributeCode()
                );
            }
        }
    }

 if($_additional = $data): ?>

<h2><?php echo $this->__('Additional Information') ?></h2>
<table class="data-table" id="product-attribute-specs-table">
    <col width="25%" />
    <col />
    <tbody>
    <?php foreach ($_additional as $_data): ?>
        <tr>
            <th class="label"><?php echo $this->htmlEscape($this->__($_data['label'])) ?></th>
            <td class="data"><?php echo $_helper->productAttribute($_product, $_data['value'], $_data['code']) ?></td>
        </tr>
    <?php endforeach; ?>
    </tbody>
</table>
<script type="text/javascript">decorateTable('product-attribute-specs-table')</script>

但它显示了所有属性,但我想只显示是/否类型的属性,其值为yes。当我使用这段代码时,还有一个问题:

 if ($attribute->getIsVisibleOnFront() && !in_array($attribute->getAttributeCode(), $excludeAttr)) {

返回false。它不明白为什么这个语句会返回false。

1 个答案:

答案 0 :(得分:1)

最后我得到了解决方案。基本上我添加了这个条件

<?php if ($_product->getAttributeText($_data['code']) == "Yes"): ?>

它开始工作