Перейти к содержимому


Гриппировка товаров из подкатегорий

Гриппировка товаров из ShopCMS

  • Вы не можете ответить в тему
Сообщений в теме: 9

#1 Maximoka

    Новичок

  • Пользователи
  • Pip
  • 8 сообщений
Репутация: 0
Начинающий
  • ГородSPB

Отправлено 30 May 2014 - 09:30 AM

Подскажите пожалуйста, как сделать вывод товаров из подкатегории в категорию но только с иерархией, чтоб товары не просто снизу списком выскакивали, а можно было понять какой товар к какой подкатегории относиться, т.е:
-категория
-подкатегория1
-товар из подкатегории1
-товар из подкатегории1
-товар из подкатегории1
-подкатегория2
-товар из подкатегории2
-товар из подкатегории2
-товар из подкатегории2

Сейчас выводиться в виде
-категория
-подкатегория1
-подкатегория2
-товар из подкатегории1
-товар из подкатегории1
-товар из подкатегории1
-товар из подкатегории2
-товар из подкатегории2
-товар из подкатегории2

Я понял что надо редактировать category.tpl.html, но три дня "танцев с бубнами" не принесли успеха. Заранее спасибо.

Прикрепленные файлы

  • Прикрепленный файл  Untitled-11.jpg   266.29К   8 Количество загрузок:
  • Прикрепленный файл  Untitled-12.jpg   267.53К   6 Количество загрузок:

  • 0

#2 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 30 May 2014 - 11:38 AM

Я понял что надо редактировать category.tpl.html

Я бы использовал то, что в массиве товаров у каждого товара, насколько я помню, присутствует номер категории.
Т.е. выводил бы в category.tpl.html не СНАЧАЛА в цикле все категории, затем в цикле все товары, а внутри цикла вывода категорий для каждой категории выводил бы совпадающие по номеру категории товары.

PS. Там куда более сложные тараканы будут при многостраничном выводе. Разбить-то по категориям не проблема.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#3 Maximoka

    Новичок

  • Пользователи
  • Pip
  • 8 сообщений
Репутация: 0
Начинающий
  • ГородSPB

Отправлено 30 May 2014 - 12:23 PM

Разбить-то по категориям не проблема.

Так собственно только это и требуется. Подскажите как именно это сделать?!

"{* вывод описания подкатегорий (если есть) *}
{if $catrescur}
{section name=r loop=$catrescur}
{if $catrescur[r][3] != ""}
{if $smarty.const.CONF_MOD_REWRITE eq 1}
{assign var="tlink" value=$catrescur[r].name}
{/if}
{include file="header2.tpl.html" header=$tlink}"

------------------------------------------------------------------------------------

"{section name=u loop=$products_to_show}
{if $smarty.section.u.index is div by $smarty.const.CONF_COLUMNS_PER_PAGE}{assign var="helpcounter" value=0}{/if}{assign var="helpcounter" value=$helpcounter+1}
{include file="product_brief.tpl.html" product_info=$products_to_show[u]}
{if ($smarty.section.u.index+1) is div by $smarty.const.CONF_COLUMNS_PER_PAGE || $products_to_show_counter eq $smarty.section.u.index+1
{section name=e loop=$smarty.const.CONF_COLUMNS_PER_PAGE max=$helpcounter}
{assign var="idnrecat" value=$smarty.section.u.index-$helpcounter+$smarty.section.e.index+1}
{/section}
{/if}
{/section}"

Как это состыковать?
  • 0

#4 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 30 May 2014 - 12:59 PM

Так собственно только это и требуется. Подскажите как именно это сделать?!

Ээээ... Подсказать - я уже подсказал. За Вас разобраться и написать, чтоли? :)
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#5 Maximoka

    Новичок

  • Пользователи
  • Pip
  • 8 сообщений
Репутация: 0
Начинающий
  • ГородSPB

Отправлено 30 May 2014 - 01:47 PM

Ну если вам не сложно?! Может договоримся как-нибудь?! Любая работа должна оплачиваться ;)

Как с вами связаться?
  • 0

#6 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 30 May 2014 - 03:17 PM

