Как скрыть подменю у одного пункта wayfinder?

Чтобы скрыть подменю у одного пункта wayfinder в MODX, вы можете использовать два разных подхода: используя дополнительное поле в вашей ресурсе или с помощью контроллера вывода wayfinder.

  1. Используя дополнительное поле в ресурсе:
  • Откройте ресурс, для которого вы хотите скрыть подменю.
  • Вкладка "Расширенные" (Advanced) является местом, где вы можете добавлять дополнительные поля для ресурса.
  • Создайте новое дополнительное поле, например, "hide_submenu", и установите его значение на "1" (значение может быть любым уникальным значением, которое вам нравится).
  • Сохраните изменения.
  • Теперь, в коде wayfinder, вы можете использовать условие для проверки значения "hide_submenu" и скрыть соответствующий пункт меню:
    [[Wayfinder? &startId=`0` &level=`0` &outerClass=`menu` &rowTpl=`submenuRowTpl` 
       &parentRowTpl=`submenuParentRowTpl` &firstParentRowTpl=`submenuFirstParentRowTpl` 
       &lastParentRowTpl=`submenuLastParentRowTpl` &hideSubmenu=`[[*hide_submenu]]`]]
  1. Используя контроллер вывода wayfinder:
  • Создайте файл PHP контроллера, например, "customWayfinderOutput.php", и разместите его в папке "core/components/wayfinder/controller".
  • В вашем контроллере вы можете добавить логику, чтобы определить, какие пункты меню должны быть скрыты. Например, вы можете проверить связанный с ресурсом атрибут или глобальную переменную.
  • В вашем контроллере удалите код, который отвечает за вывод пунктов меню, которые вы хотите скрыть. Например:
    foreach ($resourcesRows as $i => $resource) {
        if ($resource['hide_submenu'] == 1) {
            unset($resourcesRows[$i]);
        }
    }
  • В файле, где вы используете wayfinder, укажите путь к вашему контроллеру вывода:
    [[Wayfinder? &startId=`0` &level=`0` &outerClass=`menu` &rowTpl=`submenuRowTpl` 
       &parentRowTpl=`submenuParentRowTpl` &firstParentRowTpl=`submenuFirstParentRowTpl` 
       &lastParentRowTpl=`submenuLastParentRowTpl` &controller=`customWayfinderOutput.php`]]

Оба подхода позволяют скрыть подменю у одного пункта wayfinder в MODX. Чтобы использовать тот или иной подход, вам нужно определить, что наиболее подходит к вашей конкретной ситуации и требованиям.