support 446 Posted March 3, 2014 Report Share Posted March 3, 2014 (edited) Можно так сделать. В Админке - Оформление - Микро-шаблоны правьте шаблон categories-box и меняйте шаблон бокса Разделы: {if $content_list} <section class="widget inner categories-widget"> <h3 class="widget-title">{lang}Categories{/lang}</h3> <ul class="icons clearfix"> {foreach from=$content_list item=node} <li{if $node.alias == $content_alias} class="active"{/if}><a href="{$node.url}">{$node.name}</a></li> {/foreach} </ul> </section> {/if} на: {if $content_list} <section class="widget inner categories-widget"> <h3 class="widget-title">{lang}Categories{/lang}</h3> <ul class="icons clearfix"> {foreach from=$content_list item=node} <li{if $node.alias == $content_alias} class="active"{/if}><a href="{$node.url}">{$node.name}</a> {content_listing template='links' parent={$node.id} type='category' limit='100'} </li> {/foreach} </ul> </section> {/if} Edited July 14, 2015 by VaM Link to post Share on other sites
support 446 Posted July 6, 2015 Author Report Share Posted July 6, 2015 Вот ещё одно решение от пользователя Adilan - От jstree меню в итоге отказался, сделал по своему, работает быстрей и правильней (для меня): - при нажатии на пункт меню, выбранное меню открывается, все остальные закрываются; - если в категории первого уровня есть товары (без вложенных меню), товары выводятся в меню; - при выборе товара, или меню, выбранный товар или пункт меню подсвечиваются (настройки css). Вот решение: В основном шаблоне вызываем свой шаблон меню: <ul class="my-right-mnu"> {content_listing template="my-links-category" parent="0" type="category"} </ul> Текст микрошаблона my-links-category: {foreach from=$content_list item=node} <li{if $node.alias == $content_alias} class="active"{/if}><a href="{$node.url}">{$node.name}</a> {if ($node.alias==$content_alias)}<ul class="podmnu"> {content_listing template='my-subcat-mnu-list0' parent={$node.id} type='category' limit='100'} {content_listing template="my-mnu-product-listing0" parent={$content_id} page={$page} type="product,downloadable" current_order={$current_order}} </ul>{/if} {if ($node.alias!=$content_alias)}<ul class="podmnu"> {content_listing template='my-subcat-mnu-list' parent={$node.id} type='category' limit='100'} {if $parent_id == $node.id}{content_listing template="my-mnu-product-listing" parent={$parent_id} page={$page} type="product,downloadable" current_order={$current_order}}{/if} </ul>{/if} </li> {/foreach} Текст микрошаблона my-subcat-mnu-list0 {foreach from=$content_list item=node} <li class="no-active"><a href="{$node.url}">{$node.name}</a></li> {/foreach} Текст микрошаблона my-subcat-mnu-list {foreach from=$content_list item=node} {if $node.alias == $content_alias}{$fl = true}{/if} {if $node.id == $parent_id}{$fl1 = true}{/if} {/foreach} {foreach from=$content_list item=node} {if $node.alias == $content_alias}<li class="active"><a href="{$node.url}">{$node.name}</a></li>{else} {if $fl or $fl1}<li {if $node.id == $parent_id}class="active"{/if}><a href="{$node.url}">{$node.name}</a></li>{/if} {/if} {/foreach} Текст микрошаблона my-mnu-product-listing0 {if $content_list} <!-- start: products listing --> <ul class="thumbnails"> {foreach from=$content_list item=node} <li class="no-active"><a href="{$node.url}">{$node.name}</a></li> {/foreach} </ul> <!-- end: products listing --> {*else} {lang}No Items Found{/lang*} {/if} Текст микрошаблона my-mnu-product-listing {if $content_list} <!-- start: products listing --> <ul class="thumbnails"> {foreach from=$content_list item=node} <li {if $node.alias == $content_alias}class="active"{/if}><a href="{$node.url}">{$node.name}</a></li> {/foreach} </ul> <!-- end: products listing --> {*else} {lang}No Items Found{/lang*} {/if} Link to post Share on other sites
Adilan 0 Posted October 14, 2018 Report Share Posted October 14, 2018 При многоуровневом меню получается много обращений к базе при формировании меню. Вот пример: Раздел 1 - Подраздел 1 - Подраздел 2 Раздел 2 - Подраздел 1 - Подраздел 2 - - ПодПодраздел 1 - - ПодПодраздел 2 Раздел 3 - Подраздел 1 - Подраздел 2 В данном случае у нас получаются следующие обращения к базе для вывода меню. 1-е обращение - формируем уровень Раздел 2-е обращение - формируем уровень Подраздел Раздела 1 3-е обращение - формируем уровень Подраздел Раздела 2 4-е обращение - формируем уровень ПодПодраздел Подраздела Раздела 2 и т.д. А как можно за одно обращение вытянуть все разеделы в массив и уже с ними работать? Link to post Share on other sites
support 446 Posted October 19, 2018 Author Report Share Posted October 19, 2018 В 14.10.2018 в 21:49, Adilan сказал: При многоуровневом меню получается много обращений к базе при формировании меню. Вот пример: Раздел 1 - Подраздел 1 - Подраздел 2 Раздел 2 - Подраздел 1 - Подраздел 2 - - ПодПодраздел 1 - - ПодПодраздел 2 Раздел 3 - Подраздел 1 - Подраздел 2 В данном случае у нас получаются следующие обращения к базе для вывода меню. 1-е обращение - формируем уровень Раздел 2-е обращение - формируем уровень Подраздел Раздела 1 3-е обращение - формируем уровень Подраздел Раздела 2 4-е обращение - формируем уровень ПодПодраздел Подраздела Раздела 2 и т.д. А как можно за одно обращение вытянуть все разеделы в массив и уже с ними работать? Есть два встроенных меню, попробуйте их. Метки: {category_box_jstree} и {category_box} Там вроде бы всё за раз вытаскивается. Link to post Share on other sites
Recommended Posts