Мега меню с PdoMenu

Всем ДВС!
Помогите с реализацией мега меню сниппетом pdoMenu. Проблема в том что один из пунктов меню имеет свой шаблон (услуги) с выводом своих потомков в несколько колонок, и у каждого потомка по несколько ресурсов.

Обыскал все, находил много решений но не одно ни смог реализовать к сожалению, видимо из за недостатка опыта и знаний.
Пробовал реализовать с помощью параметра &tplCategoryFolder, ни чего не получилось, получается какая то каша.
Пробовал реализовать с помощью условий создав два tpl шаблона, один с стандартным выпадающим меню, второй шаблон как раз с мега меню, и условием типа
[[+id:is=`2`:then=`[[$dropdownMenuMega]]`:else=`[[$dropdownMenu]]`]]
, где 2 это как раз ID пункта меню которое должно выводить мега, а остальные обычное выпадающее, а в самом параметре &tplParentRow указал чанк где прописано данное условие. Короче тоже не получилось.
Плагин самостоятельно написать не смогу не хватает знаний((((
Видел статью где данное меню реализовывается с помощью pdoResources, но в данном решение любое выпадающее меню, является мега, поэтому проблем с его реализацией нет!
У меня же проблема как определить отдельный шаблон для отдельного пункта. Один парень мне предлагал решить проблему двумя вызовами pdoMenu (в теории), но на практике ни чего не получилось.
Пробовал решить с помощью &tpl_N, но в pdoMenu данный параметр не работает, позже нашел топик с комментариями гуру Modx.))
Там же почитал что можно реализовать с помощью шаблонизатора Fenom прописав условия, но к сожалению не хватает знаний…
Вот мое меню
<nav id="main-navigation" class="main-navigation">
      <ul id="menu" class="clearfix">
            <li class="current"><a href="ссылка">Главная</a></li>
                <li><a href="#">О компании</a></li>
                <li class="dropdown has-megamenu"><a href="#">Услуги</a>
               		<div class="sub-menu-wrap mega-menu flex-row">
                		<div class="mega-submenu">
                			<h5 class="mega-title"><span class="cicon-heating"></span>Гидравлика</h5>
                				<ul>
                					<li><a href="ссылка">Услуга</a></li>
                					<li><a href="ссылка">Услуга</a></li>
                				</ul>
                		</div>
                		<div class="mega-submenu">
                			<h5 class="mega-title"><span class="cicon-cooling"></span>Запчасти</h5>
                				<ul>
                					<li><a href="ссылка">Услугаr</a></li>
							<li><a href="ссылка">Услуга</a></li>
                				</ul>
               			 </div>
               			 <div class="mega-submenu">
               				 <h5 class="mega-title"><span class="cicon-plumbing"></span>ДВС</h5>
               					 <ul>
                					<li><a href="ссылка">Услуга</a></li>
               						 <li><a href="ссылка">Услуга</a></li>
                   				 </ul>
                		</div>
               			 <div class="mega-submenu">
                			<h5 class="mega-title"><span class="cicon-air-quality"></span>Металлообработка</h5>
                				<ul>
                					<li><a href="ссылка">Услуга</a></li>
                					<li><a href="ссылка">Услуга</a></li>
                				</ul>
                		</div>
                		<div class="mega-submenu">
                			<h5 class="mega-title"><span class="cicon-electircal"></span>Масла</h5>
               					 <ul>
                					<li><a href="ссылка">Услуга</a></li>
                					<li><a href="ссылка">Услуга</a></li>
              					</ul>
                		</div>
                	</div>
                </li>
                <li class="dropdown"><a href="ссылка">Наши работы</a>
                	<div class="sub-menu-wrap">
                		<ul>
                			<li><a href="ссылка">Гидроцилиндры</a></li>
                			<li><a href="ссылка">Гидромоторы</a></li>
                			<li><a href="ссылка">Гидронасосы</a></li>
                		</ul>
                	</div>
                </li>
                <li><a href="ссылка">Новости</a></li>
                <li><a href="ссылка">Контакты</a></li> -->
     </ul>
</nav>
Вот сайт, где можно наглядно посмотреть как оно выглядит

Структура сайта следующая:

Главная
О компании
Услуги
<--!это и есть мега меню-->
	Подуслуга
		Подподуслуга
		Подподуслуга
	Подуслуга
		Подподуслуга
		Подподуслуга
	Подуслуга
		Подподуслуга
		Подподуслуга
	Подуслуга
		Подподуслуга
		Подподуслуга
	Подуслуга
		Подподуслуга
		Подподуслуга
Портфолио
<!--это обычное выпадающее меню -->
	Пример
	пример
	пример
Новости
Контакты
Господа может быть найдутся кто сможет подсказать в решении данной задачи, тыкнуть пальцем на какую либо статейку где описаны похожие примеры?
Сразу скажу что прочитал всю документацию pdoTools и не нашел ни чего полезного
3 день просто перекапываю гугл и яндекс так же безрезультатно. Где находил схожие проблемы других людей, там не было решения.
Заранее спасибо!
Сергей
22 января 2018, 20:03
modx.pro
4
4 257
0

Комментарии: 10

Сергей
23 января 2018, 17:30
0
Может быть есть какой то регламент по вопросам?
Последнее время что нибудь спросишь, ни кто ни чего не отвечает…
    Дмитрий
    23 января 2018, 18:25
    +1
    Проверять можно является ли пункт папкой или номер шаблона. Проверять можно как на fenom так и стандартными модификаторами
    Можно подкорректировать верстку под вывод. На схеме вывод по умолчанию.
      Андрей
      23 января 2018, 19:08
      3
      +1
      Можно попробовать так заколхозить :)

      {'!pdoMenu' | snippet:[
      	'parents' => 0,
      	'level' => 2,
      	'tplOuter'=>'@INLINE <ul id="menu" class="clearfix">{$wrapper}</ul>',
      	'tplInner'=>'@INLINE <div class="sub-menu-wrap"><ul>{$wrapper}</ul></div>'
      	'tpl'=>'tpl.megamenu'
      ]}

      tpl.megamenu:
      {if $id == 2}
      	<li class="dropdown has-megamenu"><a href="#">{$menutitle}</a>
      		<div class="sub-menu-wrap mega-menu flex-row">
      			
      			{'pdoMenu' | snippet : [
      				'parents'=>$id,
      				'level'=>2,
      				'outerTpl'=>'@INLINE {$wrapper}',
      				'innerTpl'=>'@INLINE <ul>{$wrapper}</ul>',
      				'tpl'=>'@INLINE <div class="mega-submenu"><h5 class="mega-title"><span class="cicon-heating"></span>{$menutitle}</h5>{$wrapper}</div>',
      				'tplInnerRow'=>'@INLINE <li><a href="{$link}">{$menutitle}</a></li>'
      			]}
      			
      		</div>
      	</li>
      {elseif $id == 3}
      	<li class="dropdown"><a href="{$link}">{$menutitle}</a>{$wrapper}</li>
      {else}
      	<li {$classes}><a href="{$link}" {$attributes}>{$menutitle}</a>{$wrapper}</li>
      {/if}

      В проверке соответственно подставить свои id нужных страниц.

      p.s. Вызов на Fenom, для него должна быть включена настройка — Использовать Fenom на страницах, или перепишите на обычный синтаксис.
        Сергей
        23 января 2018, 19:40
        0
        Андрей спасибо огромное за решение!!!
        Но вот вопрос почему у меня тогда не работает такая конструкция:
        [[pdoMenu?
                               &parents=`0`
                               &level=`2`
                               &hereClass=`current`
                               &parentClass=`dropdown`
                               &tpl=`@INLINE <li[[+classes]]><a href="[[+link]]">[[+menutitle]]</a></li>`
                               &tplInner=`@INLINE <ul id="menu" class="clearfix">[[+wrapper]]</ul>`
                               &tplParentRow=`dropDownAll`
                                         ]]
        dropDownAll:
        [[*parent:is=`2`:then=`[[$dropdownMenuMega]]`:else=`[[$dropdownMenu]]`]]
        Естественно dropdownMenuMega — это вывод мега, а dropdownMenu это обычное выпадающее меню.

        Тот же самый велосипед, только на обычном синтаксисе.

        У меня как раз «услуги» имеет ID = 2…

        Конечно Андрей еще раз спасибо, и Мите что откликнулись! Буду пробовать с Fenom.
        Сергей
        23 января 2018, 19:42
        0
        Ппц Fenom включил и работает такая конструкция:
        {if $id == 2}
        [[$dropdownMenuMega]]
        {else}
        [[$dropdownMenu]]
        {/if}
        Спасибо еще раз!
          Андрей
          23 января 2018, 19:48
          +1
          Собственно ответ на вопрос выше) нужно проверять не parent а id. И чанки, если уходить от обычного синтаксиса, можно вызывать так:

          {if $id == 2}
          	{'dropdownMenuMega' | chunk}
          {else}
          	{'dropdownMenu' | chunk}
          {/if}
            Сергей
            23 января 2018, 19:52
            0
            Спасибо еще раз!
              Сергей
              23 января 2018, 19:54
              0
              {if $id == 2}
              	{'dropdownMenuMega' | chunk}
              {else}
              	{'dropdownMenu' | chunk}
              {/if}
              Кстати попробовал, не работает, вот так работает:
              {if $id == 2}
              [[$dropdownMenuMega]]
              {else}
              [[$dropdownMenu]]
              {/if}
                Андрей
                23 января 2018, 20:06
                +1
                Странно, конструкция 100% рабочая, даже проверил у себя на сайте :) Да и в принципе, здесь дополнительные вызовы чанков излишни, можно просто писать любой код внутри проверок, как в моём примере выше.
                  Сергей
                  23 января 2018, 20:07
                  0
                  Ну согласен!
                  Ладно буду дальше доводить до завершения!
                  Спасибо!
            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
            10