2013-07-26 4 views
0

Я добавил атрибут yes/no для своих продуктов, который позволил бы мне отображать на первой странице рекомендуемые продукты (атрибут yes). Теперь я хочу отобразить 1 случайный продукт на моей домашней странице. Это мой код прямо сейчас:Просмотр случайного товара на домашней странице Magento

$show_num_items = 2; 
$show_index_array = array(); 
$index_iterator = 1; 

$_productCollection = Mage::getResourceModel('reports/product_collection') 
    ->addAttributeToSelect('*') 
    ->addAttributeToFilter('type_id', 'configurable'); 

if($_productCollection->getSize()): 
    $show_index_array = range(0,($_productCollection->getSize()-1)); 
    shuffle($show_index_array); 
    $show_index_array = array_slice($show_index_array, 0, $show_num_items); 

    foreach($_productCollection as $_product): 
     $_recommended = $_product->getData('recommend_product'); 
     if($_recommended == 1): 
      if(in_array($index_iterator, $show_index_array)): ?> 
       <div><img src="<?php echo $this->helper('catalog/image')->init($_product, 'image'); ?>" />  
       </div> 
       <dl> 
        <dt><a href="<?php echo $_product->getProductUrl(); ?>"><?php echo $_product->getName(); ?></a></dt> 
        <dd><?php echo $_product->getResource()->getAttribute('short_description')->getFrontend()->getValue($_product); ?></dd> 
        <dd><a href="<?php echo $_product->getProductUrl(); ?>">Read More</a></dd> 
       </dl> 
      <?php endif; 
       $index_iterator++; 
     endif; 
    endforeach; 
endif;    

Это не то, что чистое я знаю, она работает, но есть случаи, в которых он не возвращает продукты и случаи, в которых она возвращает 2. Как я могу сделать это возвращение 1 продукт всегда?

ответ

2

Попробуйте с $show_num_items = 1; и $index_iterator = 0;, и добавить ->addAttributeToFilter('recommend_product', 1); в свою коллекцию

+0

На самом деле, это было то, что я изначально, но нет продуктов показали, таким образом я попытался изменить значение – user1597438

+0

не заметил, что вы испытывали, если продукты были рекомендованы после загрузки коллекции. Таким образом, случайно выбранный продукт может не рекомендоваться, и поэтому ничего не может отображаться. Я отредактировал свой ответ соответственно – blmage

+0

awesome! большое спасибо. – user1597438

Смежные вопросы