Многоуровневое меню настраиваемое
Smarty решение многоуровнего меню магазина Shop-Script. Позволяет персонально настраивать вид группы подкатегорий через доп. параметры. Меню оптимизированно и имеет только один запрос к базе данных.
{* ------------------------------------------ Инструкция к меню Значение доп. параметра topmenu Устанавливаются для категорий 3-го уровня - topmenu=0 - подменю и меню не отображается, тоже самое если не указывать доп. параметр - topmenu=1 - отображает меню без подменю - topmenu=2 - отображает меню с 2 подменю - topmenu=3 - отображает меню с 3 подменю - topmenu=4 - отображает меню с 4 подменю - topmenu=5 - отображает меню с 5 подменю и тд ------------------------------------------- *} {function menu level=0 depth=0} {$col_show = ifset($cat.params.topmenu, 0)} <a href="{$cat.url}" title="{$cat.name}"> {if $level == 0} {$cat.name|replace:" ":" "} {else} {$cat.name} {/if} </a> {if ifset($cat.childs) && $depth >= $level && (ifset($col_show) > 1 || $level != 2)} {$col = 0} <ul> {foreach $cat.childs as $child} {$col = $col + 1} {$child_show = ifset($child.params.topmenu, 0)} {if ($level != 1 || $child_show != 0) && ((ifset($col_show) >= $col) || $level!=2)} <li> {menu cat=$child level=$level+1 depth=$depth} </li> {/if} {/foreach} </ul> {/if} {/function} <!-- Top Menu Block --> <div id="topmenu_bl"> {$category = $wa->shop->categories(0, null, true, true)} <ul class="topmenu"> {foreach $category as $cat name=foo} {if $smarty.foreach.foo.iteration <= 3} <li> {menu cat=$cat depth=2} </li> {/if} {/foreach} </ul> </div> {if $height = $theme_settings.topmenu_max_height} <style> @media only screen and (min-width: 1010px) { ul.topmenu > li > ul { max-height: {$height}px; } } </style> {/if}
Просмотры: 528