Слушайте, а при создании навигации на Tailor рили нельзя определять

активный пункт навигации, как в Static Pages?

13 ответов

41 просмотр

В оф демо теме тоже показано как можно сделать

Не знаю актуально тебе еще или нет. Но мало ли плюсов насыпят. Как я делаю активацию пункта меню. Совместно с alpine.js но логику можно организовать и ванильном или вообще только на пыхе, например через компонент или на худой конец прямо в разметке. 1. В чертеже menuItem есть поле area: label: 'Активация пункта меню' type: dropdown span: full tab: 'Настройки' options: blog: 'Все страницы блога' page: 'Все текстовые траницы' emptyOption: 'Прямая проверка URL' В options я указываю зоны. Например для страниц блога post.htm, category.htm и posts.htm зона одна = blog. Это нужно что бы в последствии при нахождении на любой странице блога подсветить конкретную ссылку в меню. Можно сделать отдельный компонент mainMenu и через мой плагин xGlobal сделать его глобальным. Или сделать корневой компонент app и указать его x-data в body элементе. А там соответственно реализовать логику меню. В компоненте есть такой биндинг: bindLink: { [':class']() { if (!checkArea) { return; } let area = this.$el.dataset.area, href = this.$el.href; if (area) { return (this.navArea == area) ? '--active' : ''; } else { return (href == window.location.href) ? '--active' : ''; } } } Соответственно он биндится к ссылке примерно так: {% for item in menu.items %} <a href="{{ item.page | link }}" target="{{ (item.is_external) ? '_blank' : '_self' }}" data-area="{{ item.area }}" class="menu__item" x-bind="bindLink">{{ item.title }}</a> {% endfor %} Ну и что бы у нас заработали зоны нужно в x-init на каждой странице установить активную зону. Например так: <div x-init="navArea = 'blog'"> <h1>{{ post.title | raw }}</h1> </div>

Black Cat
Не знаю актуально тебе еще или нет. Но мало ли плю...

У этой схемы только один минус. Если у тебя в меню будет ссылка с активацией на зону. Например все посты блога. И ссылка из меню на конкретную статью блога. То при переходе на эту статью будет подсвечено 2 ссылки в меню. Но я уверен что это можно решить. Просто пока не копал в этом направлении. На текущий момент мне достаточно такой схемы

Black Cat
У этой схемы только один минус. Если у тебя в меню...

Можно еще рекурсивно с низу вверх не поднять до родителя js’ом, если активен вложенный элемент. А если рекурсивно построены ссылки, то можно еще по началу пути смотреть и активировать нужный элемент. А-ля: - /blog/ - страница с постами блога - /blog/category/:slug - категория блога - /blog/post/:slug - пост Все начинается на /blog/ - подсвечиваем соответствующий пункт.

Vladimir 
Можно еще рекурсивно с низу вверх не поднять до ро...

Даже звучит страшно) Хотя смысл примерно понял.

Black Cat
Даже звучит страшно) Хотя смысл примерно понял.

В целом звучит куда проще чем расписанные группы и обвязка логики. Если элемент меню вложенный - значит у него есть родитель. Значит мы можем до него подняться js’ом, чем навешивать группы в админке, создавая нагрузку на администратора проекта, условия в twig и столбец в БД… А closest() весьма оперативно найдет рутовый элемент родителя при правильно организованной вложенности верстки. ) Другой вопрос если вложенность динамическая. хотя тоже срабатывало))

Vladimir 
В целом звучит куда проще чем расписанные группы и...

Я возможно попробую такой вариант реализовать у себя потом. В целом интересная логика. И возможно будет универсально работать

AIZ
@banofbot

Стикер

Похожие вопросы

Обсуждают сегодня

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Ребят, подскажите, пожалуйста, почему в префиксе к ассетам, которые генерируются через фильтр | theme в шаблоне, стал вдруг появляться index.php? Вот так выглядит ссылка на а...
Виталий
1
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Карта сайта