-13 / 6 / 6
Регистрация: 04.08.2015
Сообщений: 568
|
||||||||||||||||
Acordeon Side Menu в Laravel01.09.2023, 13:35. Показов 1379. Ответов 17
Метки нет Все метки)
(
Пытаюсь перевести сайт с Joomla на Laravel. Вроде особых сложностей не было. Но споткнулся на боковом меню. В сайте на joomla использовал модуль типа http://joomla4ever.ru/extensio... -menu.html
Пример его работы тут https://rednord.md/index.php/r... e-la-retea Для меню под laravel взял за основу это https://www.nicesnippets.com/b... l-treeview и это http://dle-net.ru/index.php?newsid=979 Подрехтовал немного стили и меню стало похоже на то которое на сайте Joomla. Но проблема в том, что меню работает только по клику на элемент. Когда открывается собственно страница суб меню, само меню перезагружается и субменю закрывается. Вопрос в том как сделать так, чтобы субменю всех уровней оставалось открыто после клика по элементу субменю и загрузки соответствующей ему страницы сайта. Blade у меня выглядить так:
Вроде все работает. Но... не понимаю как заставить меню оставаться открытым при клике на ссылку субменю или суб суб .. и т.д. меню и загрузке соответствующей страницы сайта.
0
|
01.09.2023, 13:35 | |
Ответы с готовыми решениями:
17
Laravel menu Конфликт между Navigation Drawer и Side Menu Ремонт Холодильник Акаi ARL2522MS side-by-side, доза фреона 600а |
![]() 2481 / 1406 / 665
Регистрация: 23.08.2015
Сообщений: 3,546
|
|
01.09.2023, 15:29 | |
VlGuvin, Я бы разбилл на 2 этапа. Сначала сформировать данные для вывода, потом уже подставить в html. Для формирования данных можно выделить отдельный класс. Меню может состоять не только из одной таблицы. Поэтому разные менюшки удобнее подгонять под единый формат.
В таком случае и шаблон html будет более чистым, он не будет перегружен излишней логикой, можно будет проще подменять и модифицировать шаблон. Ну и больше маневра для формирования. В вашем случае можно собрать id-шники заранее по parent-ам активного пункта меню и делать проверку на in_array - но это частный случай. Можно сделать и более универсальный подхзод - рекурсивно обходить массивы и помечать активные пункты.
0
|
-13 / 6 / 6
Регистрация: 04.08.2015
Сообщений: 568
|
||||||
01.09.2023, 17:14 [ТС] | ||||||
Тоесть пункт субменю или суб суб я выбираю вручную кликом. Затем клик на нужный пунк и хочу, чтобы при загрузке страницы соответствующей этому пункту все осталось развернутым (раскрытым). А оно все закрывается.
0
|
-13 / 6 / 6
Регистрация: 04.08.2015
Сообщений: 568
|
|||||||||||
01.09.2023, 20:32 [ТС] | |||||||||||
В данном случае кода, все нужное добавляется в скрипте при клике на элемент меню имеющий подменю. Но это в ручном режиме.
Добавлено через 5 минут Теперь нужно понять как это добавлять (не добавлять) в нужные места html при загрузке страницы.
0
|
![]() 2481 / 1406 / 665
Регистрация: 23.08.2015
Сообщений: 3,546
|
||||||||||||||||||||||||||
01.09.2023, 21:01 | ||||||||||||||||||||||||||
Вы видимо не поняли. Я предлагаю разделить на 2 этапа. Для начала сформировать массив данных в таком виде
Для этого вы можете сделать все ТООЖЕ самое, что и в шаблоне, только формировать массив, и в конце еще активировать родителей. К примеру.
Чуток подправил. Не будем углубляться, как это вообще правильно делать. Попробуем допилить ваш вариант) Добавлено через 4 минуты VlGuvin, Единственное что я blade плохо знаю. Там подправите если что.
1
|
-13 / 6 / 6
Регистрация: 04.08.2015
Сообщений: 568
|
|||||||||||
01.09.2023, 21:18 [ТС] | |||||||||||
Спасибо. В общих чертах понял. Нужно будет еще разобраться. Наверное Ваш вариант правильный.
Но я пытаюсь уже допилить что имеется. Вроде должно сработать. Это основной html (blade.php)
0
|
-13 / 6 / 6
Регистрация: 04.08.2015
Сообщений: 568
|
||||||||||||||||
02.09.2023, 20:25 [ТС] | ||||||||||||||||
Таки да. Непосредственно в blade активировать нужные елементы меню оставив другие неактивными в цикле не получается.
Не придумал способа как в обратном порядке обнаруживать нужных родителей если они есть. Пытаюсь пойти Вашим путем. Ругается на return
Далее стопорится в item.blade.php с ошибкой Illegal string offset 'is_active' (View: C:\MyDesigns7\PhpPrj\PhpStormPrj\Laravel RedNord\resources\views\menu\item.blade. php)
0
|
![]() 2481 / 1406 / 665
Регистрация: 23.08.2015
Сообщений: 3,546
|
||||||
02.09.2023, 23:10 | ||||||
VlGuvin, Вижу, что массив криво сформировался. тут ошибка
Вот так правльно
1
|
-13 / 6 / 6
Регистрация: 04.08.2015
Сообщений: 568
|
|||||||||||
03.09.2023, 09:37 [ТС] | |||||||||||
private function transformItem($menu) откорректировал на $item['items'][]
Если в public function getData(): array
1
|
-13 / 6 / 6
Регистрация: 04.08.2015
Сообщений: 568
|
||||||
03.09.2023, 10:27 [ТС] | ||||||
Получилось. Спасибо. Немного подправил blade
Меню раскрывается при загрузке страницы сответствующей пункту из суб суб меню
0
|
-13 / 6 / 6
Регистрация: 04.08.2015
Сообщений: 568
|
|||||||||||
06.09.2023, 14:16 [ТС] | |||||||||||
0
|
-13 / 6 / 6
Регистрация: 04.08.2015
Сообщений: 568
|
||||||
17.04.2024, 20:17 [ТС] | ||||||
Премного благодарен sad67man за помощь по формированию бокового меню.
Продолжая тему с боковым меню пытаюсь создать линки для breadcrambs (линки активных элементов меню).
Но когда я пытаюсь пойти по ссылке предпоследнего линка меню закрывается (картинка 2) Должно быть открытое с подсветкой активных пунтов (картинка 3) Меню закрывается (все результати метода activateItems false) только когда ссылка на пункт меню имеющий в своем составе подменю и сам пункт является поменю от предыдущего. Все работает правильно если переход по ссылке на пункт меню не имеющий подменю. Также все работает верно для первого уровня подменю (картинка 4) Подскажите пожалуйста как нужно модифицировать private function activateItems(& $items): bool чтобы меню оствалось открытое при переходе на пункт имеющий в своем составе подменю ($item['is_active'] был true для всех активных пунктов).
0
|
![]() 2481 / 1406 / 665
Регистрация: 23.08.2015
Сообщений: 3,546
|
||||||
17.04.2024, 21:21 | ||||||
![]() Решение
1
|
-13 / 6 / 6
Регистрация: 04.08.2015
Сообщений: 568
|
|
18.04.2024, 11:22 [ТС] | |
Таки да. Работает. Спасибо.
0
|
18.04.2024, 11:22 | ||||||
Помогаю со студенческими работами здесь
18
Ремонт Х-к Teka NF660i side by side нет регулировки температуры в морозильнике Холодильник BOSCH KFU 5750/03 (side by side), Подобрать компрессор
Посоветуйте простую сборку Low-Side & High-Side Whirlpool Side by Side S25D RSS33-A/G Version 8586 168 10010, нестабильная работа силовой платы Искать еще темы с ответами Или воспользуйтесь поиском по форуму:
|
|
Новые блоги и статьи
![]() |
||||
Агрегаты и сущности в DDD микросервисах
Javaican 10.04.2025
Разработка современных программных систем часто приводит на распутье: монолит или микросервисы? Даже при выборе микросервисной архитектуры многие команды сталкиваются с проблемой правильного. . .
|
Многопоточность в C#: Task и параллельное программирование
UnmanagedCoder 10.04.2025
Современные процессоры уже давно перестали наращивать тактовую частоту в пользу увеличения количества ядер. Это создало интересную ситуацию: разработчики, привыкшие к последовательному. . .
|
Линейное решение нелинейной задачи. Формулы от LM по моему решению пока не проверял. В итоговой её формуле видно её заблуждение.
Hrethgir 10.04.2025
В продолжение
Эта LM дала ответ похожий на нормальный.
В комментриях мой комментарий - похоже она ошиблась с выведением итоговой формулы, но остальные проверю.
Assistant
qwen2. 5-14b-instruct
. . . .
|
Переменные в Python
py-thonny 10.04.2025
Переменная в программировании — это символическое имя, связанное с областью памяти, в которой хранится значение. Она позволяет получать доступ к данным через понятные человеку идентификаторы, а не. . .
|
Многопоточность в C#: Task и асинхронные операции
UnmanagedCoder 10.04.2025
Многопоточность позволяет выполнять несколько операций одновременно, что важно для решения двух основных задач: повышения скорости выполнения вычислительно-сложных операций и сохранения отзывчивости. . .
|
Линейное решение не линейной задачи (емкость вычислений в сравнении с традиционными решениями пока не определена).
Hrethgir 10.04.2025
В рамках предстоящих вычислений пришлось (да, я тоже знаю про корень числа, и про степеня, и прочие теоремы, но. . . ) найти способ нахождения отношения двух углов. . . .
|
Запуск контейнеров Docker на ARM64
Mr. Docker 09.04.2025
Появление таких решений, как Apple M1/ M2, AWS Graviton, Ampere Altra и Raspberry Pi, сделало использование ARM-систем обыденностью для многих разработчиков и DevOps-инженеров. При этом Docker,. . .
|
Vue SFC компонент на PHP с Fusion
Jason-Webb 09.04.2025
PHP на сервере и JavaScript на клиенте — классическое сочетание, которое, несмотря на свою эффективность, создает определенный когнитивный диссонанс при разработке. В этом контексте появляются. . .
|
TypeScript vs JavaScript: Отличия и когда что использовать
Reangularity 09.04.2025
JavaScript появился в 1995 году как творение Брендана Эйха и быстро стал основой интерактивности в вебе. За свою историю он прошел путь от простого языка для манипуляций с DOM до полноценной. . .
|
Подключение Kafka к Elasticsearch
Codd 09.04.2025
Apache Kafka и Elasticsearch — две мощные технологии, которые при совместном использовании создают эффективную платформу для обработки и анализа данных в реальном времени. Kafka, выступая в роли. . .
|