Пишите в личку. Но это не будет дешево, т.к. придется решать проблему сортировки и корректного расположения товаров-категорий по страницам. Навскидку мне кажется, что чистым редактированием category.tpl.html обойтись не получится.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#7 Maximoka

    Новичок

  • Пользователи
  • Pip
  • 8 сообщений
Репутация: 0
Начинающий
  • ГородSPB

Отправлено 03 June 2014 - 03:50 PM

После долгих мучений всё-таки добился кое-каких успехов, но всё-равно где-то есть недочёт. Может подскажите где косяк?
Вот файл category.tpl.html:

{* шаблон вывода товаров в категориях *}

{assign var="preheader" value="<a href='`$smarty.const.ADMIN_FILE`?categoryID=`$selected_category.categoryID`&amp;eaction=cat' title='`$smarty.const.ADMIN_ADMIN_MENUNEW1`' style='float: right;'>+</a>"}
{if $isadmin eq "yes"}{assign var="postheader" value=`$preheader``$categoryName`}{else}{assign var="postheader" value=$categoryName}{/if}

{* название и ссылки *}

{include file="header.tpl.html" header="Мультимедиа проекторы $postheader"}
<table cellspacing="0" cellpadding="0" width="100%">
<tr>
<td align="left">{if $smarty.const.CONF_SHOW_COUNTPROD eq 1}<span style="float: right;">{$smarty.const.STRING_COUNTPROD}: {$products_to_showc}</span>{/if}<a href="http://www.viking.ru/index.htm" class="pro">{$smarty.const.LINK_TO_HOMEPAGE}</a> &gt;&gt; <a href="http://www.viking.ru...ogue/index.php" class="pro">Каталог Оборудования</a> {section name=i loop=$product_category_path}{if $product_category_path[i].categoryID != 1} &gt;&gt; <a href="{if $smarty.const.CONF_MOD_REWRITE eq 1}category_{$product_category_path[i].categoryID}.html{else}index.php?categoryID={$product_category_path[i].categoryID}{/if}" class="pro">{$product_category_path[i].name} </a> {/if}{/section}</td>
</tr>
</table>
<br>
{* шаблон блока обзора категорий *}

{if $big_categories_tree && $big_categories_tree_count>0}
<table cellspacing="0" cellpadding="0" width="100%">
{counter name='s1' start=-1 skip=1 print=false assign='select_counter_var'}

{section name=h1 loop=$big_categories_tree}
{if $big_categories_tree[h1].categoryID != 1 && $big_categories_tree[h1].parent == 1}

{assign var="tmp" value=0}
{counter name='s1'}
{if ($select_counter_var) is div by 2}<tr>{/if}

<td width="100%" valign="top" align="left">
<table cellspacing="0" cellpadding="0">
<tr>
<td valign="center" align="left" bgcolor="#E8EAEE" height="20">
<div align="left" >
{section name=h2 loop=$big_categories_tree}
{if $big_categories_tree[h2].parent == $big_categories_tree[h1].categoryID && $big_categories_tree[h1].parent == 1}
{if $tmp == 1} {else}{assign var="tmp" value=1}{/if}
<a href="{if $smarty.const.CONF_MOD_REWRITE eq 1}category_{$big_categories_tree[h2].categoryID}.html{else}index.php?categoryID={$big_categories_tree[h2].categoryID}{/if}" class="prop">{$big_categories_tree[h2].name}</a>{if $smarty.const.CONF_SHOW_COUNTPROD eq 1}&nbsp;({$big_categories_tree[h2].products_count}){/if}
{/if}
{/section}
</div>
</td></td>
</tr>
</table>
</td>


{/if}
{/section}
</table>
{/if}


{* вывод описания категории (если есть) *}

{if $selected_category.description}

{if $selected_category.picture}<img src="data/category/{$selected_category.picture}" alt="{$selected_category.name}" align="left">{/if}{$selected_category.description}


{/if}

{* вывод описания подкатегорий (если есть) *}
{if $catrescur}
{section name=r loop=$catrescur}
{if $catrescur[r][1] != ""}
{if $smarty.const.CONF_MOD_REWRITE eq 1}

{*{assign var="tlink" value=$catrescur[r].name}*}
{assign var="tlink" value="<a href='category_`$catrescur[r].categoryID`.html' class='pro'>`$catrescur[r].name`</a>"}
{/if}
{include file="header2.tpl.html" header=$tlink}

