Как Расширить Схему Для Своего Шаблона Дерева Категорий?

В общем хочу сделать копию dropdown_vertical , но вот не задача, создал шаблон в своем модуле, положил в папочку

design/themes/responsive/templates/addons/my_template/blocks/categories/category_catalog_all.tpl
{** block-description:category_catalog_all **}
    {include file="addons/my_template/blocks/categories/category_catalog_all/sidebox_dropdown.tpl" items=$items separated=true submenu=false name="category" item_id="category_id" childs="subcategories"}

Собственно сам файл где происходит магия

{hook name="blocks:sidebox_dropdown"}{strip}
{assign var="foreach_name" value="item_`$iid`"}
{assign var="level" value="1"}

{foreach from=$items item=“item” name=$foreach_name}
{hook name=“blocks:sidebox_dropdown_element”}

<li class="tsp-left-menu__ul-li ">
    {assign var="item_url" value=$item|fn_form_dropdown_object_link:$block.type}
    <div class="tsp-left-menu__ul-li-wrap">

        <a{if $item_url} href="{$item_url}"{/if} {if $item.new_window}target="_blank"{/if} class="tsp-left-menu__ul-li-href {if $item.$childs} tsp-left-menu__ul-li-href-action{/if}">
            <span class="tsp-left-menu__ul-li-href-title">
                {$item.$name}
            </span>
        </a>

        {if $item.$childs}
            {hook name="blocks:sidebox_dropdown_childs"}
                <div class="tsp-left-menu__sub-ul-wrap-level-{$level}">
                    <ul class="tsp-left-menu__sub-ul">
                        <li class="tsp-left-menu__sub-ul-li {if $item.active || $item|fn_check_is_active_menu_item:$block.type} active{/if}">
                            <div class="tsp-left-menu__sub-ul-li-wrap">
                                <a href="{$item_url}" class="tsp-left-menu__sub-ul-li-href {if $item.active || $item|fn_check_is_active_menu_item:$block.type} active{/if} {if $item.class} {$item.class}{/if}">В КАТЕГОРИЮ <i class="fa fa-arrow-circle-right"></i></a>
                            </div>
                        </li>

                        {include file="addons/my_template/blocks/categories/category_catalog_all/sidebox_dropdown_sub.tpl" items=$item.$childs separated=true submenu=true iid=$item.$item_id level=$level+1}

                    </ul>
                </div>
            {/hook}
        {/if}
    </div>

</li>

{/hook}

{/foreach}
{/strip}{/hook}

Но что бы я не делал, не работает условие

 {if $item.$childs}

и все пункты выводятся списком 1 уровня.

Я подумал что нужно расширить схему шаблонов категорий, но как не изгалялся blocks.post.php

<?php

$schema[‘categories’][‘templates’][‘addons/my_template/blocks/categories/category_catalog_all.tpl’] = array (
‘params’ => array (
‘plain’ => ‘’,
‘request’ => array (
‘active_category_id’ => ‘%CATEGORY_ID%’,
),
),
‘fillings’ => array(‘full_tree_cat’, ‘dynamic_tree_cat’)
);

return $schema;

Судя по всему не работают fillings?

Первым делом добавьте

{$items|fn_print_r}
{$childs|fn_print_r}

перед

{foreach from=$items item="item" name=$foreach_name}

и посмотрите, если в этом массиве подмассив с подкатегориями.

UPDATE

Обратите внимание, что файл с доп. параметрами должен называться не blocks.post.php, а templates.post.php и контент подправьте

<?php

$schema[‘addons/my_template/blocks/categories/category_catalog_all.tpl’] = array (
‘params’ => array (
‘plain’ => ‘’,
‘request’ => array (
‘active_category_id’ => ‘%CATEGORY_ID%’,
),
),
‘fillings’ => array(‘full_tree_cat’, ‘dynamic_tree_cat’)
);

return $schema;

Первым делом добавьте

{$items|fn_print_r}
{$childs|fn_print_r}

перед

{foreach from=$items item="item" name=$foreach_name}

и посмотрите, если в этом массиве подмассив с подкатегориями.

UPDATE

Обратите внимание, что файл с доп. параметрами должен называться не blocks.post.php, а templates.post.php и контент подправьте

<?php

$schema[‘addons/my_template/blocks/categories/category_catalog_all.tpl’] = array (
‘params’ => array (
‘plain’ => ‘’,
‘request’ => array (
‘active_category_id’ => ‘%CATEGORY_ID%’,
),
),
‘fillings’ => array(‘full_tree_cat’, ‘dynamic_tree_cat’)
);

return $schema;

Да глянул, нет массива с подкатегориями.

Как говорится в первом варианте все как на 1 дыхании

Array
(
    [0] => Array
        (
            [category_id] => 629
            [parent_id] => 0
            [id_path] => 629
            [category] => АВТОМОБИЛЬНАЯ ТЕХНИКА И ЭЛЕКТРОНИКА
            [position] => 0
            [status] => A
            [company_id] => 1
            [seo_name] => avtomobilnaya-tehnika-i-elektronika-ru
            [seo_path] => 
            [level] => 0
            [has_children] => 649
        )
[1] => Array
    (
        [category_id] => 630
        [parent_id] => 629
        [id_path] => 629/630
        [category] => Автомобильная Электроника
        [position] => 0
        [status] => A
        [company_id] => 1
        [seo_name] => avtomobilnaya-elektronika-ru
        [seo_path] => 629
        [level] => 1
    )

[2] => Array
    (
        [category_id] => 631
        [parent_id] => 630
        [id_path] => 629/630/631
        [category] => Автоинверторы (Преобразователи напряжения)
        [position] => 0
        [status] => A
        [company_id] => 1
        [seo_name] => avtoinvertory-preobrazovateli-napryazheniya
        [seo_path] => 629/630
        [level] => 2
    )

Во втором варианте пишет

subcategories

Обратите внимание, что файл с доп. параметрами должен называться не blocks.post.php, а templates.post.php и контент подправьте

<?php

$schema[‘addons/my_template/blocks/categories/category_catalog_all.tpl’] = array (
‘params’ => array (
‘plain’ => ‘’,
‘request’ => array (
‘active_category_id’ => ‘%CATEGORY_ID%’,
),
),
‘fillings’ => array(‘full_tree_cat’, ‘dynamic_tree_cat’)
);

return $schema;

Первым делом делал так, но ничего не работало, скопировал Ваш код, появились подкатегории, прям магия какая то =)

Первым делом делал так, но ничего не работало, скопировал Ваш код, появились подкатегории, прям магия какая то =)

Возможно в кэшэ проблема была, возможна и магия )