Sto creando un blocco "Prodotto del mese" per il footer. Dovrebbe caricare i prodotti di una categoria e mostrare il primo.Magento: mostra i prodotti di una categoria specifica nel footer
Questo è il mio file di modello custom/featured-product.phtml
:
<?php $_productCollection = $this->getLoadedProductCollection() ?>
<div class="featured-product">
<h2><?php echo $this->__('Product of the Month') ?></h2>
<?php foreach ($_productCollection as $_product): ?>
<div class="item">
<a class="product-image" href="<?php echo $_product->getProductUrl() ?>">
<img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(200); ?>" alt="<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>" />
</a>
<a class="product-name" href="<?php echo $_product->getProductUrl() ?>"><?php echo $this->htmlEscape($_product->getName()) ?></a>
<?php echo $this->getPriceHtml($_product, true) ?>
</div>
<?php
// Note: Exit after first product.
break;
?>
<?php endforeach ?>
</div>
E 'solo una versione semplificata del modello di elenco dei prodotti di Magento: catalog/product/list.phtml
FUNZIONA
Quando incorporare il blocco in un CMS pagina, è funziona bene. Esempio:
{{block type="catalog/product_list" category_id="13" template="custom/featured-product.phtml" }}
NON FUNZIONANTE
Quando l'incorporamento del blocco via local.xml
, fallisce. Viene restituito il markup corretto ma la categoria specificata non viene caricata. Invece un casuale (non so come sono selezionati) viene caricato un set di prodotti.
Il mio codice in local.xml
:
<default>
<reference name="footer">
<block type="catalog/product_list" name="custom.featuredProduct" as="product_of_the_month" category_id="13" template="custom/featured-product.phtml" />
</reference>
</default>
Per completezza, sto rendendo il blocco in modo esplicito nel page/html/footer.phtml
in questo modo:
<?php echo $this->getChildHtml('product_of_the_month') ?>
Tutte le idee?
La mia ipotesi migliore è che il mio local.xml
non sia corretto. C'è un blocco genitore che devo caricare?
[Aggiornamento]
mio codice originale si blocca la pagina del prodotto. La soluzione alternativa è non basando così tanto il codice sul file principale Magento: catalog/product/list.phtml
. In particolare evitando questa linea:
<?php $_productCollection = $this->getLoadedProductCollection() ?>
[Soluzione]
una versione funzionante con esempi per l'uso in CMS pagine e LayoutXML è incluso qui: https://stackoverflow.com/a/12288000/1497746
'local.xml' - dove si trova questo file? (percorso completo) – FlorinelChis
@FlorinelChis - Questo non è un problema con la gerarchia di fallback dei temi. È il posto normale per un pacchetto personalizzato: /app/design/frontend/custom/custom/layout/local.xml –