[Помощь] Вывод случайных товаров на главную

Тема в разделе "Shop-script", создана пользователем ColobokRU, 5 фев 2010.

Статус темы:
Закрыта.
Модераторы: kadurinho
  1. ColobokRU

    ColobokRU Писатель

    Регистр.:
    13 ноя 2009
    Сообщения:
    4
    Симпатии:
    1
    Уважаемые форумчане, подскажите пожалуйста как реализовать вывод случайных товаров (чтоб количество можно было задавать вручную) из всей базы магазина на главную страницу?
    в поиске я уже был нашел следующее, выводили из категории спец предложения.
    Попробовал вставить код в home.html на главной ночего не отобразилось. В чем может быть проблема?
    у меня установлена версия 281
     
  2. VenomHOLD

    VenomHOLD

    Регистр.:
    14 мар 2009
    Сообщения:
    272
    Симпатии:
    53
    вы путаете темы, эта ветка Shop-script а у вас вебасист
     
  3. mcwolf

    mcwolf Создатель

    Регистр.:
    15 янв 2010
    Сообщения:
    18
    Симпатии:
    4
    ...

    Если у вас Shop-Script Premium то вот код:

    includes/home.php
    PHP:
    <?php
    /*****************************************************************************
     *                                                                           *
     * Shop-Script PREMIUM                                                       *
     * Copyright (c) 2005 WebAsyst LLC. All rights reserved.                     *
     *                                                                           *
     *****************************************************************************/
    ?><?php
        
    // front-end homepage
        //get root categories to be shown in the front-end homepage
        
    $q db_query("SELECT categoryID, name, products_count, picture FROM ".
            
    CATEGORIES_TABLE." WHERE categoryID<>0 and parent=1 ORDER BY sort_order, name") or die (db_error());
        
    $root = array();
        while (
    $row db_fetch_row($q))
        {
            if (!
    file_exists("./products_pictures/$row[3]")) 
                
    $row[3] = "";
            
    $root[] = $row;
        }

        
    //get subcategories of root categories
        
    $query "SELECT categoryID FROM ".CATEGORIES_TABLE." WHERE categoryID<>0 ";
        
    $result = array();
        for (
    $i=0$i<count($root); $i++)
        {
            
    $q db_query("SELECT categoryID, name, products_count, parent FROM ".CATEGORIES_TABLE.
                
    " WHERE categoryID<>0 and parent=".$root[$i][0].
                
    " ORDER BY sort_order, name " ) or die (db_error());
            while (
    $row db_fetch_row($q))
                
    $result[] = $row;
        }
        
    $smarty->assign("root_categories",$root);
        
    $smarty->assign("root_categories_subs",$result);

        
    //special offers
        
    $result = array();
        
    $q db_query("SELECT productID FROM ".SPECIAL_OFFERS_TABLE." order by sort_order") or die (db_error());
        while (
    $row db_fetch_row($q))
        {
            
    $q1 db_query("SELECT productID, name, default_picture, Price, categoryID FROM ".
                        
    PRODUCTS_TABLE.
                        
    " where productID=$row[0]") or die (db_error());
            if (
    $row1 db_fetch_row($q1))
            {
                if ( 
    is_null($row1[2]) )
                    continue;
                
    $picture db_query"select filename, thumbnail, enlarged from ".
                    
    PRODUCT_PICTURES." where photoID=".$row1[2] );
                
    $picture_row db_fetch_row$picture );
                if ( 
    $picture_row )
                {
                     if ( 
    file_exists"./products_pictures/".$picture_row[0] ) )
                    {
                        
    $row1[2] = $picture_row[0];
                        
    $row1[3] = show_price($row1[3]);
                        
    $result[] = $row1;
                    }
                }
            }
        }

        
    $smarty->assign("special_offers",$result);






    //Случайный вывод из всех продуктов 
        
    $result = array(); 
        
    $q db_query("SELECT `categoryID`,`name`,'viewed_times' FROM ".PRODUCTS_TABLE." order by rand() limit 0,5") or die (db_error()); 
        while (
    $row db_fetch_row($q)) 
        { 
            
    $q1 db_query("SELECT productID, name, default_picture, Price, categoryID, list_price FROM ".PRODUCTS_TABLE." where `categoryID`=$row[0] order by rand() limit 0,4") or die (db_error()); 
            if (
    $row1 db_fetch_row($q1)) 
            { 
                if ( 
    is_null($row1[2]) ) 
                    continue; 
                
    $picture db_query"select thumbnail, filename, enlarged from ".PRODUCT_PICTURES." where photoID=".$row1[2] ); 
                
    $picture_row db_fetch_row$picture ); 
                if ( 
    $picture_row 
                { 
                     if ( 
    file_exists"./products_pictures/".$picture_row[0] ) ) 
                    { 
                        
    $row1[2] = $picture_row[1]; 
                        if (
    $row1[3]<$row1[5]){$row1[5] = show_price($row1[5]);}else{$row1[5] ="";} 
                        
    $row1[3] = show_price($row1[3]); 
                        
    $result[] = array($row[1],$row1); 
                    } 
                } 
            } 
        } 
        
    $smarty->assign("all_product",$result);







    ?>
    и templates/frontend/tmplX/home.tpl.html где Х номер шаблона
    PHP:
    {* front-end homepage*}

    {
    $smarty.const.STRING_GREETINGS}

    <
    p>
    <
    table width="100%" border="0" cellpadding="5">
    {
    section name=i loop=$root_categories}
    {if 
    $smarty.section.i.index is div by 2}<tr>{/if}
    <
    td width="1%" align="center" valign="top">
        {if 
    $root_categories[i][3ne ""}<a href="index.php?categoryID={$root_categories[i][0]}"><img border=0 src="products_pictures/{$root_categories[i][3]}alt="{$root_categories[i][1]|replace:'"':'&quot;'}">{/if}
    </
    td>
    <
    td width="49%" valign="top">
            <
    a href="index.php?categoryID={$root_categories[i][0]}class="cat">{$root_categories[i][1]}</a> <font class="olive">({$root_categories[i][2]})</font><br>

            {* 
    show sub categories *}
            {
    assign var="tmp" value=0}
            {
    section name=j loop=$root_categories_subs}
              {if 
    $root_categories_subs[j][3] == $root_categories[i][0]}
                
                {if 
    $tmp == 1}<font class="olive">|</font>
                {else}
                    {
    assign var="tmp" value=1}
                {/if}
                
                <
    a href="index.php?categoryID={$root_categories_subs[j][0]}class=standard>{$root_categories_subs[j][1]}</a>
              {/if}
            {/
    section}
    </
    td>

    {if (
    $smarty.section.i.index+1is div by 2}</tr>{/if}
    {/
    section}
    </
    table>



    {* 
    now show special offers *}
    <
    p>
    <
    center>
    <
    table border=0 cellspacing=1 cellpadding=5>
    {
    section name=i loop=$special_offers}
    {if 
    $smarty.section.i.index is div by 2}<tr>{/if}
    <
    td valign=top>

     <
    table border=0 width=100bgcolor=#{$smarty.const.CONF_MIDDLE_COLOR} cellpadding=0 cellspacing=1>
     
    <tr><td>

      <
    table border=0 bgcolor=white width=100%>
       <
    tr>
       <
    td colspan=2><a href="index.php?productID={$special_offers[i][0]}"><img src="products_pictures/{$special_offers[i][2]}border=0></a></td>
       </
    tr>
       <
    tr>
       <
    td align=center><a href="index.php?productID={$special_offers[i][0]}">{$special_offers[i][1]}</a></td>
       <
    td align=right><font color=red><b>{$special_offers[i][3]}</b></font></td>
       </
    tr>
      </
    table>

     </
    td></tr>
     </
    table>

    </
    td>
    {if (
    $smarty.section.i.index+1is div by 2}</tr>{/if}
    {/
    section}
    </
    table>


    {* 
    Случайные товары *}
    <
    b>Случайные товары:</b>
    <
    p style="margin-top: 0; margin-bottom: 0">{* now show all product *}</p>
    <
    center>
    <
    table border=0 cellspacing=0 cellpadding=0 width="150">
    {
    section name=i loop=$all_product}
    {if 
    $smarty.section.i.index is div by 4}<tr>{/if}
    <
    td valign=top width="100%">

      <
    table border=0 bgcolor=white width="160" height=100 cellspacing=0>
       <
    tr>
       <
    td width="168" height="150" align="center" valign="bottom">
        <
    p align="center">
        <
    a href="index.php?productID={$all_product[i][1][0]}">
        <
    img src="products_pictures/{$all_product[i][1][2]}border=0 width="120"></a></td>
       </
    tr>
       <
    tr>
       <
    td align="center" width="168">
        <
    a href="index.php?productID={$all_product[i][1][0]}">{$all_product[i][1][1]}</a></td>
         </
    tr>
       <
    tr>
       <
    td align="center" width="168">
        <
    font color=red><b>{$all_product[i][1][3]}</b></font></td>
       </
    tr>
      </
    table>

    </
    td>
    {if (
    $smarty.section.i.index+1is div by 4}</tr>{/if}
    {/
    section}
    </
    table>
    </
    center>
    ;)
     
  4. exGumator

    exGumator Создатель

    Регистр.:
    11 окт 2009
    Сообщения:
    10
    Симпатии:
    3
    Ну вопшето это считается не лучшим приемом и создает некоторую нагрузку на бд, в свою очередь может создавать и задержку, а тем более для морды это вообще нефантан
     
Статус темы:
Закрыта.