Отображение списка подкатегорий
A.N.R.I
Новичок
: 3
: 07-09-2011


15-03-2012 04:27
Здравствуйте.
Есть сайт с категориями и подкатегориями (подкатегории подкатегории не будет, т.е глубина 2)

Как сделать, чтобы, когда мы заходим в категорию, а потом в подкатегорию - все подкатегории категории не пряталась, а были видны?

Используется НЕ динамический (анимирированный) режим подуровней


Сообщение отредактировано A.N.R.I 14-03-2012 23:29 ...
 
  
A.N.R.I
Новичок
: 3
: 07-09-2011


15-03-2012 17:42
Сделал, так (если кому нужно)
blockcategories.tpl
Код:
{foreach from=$blockCategTree.children item=child name=blockCategTree}
            {if $smarty.foreach.blockCategTree.last}
                        {include file=$branche_tpl_path node=$child last='true'[B] links=$child.children parent=$child.id[/B]}
            {else}
                        {include file=$branche_tpl_path [B]node=$child links=$child.children parent=$child.id[/B]}
            {/if}
        {/foreach}

category-tree-banch.tpl
Если категория - есть подкатегорией или родительской
Код:
{foreach from=$links item=allCategories name=allCategories}
                {if $currentCategoryId == $allCategories.id || $currentCategoryId==$parent}
                    {assign var='path' value="true"}
                {/if}
            {/foreach}


И если нет - то все прячем
Код:
{if $path!="true"}
                <span class="show_item">
            {/if}


Вообщем файл
category-tree-branch.tpl
Код:
<li {if $last == 'true'}class="last"{/if}>
    <a href="{$node.link|escape:html:'UTF-8'}" {if $node.id == $currentCategoryId}class="selected"{/if} title="{$node.desc|escape:html:'UTF-8'}">{$node.name|escape:html:'UTF-8'}</a>

    {if $node.children|@count > 0}
        <ul >                
            <!--Якщо наша категорія є однією з підкатегорій, або батьківською-->
            {foreach from=$links item=allCategories name=allCategories}
                {if $currentCategoryId == $allCategories.id || $currentCategoryId==$parent}
                    {assign var='path' value="true"}
                {/if}
            {/foreach}
            
            {if $path!="true"}
                <span class="show_item">
            {/if}

            {foreach from=$node.children item=child name=categoryTreeBranch}
                {if $smarty.foreach.categoryTreeBranch.last}
                    {include file=$branche_tpl_path node=$child last='true' }
                {else}
                    {include file=$branche_tpl_path node=$child last='false'}
                {/if}
            {/foreach}
            
            {if $path!="true"}
                </span>
            {/if}
        </ul>
    {/if}
</li>