1

Тема: Полноценный модуль меню.

Здравствуйте.
Двоякое у вас меню и немного неудобное.
Почему нельзя сделать, полноценный модуль меню.
1. Создать меню
  - верхнее
  - левое
  - и т.д.

2. Выводится специальным тегом + id меню.

3. Каждому меню можно применить шаблон оформления.

4. Когда создается хоть что,  статья, просто страница или ссылка на категорию товаров, неважно - делается пункт, где
отобразить ссылку , а именно в каком меню и какой категории.

Просто не могу понять, почему есть меню, а также есть каталог товаров, который не редактируется модулем меню.
Это точно такое-же меню.  Почему из админки в меню каталога товаров, нельзя вставить ссылки на статьи или страницы.

Повысить оценку Понизить оценку

2

Re: Полноценный модуль меню.

Вы можете в меню сделать иерархию:
Верхнее меню
-- пункт 1
-- пункт 2
Нижнее меню
-- пункт 1
-- пункт 2

Затем в настройках соответствующего блока Меню указать нужный корневой элемент для вывода. Таким образом на странице можно вывести разные меню, добавив сколько нужно блоков меню на странице. У каждого блока вы можете указать свой шаблон в настройках блока.

В системе категории товаров, меню, статьи - это абсолютно независимые сущности, в абсолютно независимых модулях, это придает простоту системе. Если вы хотите добавить ссылку к списку категорий, просто отредактируйте шаблон блока Категорий товаров.

Повысить оценку Понизить оценку

Re: Полноценный модуль меню.

Здравствуйте.
Двоякое у вас меню и немного неудобное.
Почему нельзя сделать, полноценный модуль меню.
1. Создать меню
  - верхнее
  - левое
  - и т.д.

2. Выводится специальным тегом + id меню.

3. Каждому меню можно применить шаблон оформления.

4. Когда создается хоть что,  статья, просто страница или ссылка на категорию товаров, неважно - делается пункт, где
отобразить ссылку , а именно в каком меню и какой категории.

Просто не могу понять, почему есть меню, а также есть каталог товаров, который не редактируется модулем меню.
Это точно такое-же меню.  Почему из админки в меню каталога товаров, нельзя вставить ссылки на статьи или страницы.

Т.к. это разные сущности. Каталог товара никак не должен быть связан с меню, т.к. мы предполагаем, что меню это страницы типа - доставка, оплата и т.д.. Никакого отношения к товарам они по сути не имеют.
Для решения отображения меню и списка каталога товаров есть свои блок контроллеры в котором и ставиться необходимый шаблон отвечающий отдельно за вывод меню из указанного корневого элемента или вывод каталога товаров из указанного корня соответственно.
Какую задачу по объединению Вам надо решить?

4

Re: Полноценный модуль меню.

Допустим вывести ссылки О компании -_ контакты -_и.т.д   в выпадающем списке каталога товаров. Или отдельное меню Статьи - о нас- _о компании - контакты- и тд. шаблон вывода как у меню каталога товара а в этом меню каталог товаров .

Повысить оценку Понизить оценку

5 Отредактировано Ярослав (07.02.2016 20:10:56)

Re: Полноценный модуль меню.

Петр, в RS достаточно гибкое меню, особенно  вместе с возможностью подгружать в шаблонах дополнительные модули функцией moduleinsert.  Подробнее в документации разработчика:
1. В список категорий вставляет меню:

{* Вставляет в шаблон блок Меню, в котором будут отображаться дочерние элементы от элемента с символьным идентификатором footmenu*}
{moduleinsert name="\Menu\Controller\Block\Menu" root="footmenu"}

2.В шаблон меню список категорий:

{* Вставляет в шаблон блок Список категорий *}
{moduleinsert name="\Catalog\Controller\Block\Category"}

Еще вариант:
3. просто решаете задачу в лоб, просто добавив ссылки, если их не очень много:

