Mam taki problem. Chciałbym ustawić wyświetlanie losowych produktów z danych kategorii (2-3 produkty z kazdej kategorii).
Obecnie wyświetlają mi się najnowsze produkty. Które tak naprawdę ustawia się z panelu. Czy ma ktoś jakiś pomysł jak to rozwiązać?
Z góry dzięki.
Znalazłem pewne rozwiązanie ale tylko połowiczne.
Kod: Zaznacz cały
{{block type="catalog/product_list" category_id="11" num_products="1" template="catalog/random.phtml"}}
i do tego plik random.phtml
Kod: Zaznacz cały
<?php
$chosen_category = Mage::getModel('catalog/category')->load($this->getCategoryId());
$_productCollection = $this->getLoadedProductCollection();
$number_of_products = $this->getNumProducts();
if (sizeof($_productCollection) < $number_of_products) {
$number_of_products = sizeof($_productCollection);
}
$displayed_products = array();
foreach ($_productCollection as $_product) {
$displayed_products[] = $_product;
}
$random_products = array();
if (sizeof($_productCollection) > 1) {
$random_products = array_rand($displayed_products, $number_of_products);
} else {
$random_products = array('0');
}
?>
<?php if(!$_productCollection->getSize()):?>
<div class="note-msg">
<?=$this->__('There are no products matching the selection.')?>
</div>
<?php else:?>
<div class="category-head">
<h2><?=$this->__('Featured products')?></h2>
</div>
<?php for ($i=0; $i < $number_of_products; $i++): ?>
<div class="random">
<a class="image" href="<?=$displayed_products[$random_products[$i]]->getProductUrl()?>"><img src="<?=$this->helper('catalog/image')->init($displayed_products[$random_products[$i]], 'small_image')->resize(75, 75);?>" width="75px" height="75px" alt="<?=$this->htmlEscape($displayed_products[$random_products[$i]]->getName())?>" /></a>
<h3><a href="<?=$displayed_products[$random_products[$i]]->getProductUrl()?>"><?=$this->htmlEscape($displayed_products[$random_products[$i]]->getName())?></a></h3>
<p><?=nl2br($displayed_products[$random_products[$i]]->getShortDescription()) ?></p>
<table>
<tbody>
<tr>
<td class="left"><a class="details" href="<?=$displayed_products[$random_products[$i]]->getProductUrl()?>"><?=$this->__('See details')?></a></td>
<td class="right"><a class="addToCart" href="<?=$this->getAddToCartUrl($displayed_products[$random_products[$i]])?>"><?=$this->__('Add to cart')?></a></td>
</tr>
</tbody>
</table>
</div>
<?php endfor;?>
<?php endif;?>
<p class="dalsi"><a href="<?=$chosen_category->getUrl()?>" title="<?=$this->__('More products from this category ...')?>"><?=$this->__('More products from this category ...')?></a></p>
Pozwala mi to wyświetlić dowolną liczbę produktów ale tylko z jednej kategorii. Ma ktoś może pomysł jak rozbudować to żeby pobierało z kilku? Dajmy na to z kategorii o id=9 i id=10 ?
próbowałem już robić tak:
Kod: Zaznacz cały
{{block type="catalog/product_list" category_id="11" num_products="2" template="catalog/random.phtml"}}
{{block type="catalog/product_list" category_id="9" num_products="2" template="catalog/random.phtml"}}
co jednak wyświetla produkty tylko z jednej kategorii nadal.
Kod: Zaznacz cały
{{block type="catalog/product_list" category_id="11,9" num_products="5" template="catalog/random.phtml"}}
Również nie zadziałało...
Ktoś ma jakiś pomysł?