Magento: cómo mostrar sólo los atributos con cierto valor
En este caso, tenemos un cliente que quiere que sólo los atributos con valor a «Sí» (o TRUE, o «Verdadero», como queráis). ¿Cómo lo conseguimos?
Nos iremos al archivo attribute.phtml del paquete del tema que estamos utilizando, cuya ruta es:
/app/design/frontend/nuestro_tema/paquete_usado/template/catalog/product/view/attribute.phtml
Y buscamos este código:
<?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; ?>
Y lo reemplazamos por este otro:
<?php foreach ($_additional as $_data): ?> <?php $_attribute = $_product->getResource()->getAttribute($_data['code']); if (!is_null($_product->getData($_attribute->getAttributeCode())) && ((string)$_attribute->getFrontend()->getValue($_product) != 'No')) { ?> <tr> <td><?php echo $this->htmlEscape($this->__($_data['label'])) ?></td> </tr> <?php } ?> <?php endforeach; ?>
Obviamente, en el punto del código donde pone ‘No’, podemos poner
((string)$_attribute->getFrontend()->getValue($_product) != 'FALSE')) ó ((string)$_attribute->getFrontend()->getValue($_product) == 'TRUE')) ó ((string)$_attribute->getFrontend()->getValue($_product) != 'Falso')) . . . etc
0 comments