Как сделать пункт меню #

Баг или фича в работе стандартного меню?

 
Посетитель
small user social cms
Сообщений: 19
В общем, суть какая: нужно сделать в стандартном меню следующее:
Кинотеатры:
-- Пушкинский
-- Лермонтовский
-- Тургеневский.

При клике на пункт "Кинотеатры" ничего происходить не должно вообще - только выпадать подменю.

При установке назначения ссылки "Кинотеатры" в # - почему-то при клике переходит на главную, хотя происходить вообще ничего не должно.

Как это исправить?
Модератор
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 1097
Анатолий, попробуйте вместо # в адрес ссылки поставить
Код PHP:
  1. javascript:void(0)
Реклама
cms
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3107
Анатолий, а почему бы не сделать статью или модуль с тремя фотографиями этих кинотеатров и сделать каждую картинку кликабельной? При нажатии на "Кинотеатры" будет она открываться, а уже сам кинотеатр из выпадающего меню или при нажатии на фотографию. Лишняя информативность не помешает. ИМХО
Посетитель
small user social cms
МедальПочетный донор проектаАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2759
PrazdNik:

Анатолий, попробуйте вместо # в адрес ссылки поставить
Код PHP:
  1. javascript:void(0)
все равно будет переход. Но уже по ссылке http: //ваш_сайт/javascript:void(0) т.е. с любой другой страницы будет перекидывать на главную. Инстант автоматом дописывает host...
Тоже задавался вопросом как у ТС. Ответа пока не нашел.
Редактировалось: 1 раз (Последний: 24 июня 2015 в 07:57)
Виджеты, поля и компоненты для instantcms 2 http://www.zau4man.ru/ tm @zau4man
Модератор
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 1097
Zau4man:
все равно будет переход.
На двух проектах разной версии проверял, нет перехода.
Zau4man:
Тоже задавался вопросом как у ТС. Ответа пока не нашел.
Самый лучший вариант предложил Volgomarket
Volgomarket:
сделать статью или модуль с тремя фотографиями этих кинотеатров и сделать каждую картинку кликабельной?
Еще к этим фотографиям добавить описание не помешает.
Посетитель
small user social cms
Сообщений: 19
PrazdNik:
javascript:void(0)
Не работает. Пробовал по разному.

Volgomarket:
... а почему бы не сделать статью или модуль с тремя фотографиями этих кинотеатров ...
Потому что требуется другая логика работы - а именно та, что я описал в первом сообщении. При щелчке по родительскому элементу должно только открываться выпадающее подменю, никаких переходов или открытий страниц.

Zau4man:
Тоже задавался вопросом как у ТС. Ответа пока не нашел.
Не кошерно. От слова "совсем".

PrazdNik:
Самый лучший вариант предложил Volgomarket
Это вообще нельзя рассматривать как рабочий вариант, поскольку, как я уже написал, будет работать совершенно не так, как мне нужно.

Ещё варианты? Неужели остается только хакать \system\controllers\menu\model.php ?
Посетитель
small user social cms
Сообщений: 19
В общем, решил хаком модели.

Файл \system\controllers\menu\model.php
В релизе 2.2.1 строка 176.


заменить:
Код PHP:
  1. if (!$is_root_added && !$is_external) { $item['url'] = href_to($item['url']); }
на
Код PHP:
  1. if (!$is_root_added && !$is_external && $item['url']!="#") { $item['url'] = href_to($item['url']); }
Что делает? Не добавляет хост, если ссылка = #.

Работает ровно так, как мне и нужно.


Предложенный ниже вариант удобней - редактируются только файлы шаблона (модель не изменяется).
Редактировалось: 2 раз (Последний: 24 июня 2015 в 11:55)
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 258
С шаблоне menu.tpl.php
Код PHP:
  1. <?php echo !empty($item['url']) ? $item['url'] : 'javascript:void(0)'; ?>
меняем на
Код PHP:
  1. <?php echo (!empty($item['url']) && $item['url'] != '/javascript:void(0)') ? $item['url'] : 'javascript:void(0)'; ?>
и пишем ссылку javascript:void(0) в меню
Разработка сайтов под ключ. Разработка дополнений. | skype: maga-ingdesign | email: [email protected] | Отзывы | Мой хостинг-провайдер | Магомед
Посетитель
small user social cms
Сообщений: 19
IngDesign:
и пишем ссылку javascript:void(0) в меню

Ваше решение удобнее редактированием только файла в шаблоне (т.е. не изменяются файлы движка, что большой плюс).

Но ссылку нужно использовать в виде "/javascript:void(0)"... Если без слеша - то модель у нему урл прикрутит.
В начало страницы
Предыдущая темаСледующая тема Перейти на форум: