Список товаров построчно + артикул

Статус
В этой теме нельзя размещать новые ответы.

Vell61

Создатель
Заблокирован
Регистрация
26 Июл 2009
Сообщения
58
Реакции
0
  • Автор темы
  • Заблокирован
  • #1
1) Подскажите изменил шаблон списка товаров под себя т.е. чтоб было вида: |КОД|НАИМЕНОВАНИЕ|НАЛИЧИЕ|ЦЕНА|ЗАКАЗ|

вот код:

HTML:
<!-- START BLOCK : block_product_row --> 
<table class="tbl" width="100%">
<tr>
<th>Сравнить</th> 
<th width="50%">Наименование</th>
<th>Наличие</th>
<th>Цена</th>
<th>Заказ</th>
</tr>

<tr>
<td align="center">
<!-- START BLOCK : block_compare_elements -->
<!-- <input type="checkbox" name="compare[]" value="{prod_id}" id="{prod_id}">&nbsp;<a href="#" onclick="if(checkForm(document.getElementById('frmCompareProd')) == true) { document.getElementById('frmCompareProd').submit(); } return false;">сравнить</a><br> -->
<div class="compare" id="compare_prd{prod_id}">
<!--input type="checkbox" name="compare[]" value="{prod_id}" title="Выбрать для сравнения">&nbsp;-->
<a href="" onclick="return addPrdForCompare({prod_id});" title="Добавить для сравнения">[+]</a><br><br>
</div>
<!-- END BLOCK : block_compare_elements -->
<!-- START BLOCK : block_compare_elements_no -->
<!-- <a href="#" onclick="if(checkForm(document.getElementById('frmCompareProd')) == true) { document.getElementById('frmCompareProd').submit(); } return false;">сравнить</a><br><br> -->
<!-- END BLOCK : block_compare_elements_no -->
</td>
<td><a href="{prod_link}">{prod_title}</a>&nbsp;{prod_descr}</td>
<td align="center">{prod_availability}</td>
<td align="center">{prod_price}</td>
<td align="center"><form action="{add_to_cart_action}" method="post" name="addToCart{id}" enctype="multipart/form-data">
<input type="text" name="qty" value="" size="3" maxlength="5">
<input type="hidden" name="id" value="{prod_id}">
<button type="submit" onclick="addGoodsToCart(this.form); return false;" style="background: #FFFFFF;"><img src="/i/ico_basket.gif" alt="Добавить в корзину" title="Добавить в корзину"></button>
</form></td>
</tr>
</table>
<!-- END BLOCK : block_product_row -->

получается так см. скрин = Список товаров1.gif
если поменять так:

HTML:
<table class="tbl" width="100%">
<tr>
<th>Сравнить</th> 
<th width="50%">Наименование</th>
<th>Наличие</th>
<th>Цена</th>
<th>Заказ</th>
</tr>
<!-- START BLOCK : block_product_row -->
<tr>
<td align="center">
<!-- START BLOCK : block_compare_elements -->
<!-- <input type="checkbox" name="compare[]" value="{prod_id}" id="{prod_id}">&nbsp;<a href="#" onclick="if(checkForm(document.getElementById('frmCompareProd')) == true) { document.getElementById('frmCompareProd').submit(); } return false;">сравнить</a><br> -->
<div class="compare" id="compare_prd{prod_id}">
<!--input type="checkbox" name="compare[]" value="{prod_id}" title="Выбрать для сравнения">&nbsp;-->
<a href="" onclick="return addPrdForCompare({prod_id});" title="Добавить для сравнения">[+]</a><br><br>
</div>
<!-- END BLOCK : block_compare_elements -->
<!-- START BLOCK : block_compare_elements_no -->
<!-- <a href="#" onclick="if(checkForm(document.getElementById('frmCompareProd')) == true) { document.getElementById('frmCompareProd').submit(); } return false;">сравнить</a><br><br> -->
<!-- END BLOCK : block_compare_elements_no -->
</td>
<td><a href="{prod_link}">{prod_title}</a>&nbsp;{prod_descr}</td>
<td align="center">{prod_availability}</td>
<td align="center">{prod_price}</td>
<td align="center"><form action="{add_to_cart_action}" method="post" name="addToCart{id}" enctype="multipart/form-data">
<input type="text" name="qty" value="" size="3" maxlength="5">
<input type="hidden" name="id" value="{prod_id}">
<button type="submit" onclick="addGoodsToCart(this.form); return false;" style="background: #FFFFFF;"><img src="/i/ico_basket.gif" alt="Добавить в корзину" title="Добавить в корзину"></button>
</form></td>
</tr>
</table>
<!-- END BLOCK : block_product_row -->

