Pergunta

Como listaria todas as marcas e imagens em uma página CMS?Estou utilizando um atributo chamado ‘marcas’ e gostaria de chamar cada um e exibir a imagem.Estou usando o código a seguir para exibir na página do produto e funciona muito bem.Todas as imagens da minha marca estão localizadas em /media/wysiwyg/brands/.

<div class="brandImage"
<?php $_product = $this->getProduct(); $manufacturerName = $_product->getAttributeText('brands'); $manufacturerId = $_product->getManufacturer(); echo '<a href="/catalogsearch/result/?manufacturer='.$manufacturerId.'&q='.$manufacturerName.'">' ?> <img src="../media/wysiwyg/brands/<?php echo str_replace(' ', '-',strtolower($manufacturerName)); ?>.png" alt="<?php echo $manufacturerName; ?>" title="<?php echo $this->__('to see more from') ?>&nbsp;<?php echo $manufacturerName; ?>&nbsp;<?php echo $this->__('click here') ?>" /></a>
</div>

Também li que deveria criar um módulo personalizado e usei esta página como exemplo, mas não consigo descobrir como inserir o código php.

Foi útil?

Solução 2

O código que funcionou para mim no meu modelo personalizado foi:

<?php
/**
 * Brand Listing
 *
 *
 */
?>

<?php
$product = Mage::getModel('catalog/product');

$attributes = Mage::getResourceModel('eav/entity_attribute_collection')
    ->setEntityTypeFilter($product->getResource()->getTypeId())
    ->addFieldToFilter('attribute_code', 'brands');

$attribute = $attributes->getFirstItem()->setEntity($product->getResource());

$manufacturers = $attribute->getSource()->getAllOptions(false);

?>
<ul id="manufacturer_list">
    <?php foreach ($manufacturers as $manufacturer): ?>
        <li><a href="/catalogsearch/advanced/result/?brands[]=<?php echo $manufacturer['value'] ?>">
        <img src="/media/wysiwyg/brands/<?php echo str_replace(' ', '-',strtolower($manufacturer['label']))?>.png" alt="<?php echo $manufacturer['label'] ?>" title="<?php echo 'View products from &nbsp;' . $manufacturer['label'] ?>" /></a></li>
    <?php endforeach; ?>
</ul>

E para que a busca funcione, certifique-se que no Magento Admin o atributo está configurado para ser usado na Busca Avançada.

Outras dicas

O que eu faria é criar um modelo de cms específico para a página de marcas.Você pode seguir o exemplo aqui para fazer um modelo: https://stackoverflow.com/questions/31765194/add-layout-identifier-in-magento-admin-panel/31766410#31766410

E por dentro template/page/newlayout.phtml

Você copia o template que normalmente usa, mas faz suas edições, ou seja, insere seu código php:

 <div class="brandImage">

                    <?php 

                        $_product = $this->getProduct(); 
                        $manufacturerName = $_product->getAttributeText('brands');
                        $manufacturerId = $_product->getManufacturer(); 
                    ?>

                    <a href="/catalogsearch/result/?manufacturer=<?php echo $manufacturerId.'&q='.$manufacturerName ?>">

                        <img src="../media/wysiwyg/brands/<?php echo str_replace(' ', '-',strtolower($manufacturerName)); ?>.png" alt="<?php echo $manufacturerName; ?>" title="<?php echo $this->__('to see more from') ?>&nbsp;<?php echo $manufacturerName; ?>&nbsp;<?php echo $this->__('click here') ?>" />        
                    </a>

                </div>

Em seguida, vá para a página cms e atribua seu novo layout.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top