<ul class="topMenu" id="topMenu">
    {foreach $dirlist as $dir}
    <li class="item_{$dir@iteration}{if !empty($dir.child)} node{/if}" {$dir.fields->getDebugAttributes()}><a href="{$dir.fields->getUrl()}">{$dir.fields.name}</a>
        {if !empty($dir.child)}
            {$cnt=count($dir.child)}
            {$columns=1}
            {if $cnt>3}{$columns=2}{/if}
            {if $cnt>6}{$columns=3}{/if}
            {if $cnt>12}{$columns=4}{/if}
            {* Второй уровень *}
            <ul class="columns{$columns}">
                {foreach $dir.child as $subdir}
                <li><a href="{$subdir.fields->getUrl()}">{$subdir.fields.name}</a>
                    {if !empty($subdir.child)}
                    {* Третий уровень *}
                    <ul>
                        {foreach $subdir.child as $subdir2}
                        <li><a href="{$subdir2.fields->getUrl()}">{$subdir2.fields.name}</a></li>
                        {/foreach}
                    </ul>
                    {/if}
                </li>
                {/foreach}
            </ul>
        {/if}
    </li>
    {/foreach}
       <li class="second_item"><a href="/catalog/new/">Новинки <i class="fa fa-truck"></i></a>
       </li>
       <li class="second_item"><a href="/catalog/akcii/">Акции <i class="fa fa-gift"></i></a>
       </li>
       <li class="second_item"><a href="/catalog/last/">Последние поступления <i class="fa fa-clock-o "></i></a>
       </li>
       <li class="second_item"><a href="/feedback/">Отзывы <i class="fa fa-thumbs-o-up"></i></a>
       </li>
       
   </ul>

6

Re: Полноценный модуль меню.

Спасибо. Подскажи как вывести в модуле вывода категорий моё меню? Пытаюсь вызвать {moduleinsert name="\Menu\Controller\Block\Menu" root="main-menu"} выводит только теги <nav>

Ярослав пишет:

Петр, в RS достаточно гибкое меню, особенно  вместе с возможностью подгружать в шаблонах дополнительные модули функцией moduleinsert.  Подробнее в документации разработчика:
1. В список категорий вставляет меню:

{* Вставляет в шаблон блок Меню, в котором будут отображаться дочерние элементы от элемента с символьным идентификатором footmenu*}
{moduleinsert name="\Menu\Controller\Block\Menu" root="footmenu"}

2.В шаблон меню список категорий:

{* Вставляет в шаблон блок Список категорий *}
{moduleinsert name="\Catalog\Controller\Block\Category"}

Еще вариант:
3. просто решаете задачу в лоб, просто добавив ссылки, если их не очень много:

<ul class="topMenu" id="topMenu">
    {foreach $dirlist as $dir}
    <li class="item_{$dir@iteration}{if !empty($dir.child)} node{/if}" {$dir.fields->getDebugAttributes()}><a href="{$dir.fields->getUrl()}">{$dir.fields.name}</a>
        {if !empty($dir.child)}
            {$cnt=count($dir.child)}
            {$columns=1}
            {if $cnt>3}{$columns=2}{/if}
            {if $cnt>6}{$columns=3}{/if}
            {if $cnt>12}{$columns=4}{/if}
            {* Второй уровень *}
            <ul class="columns{$columns}">
                {foreach $dir.child as $subdir}
                <li><a href="{$subdir.fields->getUrl()}">{$subdir.fields.name}</a>
                    {if !empty($subdir.child)}
                    {* Третий уровень *}
                    <ul>
                        {foreach $subdir.child as $subdir2}
                        <li><a href="{$subdir2.fields->getUrl()}">{$subdir2.fields.name}</a></li>
                        {/foreach}
                    </ul>
                    {/if}
                </li>
                {/foreach}
            </ul>
        {/if}
    </li>
    {/foreach}
       <li class="second_item"><a href="/catalog/new/">Новинки <i class="fa fa-truck"></i></a>
       </li>
       <li class="second_item"><a href="/catalog/akcii/">Акции <i class="fa fa-gift"></i></a>
       </li>
       <li class="second_item"><a href="/catalog/last/">Последние поступления <i class="fa fa-clock-o "></i></a>
       </li>
       <li class="second_item"><a href="/feedback/">Отзывы <i class="fa fa-thumbs-o-up"></i></a>
       </li>
       
   </ul>

Повысить оценку +1 Понизить оценку