то ваще только первая позиция попадает в таблицу... см. скрин =Список товаров2.gif

Не могу понять в чем прикол =( Подскажите как исправить?!

2) Подскажите не получилось вытащить КОД товара через {product_code} ! Как я понял надо править код продукта, проще не как?=)
 

Вложения

  • Список товаров1.gif
    Список товаров1.gif
    22,9 KB · Просмотры: 23
  • Список товаров2.gif
    Список товаров2.gif
    15,4 KB · Просмотры: 19
по первому - во втором варианте нужно </table> вынести и поставить после <!-- END BLOCK : block_product_row -->

по второму - только править скрипт каталога функцию getProdsOfSubCategs
 
  • Автор темы
  • Заблокирован
  • #3
1) Разобрался... СПС биг! Терь красиво :yahoo:

2) Помочь могеш? Или подскажи плиз что там подправить, попробую мож сам разобраться...
 
  • Автор темы
  • Заблокирован
  • #4
Вот эта функция, добаваил выделенное...
Код:
function getProdsOfSubCategs($prp = NULL, $how = '', $start = 1, $parent_title) {
        global $db, $server, $lang, $CONFIG, $baseurl;
        $prp = (int)$prp;
        $how = (int)$how;
        $start = $start > 1 ? intval($start) : 1;
        $ctgr = $this->getCategory($prp);
        $clnt_price = 'prod_price_'.(@$_SESSION['siteuser']['client_type'] ? $_SESSION['siteuser']['client_type'] : '1');
        if ($ctgr) {
            $db->query('SELECT DISTINCT P.id, product_title, product_inf, product_description, image_middle, image_big,
                               price_1, price_2, price_3, price_4, price_5, currency, novelty, product_availability,
							   if(alias is not null and alias!=\'\', alias, P.id) as alias, group_title, ptype_name, PT.link as ptype_link
                               FROM '.$this->table_prefix.'_catalog_products AS P
                               LEFT JOIN '.$this->table_prefix.'_catalog_groups AS G ON P.group_id = G.id
                               LEFT JOIN '.$this->table_prefix.'_catalog_ptypes AS PT ON P.ptype_id = PT.id
                               WHERE category_id = '.$prp.' AND P.active = 1
                               ORDER BY P.'.$CONFIG['catalog_prod_order_by']
                .($how > 0 ? " LIMIT ".(($start-1)*$how).",".$how : ''));
            if ($db->nf() > 0) {               
            	$add_to_cart_link = Core::formPageLink($CONFIG['shop_page_link'], $CONFIG['shop_page_address'], $lang);
            	$add_to_cart_link .= (FALSE === strpos($add_to_cart_link, "?") ? "?" : "&")."action=addtocart&id=";
            	$ids = array();
                for($i = 0; $i < $db->nf(); $i++) {
                    $db->next_record();
                    $img = $db->f('image_middle');
                    $img = $img && file_exists(RP.$CONFIG['catalog_img_path'].$img) ? "/".$CONFIG['catalog_img_path'].$img : "";
                    $b_img = $db->f('image_big');
                    $b_img = $b_img && file_exists(RP.$CONFIG['catalog_img_path'].$b_img) ? "/".$CONFIG['catalog_img_path'].$b_img : "";
                    $arr[$i]['prod_num']			= ($i+1);
                    $arr[$i]['prod_id']				= $prod_id = $db->f('id');
                    $arr[$i]['prod_alias']			= $db->f('alias');
                    $arr[$i]['prod_link']			= $this->getProdLink($baseurl, $db->f('alias'), $prod_id, $ctgr['ctgr_alias']);
                    $arr[$i]['prod_title']			= $db->f('product_title');
///////////////////////вот что добавил//////////////////////
					$arr[$i]['prod_code']		    = $db->f('product_code');
////////////////////////////////////////////////////////////
                    $arr[$i]['prod_descr']			= nl2br($db->f('product_inf'));
                    $arr[$i]['prod_image']			= $img;
                    $arr[$i]['prod_image_big']		= $b_img;
                    $arr[$i]['parent_title']		= $parent_title;
                    $arr[$i]['prod_price_1']		= $this->getCostWithTaxes($db->f('price_1'));
                    $arr[$i]['prod_price_2']		= $this->getCostWithTaxes($db->f('price_2'));
                    $arr[$i]['prod_price_3']		= $this->getCostWithTaxes($db->f('price_3'));
                    $arr[$i]['prod_price_4']		= $this->getCostWithTaxes($db->f('price_4'));
                    $arr[$i]['prod_price_5']		= $this->getCostWithTaxes($db->f('price_5'));
                    $arr[$i]['prod_price']			= $arr[$i][$clnt_price];
                    $arr[$i]['prod_currency']		= $CONFIG['catalog_currencies'][$db->f('currency')];
                    $arr[$i]['prod_novelty']		= $db->f('novelty');
                    $arr[$i]['prod_currency_name']	= $this->currencies[$db->f('currency')];
                    $arr[$i]['prod_availability']	= $db->f('product_availability');
                    $arr[$i]['add_to_cart_link']	= $add_to_cart_link.$prod_id;
                    $arr[$i]['group_title']			= $db->f('group_title');
                    $arr[$i]['ptype_name']			= $db->f('ptype_name');
                    $arr[$i]['ptype_link']			= $db->f('ptype_link');
                    $ids[$prod_id] = $i;
                }
                $this->setPropValForProdList($arr);
                return $arr;
            }
        }
        return FALSE;
    }
не хочет показывать код =(

Добавлено через 7 минут
ВСЕ СПС за подсказку, РАЗОБРАЛСЯ САМ!!! :yahoo:

кому интересно вот код:

Код:
function getProdsOfSubCategs($prp = NULL, $how = '', $start = 1, $parent_title) {
        global $db, $server, $lang, $CONFIG, $baseurl;

        $prp = (int)$prp;
        $how = (int)$how;
        $start = $start > 1 ? intval($start) : 1;
        $ctgr = $this->getCategory($prp);
        $clnt_price = 'prod_price_'.(@$_SESSION['siteuser']['client_type'] ? $_SESSION['siteuser']['client_type'] : '1');

        if ($ctgr) {
            $db->query('SELECT DISTINCT P.id, product_title, product_code, product_inf, product_description, image_middle, image_big,
                               price_1, price_2, price_3, price_4, price_5, currency, novelty, product_availability,
							   if(alias is not null and alias!=\'\', alias, P.id) as alias, group_title, ptype_name, PT.link as ptype_link
                               FROM '.$this->table_prefix.'_catalog_products AS P
                               LEFT JOIN '.$this->table_prefix.'_catalog_groups AS G ON P.group_id = G.id
                               LEFT JOIN '.$this->table_prefix.'_catalog_ptypes AS PT ON P.ptype_id = PT.id
                               WHERE category_id = '.$prp.' AND P.active = 1
                               ORDER BY P.'.$CONFIG['catalog_prod_order_by']
                .($how > 0 ? " LIMIT ".(($start-1)*$how).",".$how : ''));
            if ($db->nf() > 0) {               
            	$add_to_cart_link = Core::formPageLink($CONFIG['shop_page_link'], $CONFIG['shop_page_address'], $lang);
            	$add_to_cart_link .= (FALSE === strpos($add_to_cart_link, "?") ? "?" : "&")."action=addtocart&id=";
            	$ids = array();
                for($i = 0; $i < $db->nf(); $i++) {
                    $db->next_record();
                    $img = $db->f('image_middle');
                    $img = $img && file_exists(RP.$CONFIG['catalog_img_path'].$img) ? "/".$CONFIG['catalog_img_path'].$img : "";
                    $b_img = $db->f('image_big');
                    $b_img = $b_img && file_exists(RP.$CONFIG['catalog_img_path'].$b_img) ? "/".$CONFIG['catalog_img_path'].$b_img : "";
                    $arr[$i]['prod_num']			= ($i+1);
                    $arr[$i]['prod_id']				= $prod_id = $db->f('id');
                    $arr[$i]['prod_alias']			= $db->f('alias');
                    $arr[$i]['prod_link']			= $this->getProdLink($baseurl, $db->f('alias'), $prod_id, $ctgr['ctgr_alias']);
                    $arr[$i]['prod_title']			= $db->f('product_title');
					$arr[$i]['prod_code']		    = $db->f('product_code');
                    $arr[$i]['prod_descr']			= nl2br($db->f('product_inf'));
                    $arr[$i]['prod_image']			= $img;
                    $arr[$i]['prod_image_big']		= $b_img;
                    $arr[$i]['parent_title']		= $parent_title;
                    $arr[$i]['prod_price_1']		= $this->getCostWithTaxes($db->f('price_1'));
                    $arr[$i]['prod_price_2']		= $this->getCostWithTaxes($db->f('price_2'));
                    $arr[$i]['prod_price_3']		= $this->getCostWithTaxes($db->f('price_3'));
                    $arr[$i]['prod_price_4']		= $this->getCostWithTaxes($db->f('price_4'));
                    $arr[$i]['prod_price_5']		= $this->getCostWithTaxes($db->f('price_5'));
                    $arr[$i]['prod_price']			= $arr[$i][$clnt_price];
                    $arr[$i]['prod_currency']		= $CONFIG['catalog_currencies'][$db->f('currency')];
                    $arr[$i]['prod_novelty']		= $db->f('novelty');
                    $arr[$i]['prod_currency_name']	= $this->currencies[$db->f('currency')];
                    $arr[$i]['prod_availability']	= $db->f('product_availability');
                    $arr[$i]['add_to_cart_link']	= $add_to_cart_link.$prod_id;
                    $arr[$i]['group_title']			= $db->f('group_title');
                    $arr[$i]['ptype_name']			= $db->f('ptype_name');
                    $arr[$i]['ptype_link']			= $db->f('ptype_link');
                    $ids[$prod_id] = $i;
                }
                $this->setPropValForProdList($arr);
                
                return $arr;
            }
        }
        return FALSE;
    }

Добавлено через 10 минут
В коде функции добавил ОТОБРАЖЕНИЕ КОДА ТОВАРА в списке товаров для шаблона catalog_products!!!
 
  • Автор темы
  • Заблокирован
  • #5
Еще плиз подскажи в списке отображения товара есть такая вещь как "Новинка" используется код вывода:

Код:
<!-- START BLOCK : block_product_novelty -->
<b>[Новинка]</b>&nbsp;
<!-- END BLOCK : block_product_novelty -->

Так вот как я понимаю что бы "Лидеры продаж" выводились так же, например блоком:

Код:
<!-- START BLOCK : block_orders_leaders -->
<b>[Лидер продаж]</b>&nbsp;
<!-- END BLOCK : block_orders_leaders -->

нужно править функционал в файле class.CatalogPrototype.php...

Какая функция за вывод отвечает? Если не сложно название функции и комментарий в двух словах, заранее благодарен!

Не понятно "Новинкам" присвоена в бд переменная - novelty, а какая "Лидерам продаж"?

Добавлено через 46 минут
Есть разобрался =)))

Надо добавить строки:
Код:
3378 - leader

3414 - $arr[$i]['prod_leader']		= $db->f('leader');

8074 - if ($prod_info["prod_leader"]) {$tpl->newBlock('block_product_leader');}
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху