Page 1 of 2

И снова Products

Posted: Mon Dec 16, 2013 4:21 am
by WolfHunter
Перечитал весь форум, но так и не понял как правильно настроить иерархию.
К примеру, есть иерархия:
> каталог
>> наименование1
>>> фирма1
>>>> товар1
>>>> товар2
>>> фирма2
>>> фирма3
>> наименование2
...
Нужно чтобы при нажатии на "наименование1" выводился список фирм в нем, а при выборе фирмы выводились соответствующие товары.
На данный момент при нажатии на "наименование1" - пустой экран, либо список товаров если они прикреплены к "наименование1".

Второй вопрос:
можно ли все-таки привести URL к виду "http://site.ru/products/naimenovanie1/firma1/tovar1"?

На данный момент добился только
"http://site.ru/products/11/tovar1".

Re: И снова Products

Posted: Sat Jan 18, 2014 12:59 pm
by sbupravi
Если правильно вас понял - нужно заменить byhierarchy на hierarchy. Тогда увидите список дочерних элементов иерархии.
Обратите внимание на ссылку! Это редактируется в шаблоне.

А теперь такой вопрос, ко всем, кто работал с этим модулем!
Можно добавить какие-то условия в шаблон категорий, чтобы при переходе в иерархию - они были только для товаров в иерархии, но не для всего каталога!?
Сейчас вывел категории, но они никак не связаны с иерархией... Сами по себе...

Re: И снова Products

Posted: Mon Jan 27, 2014 8:37 pm
by sbupravi
Еще вопрос - как возле имени категории выводить имя родителя?
Шаблон иерархии:

Code: Select all

{* hierarchy report template *}
{if !isset($hdepth) && isset($hierarchy_item)}
<h3>Hierarchy Data for {$hierarchy_item.name} ({$hierarchy_item.id})</h3>
{/if}

{if !isset($hdepth)}{assign var='hdepth' value='0'}{/if}

{*
 // create a nested set of unordered lists 
 // if the active_hierarchy smarty variable exists
 // and matches the current hierarchy id
 // the active class will be given
 // to the ul.  You may want to modify your summary template
 // to set this variable
*}
<ul {if $hdepth == 0}id="products_hierarchy"{/if} class="products_hierarchy_level{$hdepth}">
{foreach from=$hierdata key='key' item='item'}
{strip}
  {$class='product_hier'}
  {if isset($active_hierarchy) and $item.id == $active_hierarchy}{$class=$class|cat:' active'}{/if}
  {if isset($item.children)}{$class=$class|cat:' parent'}{/if}
  <li{if $class != ''} class="{$class}"{/if}>
  {if $item.count gt 0}
     <a href="{$item.url}">{$item.name} ({$item.count} - {$item.id})</a>
  {else}
     {$item.name} ({$item.count})
  {/if}
  
  {if isset($item.children) }
    {* there are children call this template again *}
    {include file=$smarty.template hierdata=$item.children hdepth=$hdepth+1}
  {/if}
  
  </li>
{/strip}

{/foreach}
</ul>


Re: И снова Products

Posted: Wed Jan 29, 2014 9:18 am
by WolfHunter
sbupravi wrote:Если правильно вас понял - нужно заменить byhierarchy на hierarchy. Тогда увидите список дочерних элементов иерархии.
Обратите внимание на ссылку! Это редактируется в шаблоне.
так ссылка находится в переменной {$item.url}...

Code: Select all

{if $item.count gt 0}
     <a href="{$item.url}">{$item.name} ({$item.count})</a>
  {else}
     {$item.name} ({$item.count})
{/if}

Re: И снова Products

Posted: Mon Feb 03, 2014 4:05 am
by WolfHunter
Неужели до сих пор нет решений данной проблемы? ???
Перечислю €2 на paypal тому, кто напишет нужное решение согласно проблеме из первого поста!

Re: И снова Products

Posted: Mon Feb 03, 2014 9:10 am
by guro
;D ;D ;D
На самом деле решаемо всё. Достаточно немного знаний в программировании и способность разбираться в чужом коде. Пару лет назад я решал задачу из первого поста путем "допиливания" кода модуля. Но, так как по правилам форума нельзя выкладывать измененный код модулей и бог его знает на каком проекте я делал эти "допилы", я не смогу вам помочь в этом вопросе.

На данный момент я практически не использую модуль Products так же как и Cataloger. Если есть желание, можете попробовать мой модуль, в нем возможно реализовать требуемое. Предупреждаю сразу, модуль ещё сырой, не всё реализовано. Но, возможно с вашей помощью он станет лучше))

Re: И снова Products

Posted: Mon Feb 03, 2014 9:15 am
by WolfHunter
Спасибо, начинаю тестить ваш модуль.
И таки удалось найти кривоватое, но работающее решение без допиливания модуля:

Code: Select all

{if isset($item.children)}
   <a href="http://yousite.ru/products/hierarchy/{$item.id}/{$item.extra1}.html"><img src="{$hierarchy_image_location}/{$item.image}" alt="{$item.name}" class="hie_img"></a><br>
   <a href="http://yousite.ru/products/hierarchy/{$item.id}/{$item.extra1}.html">{$item.name}</a>
{elseif $item.count>0}
   <a href="{$item.url}"><img src="{$hierarchy_image_location}/{$item.image}" alt="{$item.name}" class="hie_img"></a><br>
   <a href="{$item.url}">{$item.name}</a>
{else}
   <img src="{$hierarchy_image_location}/{$item.image}" alt="{$item.name}"><br>
   {$item.name}
{/if}

Re: И снова Products

Posted: Sun Feb 09, 2014 10:37 am
by sbupravi
Может кто знает - почему генерируются разные ссылки на категории, выдаваемые тегом {Products action="hierarchy"} ?
А именно отличается конец ссылки:
...2/58.html
...2/15.html
...2/57.html

Это все ссылки на одну и ту же дочернюю категорию! Просто вставлен тег на разных страницах.
Можно получить статические ссылки на категории?

P.S.
вопрос решен - summarypage=""

Re: И снова Products

Posted: Mon Apr 14, 2014 9:02 am
by WolfHunter
Снова нужна помощь (guro ;) )
Имеется ссылка генерируемая Products, например:
http://site.ru/products/4/16/tovar.html
Как бы из нее убрать products/4/16/?
Т.е. чтобы получилось http://site.ru/tovar.html

Re: И снова Products

Posted: Mon Apr 14, 2014 9:30 am
by guro
Посмотрите вот эту тему

Re: И снова Products

Posted: Fri May 30, 2014 8:14 am
by WolfHunter
Спасибо, guro! Предыдущие вопросы худо-бедно порешал. Сейчас появился новый:

- хочу сделать страницу товаров в наличии, для это добавил новое поле (чекбокс). Собственно вопрос, как вывести товары у которых это поле =true?

Может кто-то решал подобную задачу.

Re: И снова Products

Posted: Mon Jun 02, 2014 10:08 pm
by guro
Вариант 1.
В шаблоне проверять поле и не показывать товары где поле false( или 0 )
Вариант 2.
Допилить модуль ;-)

Re: И снова Products

Posted: Mon Jun 16, 2014 8:53 am
by WolfHunter
А не могли бы написать код проверки поля?

Re: И снова Products

Posted: Mon Jun 16, 2014 8:28 pm
by guro
В предположении, что поле называется "new"

Code: Select all

{if $entry->fields.new->value == 'true'}

Re: И снова Products

Posted: Tue Jun 17, 2014 12:56 pm
by WolfHunter
Вот спасибо необъятное, все получилось! ;D