href=# - это ссылка, которая ведет на вполне конкретную страницу - текущую.
Special menu items - нормально работает, другое дело если в template.php перекрыт хук theme_menu_link, то тогда уж самостоятельно надо проверку и обработку nolink добавить
Смысл в том, чтобы по нажатию на пункт меню открывалось маленькое окно, но при этом переход на страницу не должен происходить (т.е. остаемся на текущей странице сайта).
Значит наверняка нужно, чтобы ссылка вела на страницу с данными для этого окна, на случай, если у пользователя выключен javascript, либо он хочет дать кому-то ссылку на содержимое этого окна, либо если это поисковик. В остальных же случаях отменять переход по ссылки в том скрипте, где происходит обработка нажатия ссылке через return false;
А я скорее для себя стараюсь. Недавно надо было нечто подобное. Сделал через quicktabs но потом сам поюзал/проанализивал и не понравилось. Вот думаю на досуге как лучше сделать.
Комментарии
Меню - Добавить пункт - в поле Адрес вводим #
так не пробовали?
href=# - это ссылка, которая ведет на вполне конкретную страницу - текущую.
Special menu items - нормально работает, другое дело если в template.php перекрыт хук theme_menu_link, то тогда уж самостоятельно надо проверку и обработку nolink добавить
Так не получается - в итоге адрес принимает вид site/%23% (23 - ASCII-код решетки).
vaplas, да, вы правы. Меня интересует именно текущая страница, а не nolink. Как это можно реализовать в Drupal 7?
Воспользоваться токенами для меню, указавав [current-page:url]# или без #
Но смысл таких пунктов в меню? только если для демонстрации
Смысл в том, чтобы по нажатию на пункт меню открывалось маленькое окно, но при этом переход на страницу не должен происходить (т.е. остаемся на текущей странице сайта).
Значит наверняка нужно, чтобы ссылка вела на страницу с данными для этого окна, на случай, если у пользователя выключен javascript, либо он хочет дать кому-то ссылку на содержимое этого окна, либо если это поисковик. В остальных же случаях отменять переход по ссылки в том скрипте, где происходит обработка нажатия ссылке через return false;
В общем нужно реализовать такую конструкцию:
<a href=# onclick="window.open("info.php", "", "width=400, heigth=450, resizable=no");">Пункт меню</a>;
UPD В общем-то интересует просто реализация такой конструкции; предполагается, что скрипты в браузере включены.
А если модулем qucktabs? Я так сделал, фигово то, что у qucktabs длинные ненужные хвосты в адресах по табам
Думаю в идеале должно быть так: на странице есть блок #block-id с нужным контентом, например с ссылками по разделу.
На другой странице по ссылке "nolink" должен быть адрес типа /node-id#block-id где #block-id - это и id блока и анкор на этот блок.
Таким образом, если нет ява-скрипт, то юзер (или робот) попадает на страницу /node-id к анкору #block-id
Если ява-скрипт включен то при нажатии на "nolink" выпадает содержимое #block-id типа как мегаменю.
А лучше как содержимое таба, но не по click, а по hover
Такая менюшка в SugarCRM есть.
Пост по теме http://www.drupal.ru/node/58720
зря стараешься))
лучше посмотри откуда ноги растут у этого вопросика
http://www.drupal.ru/node/84084
А я скорее для себя стараюсь. Недавно надо было нечто подобное. Сделал через quicktabs но потом сам поюзал/проанализивал и не понравилось. Вот думаю на досуге как лучше сделать.