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
На самом деле решаемо всё. Достаточно немного знаний в программировании и способность разбираться в чужом коде. Пару лет назад я решал задачу из первого поста путем "допиливания" кода модуля. Но, так как по правилам форума нельзя выкладывать измененный код модулей и бог его знает на каком проекте я делал эти "допилы", я не смогу вам помочь в этом вопросе.
На данный момент я практически не использую модуль 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
Вот спасибо необъятное, все получилось!
