2017-01-05 2 views
0

У меня есть блок, который отображается на моей домашней странице, где отображается продукт, идентификатор которого мы указываем. Код на домашней странице (статический блок) выглядит следующим образом:Показать случайный продукт на домашней странице через phtml

{{block type="core/template" product_id="2559" template="catalog/product/one_product.phtml"}} 

one_product.phtml файл содержит этот код:

<?php 
    $productId = $this->getProduct_id(); 
    $product = Mage::getModel('catalog/product')->load($productId); //load product         
?> 
<div class="product"> 
    <a href="<?php echo $product->getProductUrl() ?>" > 
    <img class="product-img" src="<?php echo $this->helper('catalog/image')->init($product, 'image'); ?>"alt="<?php echo $this->htmlEscape($product->getName()) ?>" /> 
    </a> 
    </div> 
    <div class="product-detail"> 
    <P><?php // echo $this->htmlEscape($product->getName()) ?> 
<?php $prod_name = $this->htmlEscape($product->getName()); ?> 
        <?php 
        $count_str = strlen($prod_name); 
        if ($count_str < 40) { 
         echo $prod_name; 
        } else { 
         $offset = 0; 
         $length = 41; 
         $prod_name = html_entity_decode($prod_name);      
         echo htmlentities(mb_substr($prod_name,0,$length,'utf-8')). "...";;       
        } 
        ?> 
</P> 
    <!--?php $price = $product->getPrice() ; ?--> 
    <?php $_product = Mage::getModel('catalog/product')->load($product->getId()); 
     $productBlock = $this->getLayout()->createBlock('catalog/product_price'); 
     ?> 
    <span> 
     <?php echo $productBlock->getPriceHtml($_product); ?> 
     <?php $tier_price = end($_product->getTierPrice()); 
     if($tier_price !='0'){ ?> 
     <span>As Low As:</span> 
    <?php 
     echo "&nbsp; ₹&nbsp;".number_format($tier_price['price']); 
     } ?> 
    <button type="button" title="<?php echo $this->__('Add to Cart') ?>" class="button btn-cart" 
    onclick="setLocation('<?php echo Mage::helper('checkout/cart')->getAddUrl($product); ?>')"> 
    </span> 
</div> 

Поэтому в основном я хочу, чтобы показать случайную продукцию не из тех, которые я указую отделенный через запятую. Например, я указываю в статическом блоке product_id = "2559,2661,2857,9293", и он должен отображать любой из этих 4 продуктов случайным образом.

Каков способ сделать это?

Также любой способ заставить его вытащить изделия из SKU? Поскольку мы помним все SKU, но мы должны проверять каждый идентификатор продукта каждый раз, когда мы меняем продукт здесь.

Прошу извинить меня, если вопрос слишком прост, я не разработчик. Вы можете увидеть это в действии на www.giftzila.com

Спасибо!

ответ

1

Создать новый файл под названием случайный-product.phtml на приложение/дизайн/интерфейс/по умолчанию/Your_Theme/шаблон/каталог/случайных product.phtml затем добавить следующий код в файле

<?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="main-binder"> 
    <div class="cms-box"> 
    <div class="category-title"> 
     <h2>Random Products</h2> 
    </div> 
    <div class="category-products"> 
    <table id="products-grid-table" class="products-grid"> 
    <?php 
    $k=0; 
    for ($i=0; $i < $number_of_products; $i++): ?> 
    <?php if ($k == 0) { ?> 
      <tr class="first odd"> 
     <?php } if($k==3) { $k=0; ?> 
      </tr><tr class="first odd even"> 
     <?php } ?> 
      <td id="td_<?php echo ($k+1); ?>" <?php if($k==3){ ?>class="last"<? } ?> > 
     <div class="cms-box"> 
       <div id="cont_<?php echo ($k+1); ?>"> 
       <div class="product-name-block"> 
        <?php 
        $pname=$this->htmlEscape($displayed_products[$random_products[$i]]->getName()); 
        ?> 
        <h3 class="product-name"> 
        <a href="<?php echo $displayed_products[$random_products[$i]]->getProductUrl()?>" title="<?php echo $pname; ?>"> 
        <?php if(strlen($pname) > 28) {echo substr($pname,0,25)."...";}else {echo $pname;}?> 
        </a></h3> 
       </div> 
       <div class="image-box"> 
       <a class="product-image" href="<?php echo $displayed_products[$random_products[$i]]->getProductUrl()?>"> <img src="<?php echo $this->helper('catalog/image')->init($displayed_products[$random_products[$i]], 'small_image')->resize(140);?>" alt="<?php echo $this->htmlEscape($displayed_products[$random_products[$i]]->getName())?>" title="<?php echo $this->htmlEscape($displayed_products[$random_products[$i]]->getName())?>"/> </a> 
       </div> 
       <div class="cms-price-box" style=" text-align:center;"> 
        <span class="regular-price" id="product-price-37"> 
         <span class="price" ><?php echo Mage::app()->getLocale()->currency(Mage::app()->getStore()-> 
    getCurrentCurrencyCode())->getSymbol().$displayed_products[$random_products[$i]]->getPrice(); ?></span> 
        </span> 
       </div> 
       <div class="button-row" style="text-align:center;"> 
          <button onclick="setLocation('<?php echo $displayed_products[$random_products[$i]]->getProductUrl();?>')" class="button" type="button"><span><span><span>Details</span></span></span></button> 
        <button onclick="setLocation('<?php echo $this->getUrl('')."/checkout/cart/add?product=".$displayed_products[$random_products[$i]]->getId()."&qty=1" ?>')" class="button"><span><?php echo $this->__('Add to Cart') ?></span></button> 
       </div> 
       </div> 
     </div></td> 
<?php $k++; ?> 
<?php endfor;?> 
</tr> 
     </table> 
    </div> 
    </div> 
</div> 
<?php endif;?> 

сейчас блокировки вызовов на домашней странице cms, добавив следующий код: -

{{block type="catalog/product_list" category_id="3" num_products="8" template="catalog/random-product.phtml"}} 
Смежные вопросы