pdoMenu – Как изменить название пункта Меню?
        Доброе время суток уважаемое сообщество.
Самое обычное простое pdoMenu.
Размещается на сайте в Шапке и Сайдбаре.
Задача: Только в Сайдбаре – изменить название некоторых пунктов, menutitle. По id Ресурса.
Прописал в параметрах:
Только изучаю MODX, просьба помочь новичку.
Спасибо.
PS Поиском пользовался, ответ не найден.
    
    
                                                                                
            Самое обычное простое pdoMenu.
Размещается на сайте в Шапке и Сайдбаре.
Задача: Только в Сайдбаре – изменить название некоторых пунктов, menutitle. По id Ресурса.
Прописал в параметрах:
&tpl=`@INLINE <li[[+classes]]><a href="[[+link]]" [[+attributes]]>[[*parent:is=`2`:then=`Тест`:else=`[[+menutitle]]`]]</a>[[+wrapper]]</li>`Код [[*parent:is=`2`:then=`Тест`:else=`[[+menutitle]]`]] не работает.Только изучаю MODX, просьба помочь новичку.
Спасибо.
PS Поиском пользовался, ответ не найден.
Комментарии: 13
                Здравствуйте. В данном случае, в конструкции 
                    [[*parent:is=`2`:then=`Тест`:else=`[[+menutitle]]`]] необходимо использовать +parentПлейсхолдер со звездочкой выводит данные той страницы, на которой вызывается.            
                Доброе время суток, Николай.
Не работает, привожу полный код:
А в остальных пунктах — оставить по умолчанию.
                    Не работает, привожу полный код:
[[pdoMenu? &level=`1` &resources=`1,2,3,4` &parents=`0`  &scheme=`uri` &tpl=`@INLINE <li[[+classes]]><a href="[[+link]]" [[+attributes]]>[[+parent:is=`2`:then=`Тест`:else=`[[+menutitle]]`]]</a>[[+wrapper]]</li>` &outerClass=`my-menu`]]Нужно, для ресурса с id=`2` изменить название пункта Меню с [[+menutitle]] — на Тест.А в остальных пунктах — оставить по умолчанию.
                «В INLINE чанках нельзя указывать сниппеты, другие чанки или фильтры вывода через обычные теги, потому что так парсер MODX обработает их в первую очередь, и сниппет получит совсем не то, что вы хотели.»
Документация.
                    Документация.
                Доброе время суток, Максим.
Благодарю за ваш совет. Почитал документацию:
Как правильнее? Вставить код в INLINE чанк, как, собственно я и сделал, или написать отдельный чанк, как советует Николай, постом ниже?
                    Благодарю за ваш совет. Почитал документацию:
Поэтому для INLINE чанков предусмотрена замена [[+]] на {{+}} — такие теги MODX пропускает, а pdoTools при работе конвертирует их как нужно.Сделал так:
[[pdoMenu?
 &level=`1`
 &resources=`1,2,3,4` 
 &parents=`0`
 &scheme=`uri`
 &tpl=`@INLINE <li[[+classes]]><a href="[[+link]]" [[+attributes]]>{{+id:is=`2`:then=`Тест`:else=`{{+menutitle}}`}}</a>[[+wrapper]]</li>`
 &outerClass=`my-menu`]]Работает.Как правильнее? Вставить код в INLINE чанк, как, собственно я и сделал, или написать отдельный чанк, как советует Николай, постом ниже?
                Оба варианта правильные.
Способ с Inline-чанком избавляет от лишнего запроса к БД, способ с обычным чанком более читаем и удобнее, когда один и тот же чанк используется в нескольких вызовах. Лично я стараюсь использовать файловые чанки.
                    Способ с Inline-чанком избавляет от лишнего запроса к БД, способ с обычным чанком более читаем и удобнее, когда один и тот же чанк используется в нескольких вызовах. Лично я стараюсь использовать файловые чанки.
                Если вам нужно проверять на id, зачем в условие ставить parent? Сделайте чанк с кодом 
                    <li[[+classes]]><a href="[[+link]]" [[+attributes]]>[[+id:is=`2`:then=`Тест`:else=`[[+menutitle]]`</a>[[+wrapper]]</li> Вызов сниппета [[pdoMenu? &level=`1` &resources=`1,2,3,4` &parents=`0`  &scheme=`uri` &tpl=`имя.чанка` &outerClass=`my-menu`]]            
                Доброе время суток, Николай.
Сделал так, описал постом выше.
Выбор по +id — работает, по +parent — нет.
Почему, это ведь выбор одного и того же ресурса разными способами.
Спасибо
                    Если вам нужно проверять на id, зачем в условие ставить parent?Мне нужно выбрать конкретный ресурс. В документации и примерах — выбирают по parent, просто повторил.
Сделайте чанк с кодомНе хотел чанки плодить, из-за единственной строки.
Сделал так, описал постом выше.
Выбор по +id — работает, по +parent — нет.
Почему, это ведь выбор одного и того же ресурса разными способами.
Спасибо
                В админке же можете указать menutitle и все            
                    Размещается на сайте в Шапке и Сайдбаре.
Задача: Только в Сайдбаре – изменить название некоторых пунктов, menutitle.
                О, можно ещё так извратиться:
                    &tpl=`@INLINE <li{$classes}>
  <a href="{$link}" {$attributes}>
    {switch $id}
      {case 2}
        Тест
      {case default}
        {$menutitle}
    {/switch}
  </a>
  {$wrapper}
</li>`            
                Доброе время суток, Илья.
Или так, короче получится:
Спасибо.
            
                    Или так, короче получится:
&tpl=`@INLINE <li{$classes}>
  <a href="{$link}" {$attributes}>
    {$id == '2' ? 'Тест' : $menutitle}
  </a>
  {$wrapper}
</li>`В моем случае, написание кода на Fenom — даст каке-либо преимущество?Спасибо.
                В моём варианте можно поменять не один пункт меню, а несколько, если это понадобится:
                    <li{$classes}>
  <a href="{$link}" {$attributes}>
    {switch $id}
      {case 2}
        Тест
      {case 7}
        Контактная информация
      {case 13}
        Новости
      {case default}
        {$menutitle}
    {/switch}
  </a>
  {$wrapper}
</li>            
                Доброе время суток, Илья.
Благодарю за подсказку. Как раз соображал, как у нескольких поменять.
                    Благодарю за подсказку. Как раз соображал, как у нескольких поменять.
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.