#1 2011-03-06 13:58

admishko
Пользователь

Оформление списков товаров

Здравствуйте, скажите если у меня 3 списка продуктов - акции, хиты, новинки - можно ли для них назначить разное оформление? К примеру новинки у меня выводятся на главной блоком с картинками в одну строчку, чем меньше разрешение, тем меньше товаров видно. В акциях хотелось бы чтобы выводились все товары и с другим оформлением - фоном и т.д. Как это сделать?

Неактивен

 

#2 2011-03-06 23:41

admishko
Пользователь

Re: Оформление списков товаров

Подскажите пожалуйстаа....(

Неактивен

 

#3 2011-03-09 12:25

rat
Администратор

Re: Оформление списков товаров

1. В файле published/SC/html/scripts/modules/cptmanager/_methods/product_lists.php после

Код:

$smarty->assign('__block_height', intval($local_settings['block_height']));

добавьте

Код:

$smarty->assign('list_id', $productList->id);

2. Используйте в файле product_list.html условие вида

Код:

{if $list_id eq 'my_first_list'}
дизайн первого списка
{elseif $list_id eq 'my_second_list'}
дизайн второго списка
{/if}

Неактивен

 

#4 2011-03-09 13:26

admishko
Пользователь

Re: Оформление списков товаров

Спасибо за ответ. Но уже сделал немного по-другому. Привязал к странице, то есть если страница "хиты продаж", то выводить список с таким-то оформлением.

Неактивен

 

#5 2011-05-05 11:48

molokolab
Пользователь

Re: Оформление списков товаров

rat написал:

2. Используйте в файле product_list.html условие вида

Код:

{if $list_id eq 'my_first_list'}
дизайн первого списка
{elseif $list_id eq 'my_second_list'}
дизайн второго списка
{/if}

Сразу еще вопрос.. "дизайн первого списка", "дизайн второго списка" как это на примере? можно ли управлять колонками товаров? имею ввиду применительно к топику: http://forum.webasyst.ru/viewtopic.php?id=10700

Неактивен

 

#6 2011-05-05 14:56

rat
Администратор

Re: Оформление списков товаров

Что значит "управлять"? Пишите нужный HTML-код для каждого списка. В зависимости от того, сколько колонок нужно, такой код и пишите.

Неактивен

 

#7 2011-05-05 15:08

molokolab
Пользователь

Re: Оформление списков товаров

rat написал:

Что значит "управлять"? Пишите нужный HTML-код для каждого списка. В зависимости от того, сколько колонок нужно, такой код и пишите.

rat, разъясните пожалуйста, саму логику не могу понять, например таблица.. Работать нужно как я понимаю в файле product_lists.php:

Код:

<table width="100%" border="1">
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</table>

и сам список:

Код:

$smarty->assign('__block_height', intval($local_settings['block_height']));

Как его можно разделать по ячейкам?

Неактивен

 

#8 2011-05-05 15:48

rat
Администратор

Re: Оформление списков товаров

Почему же product_lists.php? Вроде бы выше писали о product_list.html. В этом файле нужно написать код с использованием HTML+Smarty для отображения списка товаров в нужном вам виде.

Неактивен

 

#9 2011-05-05 16:18

molokolab
Пользователь

Re: Оформление списков товаров

rat написал:

Почему же product_lists.php? Вроде бы выше писали о product_list.html. В этом файле нужно написать код с использованием HTML+Smarty для отображения списка товаров в нужном вам виде.

Все верно, конечно .html, это я ошибся.
А вот как сделать разметку со smarty пока не ясно, буду пытаться..

Неактивен

 

#10 2011-05-05 17:41

rat
Администратор

Re: Оформление списков товаров

Возьмите за образец оригинальную разметку и замените в ней HTML-код на свой. Фрагменты, написанные на Smarty, нужно оставить, как есть.

Неактивен

 

#11 2011-05-13 16:18

molokolab
Пользователь

Re: Оформление списков товаров

rat написал:

Возьмите за образец оригинальную разметку и замените в ней HTML-код на свой. Фрагменты, написанные на Smarty, нужно оставить, как есть.

Я пробовал адаптировать для product_list советы для product_related_products из темы http://forum.webasyst.ru/viewtopic.php?id=5637 не выходит,

Потом я пробовал адаптировать ваш пост#10 из темы http://forum.webasyst.ru/viewtopic.php?id=9527 , но тоже понять не могу..
Если я полностью меняю весь код на ваш, то появляются столбцы, правда совсем в чужой разметке, ну и код там для другого случая..

rat, дайте наводку, хочу получить
http://img814.imageshack.us/img814/3348/61879816.jpg
*сиреневые пометки не имеют значения

Отредактировано molokolab (2011-05-13 16:33)

Неактивен

 

#12 2011-05-17 17:11

molokolab
Пользователь

Re: Оформление списков товаров

Друзья, коллеги, не бросайте подскажите

Неактивен

 

#13 2011-05-17 17:53

rat
Администратор

Re: Оформление списков товаров

Что конкретно вам непонятно из комментария #10?

Неактивен

 

#14 2011-05-17 20:47

molokolab
Пользователь

Re: Оформление списков товаров

Мне не совсем понятна конструкция  таблица и smarty
Я поэкспериментировал и получил вот такой код:

Код:

<table align="center" cellpadding="0" cellspacing="0"{if $list_id eq 'list1'} style="width:100%;"{/if}>
<tr>
<td>
<ul class="product_list"{if $list_id eq 'list1'} style="width: 500px; margin: 0pt auto;"{/if}>
{foreach from=$__products item=_product}
{if $_product.slug}
{assign var=_product_url value="?productID=`$_product.productID`&product_slug=`$_product.slug`"|set_query_html}
{else}
{assign var=_product_url value="?productID=`$_product.productID`"|set_query_html}
{/if}
<li style="width: {$smarty.const.CONF_PRDPICT_THUMBNAIL_SIZE+45}; height: {if $__block_height}{$__block_height}{elseif $_product.thumbnail}{$smarty.const.CONF_PRDPICT_THUMBNAIL_SIZE+120}{else}1{/if};">

{if $_product.thumbnail}

<table  cellpadding="0" cellspacing="0" style="width: {$smarty.const.CONF_PRDPICT_THUMBNAIL_SIZE}; height: {$smarty.const.CONF_PRDPICT_THUMBNAIL_SIZE};">
    <tr><td>

<a href="{$_product_url}"><img src="{$smarty.const.URL_PRODUCTS_PICTURES}/{$_product.thumbnail|escape:'url'}" alt="{$_product.name|escape:'html'}"></a>
</td></tr></table>
{/if}


    <h4 align="left"><a href="{$_product_url}">{$_product.name|truncate:30:"..."}</a></h4>
    <p class="price" align="left">

    <span class="new">{if $_product.Price}{$_product.price_str}{/if}</span>
    </p>


</li>


{/foreach}
</ul>

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

Но таким образом я немогу сообразить как взять стили из старой верстки:

Код:

{foreach from=$__products item=_product name=i}

{if $smarty.foreach.i.index%4==0}<div class="clear"></div>{/if}

{if $_product.slug}

{assign var=_product_url value="?productID=`$_product.productID`&product_slug=`$_product.slug`"|set_query_html}

{else}

{assign var=_product_url value="?productID=`$_product.productID`"|set_query_html}

{/if}

<div class="single-lot">
    {if $_product.thumbnail}
        <a href="{$_product_url}"><img src="{$smarty.const.URL_PRODUCTS_PICTURES}/{$_product.thumbnail|escape:'url'}" alt="{$_product.name|escape:'html'}"></a>
    {/if}
    <h4 align="left"><a href="{$_product_url}">{$_product.name|truncate:30:"..."}</a></h4>
    <p class="price" align="left">

    <span class="new">{if $_product.Price}{$_product.price_str}{/if}</span>
    </p>
    

    
</div>
{/foreach}

Чтобы товары были как на картинке:
http://img4.imageshack.us/img4/381/unled1jf.png

Неактивен

 

#15 2011-05-18 10:45

rat
Администратор

Re: Оформление списков товаров

Попробуйте так:

Код:

<table>
{assign var=columns value=3}
{foreach from=$__products item=_product name=_product}
{if $smarty.foreach._product.index is div by $columns}<tr>{/if}
<td style="width: {$smarty.const.CONF_PRDPICT_THUMBNAIL_SIZE+20}; height: {if $__block_height}{$__block_height}{elseif $_product.thumbnail}{$smarty.const.CONF_PRDPICT_THUMBNAIL_SIZE+45}{else}55{/if};">
{if $_product.slug}
{assign var=_product_url value="?productID=`$_product.productID`&product_slug=`$_product.slug`"|set_query_html}
{else}
{assign var=_product_url value="?productID=`$_product.productID`"|set_query_html}
{/if}

{if $_product.thumbnail}
<table cellpadding="0" cellspacing="0" style="width: {$smarty.const.CONF_PRDPICT_THUMBNAIL_SIZE}; height: {$smarty.const.CONF_PRDPICT_THUMBNAIL_SIZE};"><tr><td valign="bottom" align="center">
<a href="{$_product_url}"><img src="{$smarty.const.URL_PRODUCTS_PICTURES}/{$_product.thumbnail|escape:'url'}" alt="{$_product.name|escape:'html'}"></a>
</td></tr></table>
{/if}

<a href="{$_product_url}">{$_product.name}</a>
{if $_product.Price}<div class="totalPrice">{$_product.price_str}</div>{/if}

</td>
{if ($smarty.foreach._product.index+1) is div by $columns}</tr>{/if}
{/foreach}
</table>

В строке

Код:

{assign var=columns value=3}

укажите нужное кол-во столбцов.

Неактивен

 

#16 2011-05-18 16:12

molokolab
Пользователь

Re: Оформление списков товаров

rat, спасибо! Все сделал, хотя мне осталось неясны некоторые моменты.
Главное что задача решилась, теперь можно в свободное время поковыряться подумать..

Неактивен

 

#17 2011-05-18 16:43

rat
Администратор

Re: Оформление списков товаров

Поправил третью с конца строку в предложенном коде (вместо <tr> стало </tr>):

Код:

{if ($smarty.foreach._product.index+1) is div by $columns}</tr>{/if}

Неактивен

 

#18 2011-09-23 10:27

sitennov
Пользователь

Re: Оформление списков товаров

rat написал:

1. В файле published/SC/html/scripts/modules/cptmanager/_methods/product_lists.php после

Код:

$smarty->assign('__block_height', intval($local_settings['block_height']));

добавьте

Код:

$smarty->assign('list_id', $productList->id);

2. Используйте в файле product_list.html условие вида

Код:

{if $list_id eq 'my_first_list'}
дизайн первого списка
{elseif $list_id eq 'my_second_list'}
дизайн второго списка
{/if}

Скажите пожалуйста, данное изменение работает на Версии: 305 Дата установки: 2011-09-16 ?
После всех изменений выводится только один список?

Неактивен

 

#19 2011-09-23 12:34

rat
Администратор

Re: Оформление списков товаров

1. Работает.
2. После всех изменений выполняется то, для чего был написан этот код — т. е. каждый список товаров отображается с той версткой и оформлением, которые для него указаны в коде.

Неактивен

 

#20 2011-09-23 12:41

mdss
Пользователь

Re: Оформление списков товаров

rat написал:

1. Работает.
2. После всех изменений выполняется то, для чего был написан этот код — т. е. каждый список товаров отображается с той версткой и оформлением, которые для него указаны в коде.

дебаг показывает что есть только один список. Ошибиться в исправлении кода просто негде. Вот он на всякий случай

Код:

<?php
    $local_settings = &$Args[0]['local_settings'];

    if(!$local_settings['list_id'])return;
    
    $productList = new ProductList();
    $res = $productList->loadByID($local_settings['list_id']);
    if(!$res)return;
    
    $products = $productList->getProducts(true);
    
    $Register = &Register::getInstance();
    $smarty = &$Register->get(VAR_SMARTY);
    /* @var $smarty Smarty */

    $smarty->assign('__products', $products);
    $smarty->assign('__block_height', intval($local_settings['block_height']));
    $smarty->assign('list_id', $productList->id);
    $smarty->display('product_list.html');
?>

шаблон здесь http://pastebin.mozilla.org/1334843

Неактивен

 

#21 2011-09-23 12:51

rat
Администратор

Re: Оформление списков товаров

Чего вы пытались добиться с помощью такого кода в шаблоне?

Неактивен

 

#22 2011-09-23 12:54

mdss
Пользователь

Re: Оформление списков товаров

вывода списков. Если условие ставить после конструкции foreach, тогда не добиться желаемого результата по оформлению блоков

Неактивен

 

#23 2011-09-23 12:59

rat
Администратор

Re: Оформление списков товаров

mdss написал:

вывода списков

Понятно, что не информационных страниц smile Какого конкретно вывода? Или вас любой вывод устроит? )

Неактивен

 

#24 2011-09-23 13:11

mdss
Пользователь

Re: Оформление списков товаров

Вот скрин чистой верстки - http://pics.makexhtml.ru/images/1vsv.jpg
Вот код чистой верстки - http://pastebin.mozilla.org/1334850

Неактивен

 

#25 2011-09-23 15:45

rat
Администратор

Re: Оформление списков товаров

У вас на снимке несколько списков. В коде вы попытались сформировать часть страницы, содержащую несколько списков, тогда как файл шаблона product_list.html используется для формирования только одного списка. Поэтому в этом файле нужно формировать только верстку одного списка. Условие формируйте, как указано в комментарии №3. Затем добавляйте в шаблон сайта следующие блоки:
1. Список №1.
2. Произвольный HTML-код (либо вставку плагина — в зависимости от потребностей) для отображения баннера.
3. Список №2.

Вместо вставки 1 списка (как вы, видимо, пытаетесь сделать сейчас) нужно вставить эти 3 элемента в редакторе дизайна.

Неактивен

 

Board footer

Powered by PunBB