{section name=u loop=$products_to_show}

<table cellspacing="1" cellpadding="1" width="100%" >
<tr class="td_osn" cellspacing="2">
<td width="149" align="center" bgcolor="#F1F3F5" class="td_osn"><strong>Фото </strong></td>
<td width="326" bgcolor="#F1F3F5" class="td_osn"><strong>Модель</strong></td>
<td align="center" bgcolor="#F1F3F5" class="td_osn"><strong> ANSI лм </strong></td>
<td align="center" bgcolor="#F1F3F5" class="td_osn"><strong>Разрешение</strong></td>
<td align="center" bgcolor="#F1F3F5" class="td_osn"><strong>Технология</strong></td>
<td align="center" bgcolor="#F1F3F5" class="td_osn"><strong>Контраст</strong></td>
<td align="center" bgcolor="#F1F3F5" class="td_osn"><strong>Вес, кг</strong></td>
<td width="117" align="center" bgcolor="#F1F3F5" class="td_osn"><strong>Цена</strong></td>
</tr>
{if $catrescur[r].categoryID == $products_to_show[u].categoryID}
{include file="product_brief.tpl.html" product_info=$products_to_show[u]}


{/if}

{/section}
</table>

{/if}
{/section}
{/if}

{* вывод ссылок на страницы прикрепленные к категории *}

{if $categorylinkscat}
{include file="header.tpl.html" header=$smarty.const.STRING_CAT_USE_AUX}
<table cellspacing="0" cellpadding="0" width="100%">
<tr>
<td class="hdbtop" align="left">{assign var="sett" value=0}
{section name=icat loop=$categorylinkscat}
<div {if $sett eq 1}style="margin-top: 4px;"{else}{assign var="sett" value=1}{/if}><a href="{if $smarty.const.CONF_MOD_REWRITE eq 1}page_{$categorylinkscat[icat][0]}.html{else}index.php?show_aux_page={$categorylinkscat[icat][0]}{/if}">{$categorylinkscat[icat][1]}</a></div>
{/section}
</td>
</tr>
</table>

{/if}

Прикрепленные файлы

  • Прикрепленный файл  Untitled-1.png   100.67К   5 Количество загрузок:

  • 0

#8 Maximoka

    Новичок

  • Пользователи
  • Pip
  • 8 сообщений
Репутация: 0
Начинающий
  • ГородSPB

Отправлено 04 June 2014 - 12:16 PM

Всё получилось!!! Может кому-нибудь пригодится:

{if $catrescur}
{section name=r loop=$catrescur}
{if $catrescur[r] != ""}
{if $smarty.const.CONF_MOD_REWRITE eq 1}
{assign var="tlink" value=$catrescur[r].name}
{*{assign var="tlink" value="<a href="category_`$catrescur[r].categoryID`.html" class="pro">`$catrescur[r].name`</a>"}*}
{/if}
{include file="header.tpl.html" header=$tlink}
{if $catrescur[r].products_count != 0}
{assign var="u" value=0}
{section name=u loop=$products_to_show}
{if $catrescur[r].categoryID == $products_to_show[u].categoryID}
{include file="product_brief.tpl.html" product_info=$products_to_show[u]}
{/if}
{/section}
{/if}
{/if}
{/section}
{/if}


2badisoft:

Навскидку мне кажется, что чистым редактированием category.tpl.html обойтись не получится.


Получилось всё сделать одной строчкой!

Прикрепленные файлы

  • Прикрепленный файл  Untitled-2.png   108.99К   11 Количество загрузок:

  • 0

#9 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 04 June 2014 - 05:12 PM

Получилось всё сделать одной строчкой!

Для простыни в стопицот товаров на полчаса загрузки - не вопрос. Попробуйте получить нормальный листинг товаров, разитый на страницы. Скажем, по 50 товаров, раз уж шаблон "таблицей". Либо у Вас заведомо предполагается довольно небольшое количество товаров в любой категории первого уровня.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#10 Maximoka

    Новичок

  • Пользователи
  • Pip
  • 8 сообщений
Репутация: 0
Начинающий
  • ГородSPB

Отправлено 05 June 2014 - 12:44 PM

Ну да, товаров будет по-минимуму.
  • 0