По умолчанию все ссылки на Drupal открываются в том же окне, что не всегда есть гуд. В самом деле, иногда необходимо, чтобы внешние ссылки открывались в отдельном окне, или по крайней мере, чтобы юзер видел, что эта ссылка ведет на сторонний сайт. Именно для этих целей и служит модуль External Links. Он очень прост в настройке и имеет лишь 2 опции:
Одна из них добавляет к ссылкам, ведущим на сторонние сайты такую иконку:, а другая позволяет открывать все внешние ссылки в новом окне. Также их можно использовать совместно
Посмотреть в работе модуль можно здесь
Комментарии
Полезно, спасибо!
Коротко и ясно - браво !
спасибо!
Прикольно конечно, только та же задача в 5 секунд решается с использованием jquery, при этом нет дополнительной нагрузки на сервер, так как не надо устанавливать никаких доп модулей...
Ром, поделись опытом, расскажи как : )
Идея нагло украдена отсюда: http://community.livejournal.com/ru_drupal/15044.html
Код надо использовать такой: $(function(){$("div.node a[href^=http:]").each(function(){if(this.host!="<? php print addslashes($_SERVER['HTTP_HOST'])?>")$(this).attr("target","_blank")})})
Сейчас немного занят в течение часа адаптирую его так, чтобы он работал также, как и модуль описанный в первом посте, то есть чтобы внешние ссылки выводились с картинкой...
Блин, фильтр форума обрабатывает тэг <?пхп и код криво немного смотрится, я там один пробел вставил, после <? его надо убрать, чтоб код заработал...
То есть в шаблон друпала достаточно добавить строчку вида:
<?php
drupal_add_js("\$(document).ready(function(){\$(function(){\$(\"div.node a[href^=http:]\").each(function(){if(this.host!=\"" . $_SERVER['HTTP_HOST']. "\")\$(this).attr(\"target\",\"_blank\");})})});", "inline");?>
И все внешние ссылки внутри слоя node станут открываться в новом окне. Сейчас наколдую картинку возле внешних ссылок...
Во, готов окончательный вариант:
drupal_add_js("\$(document).ready(function(){\$(function(){\$(\"a[href^=http:]\").each(function(){if(this.host!=\"" . $_SERVER['HTTP_HOST']. "\")\$(this).attr(\"target\",\"_blank\");$(this).after(\"\");})})});", "inline");
?>
1.jpg – картинка, которая будет выводиться справа от внешней ссылки. Сейчас сделаю еще пару примеров и кину себе в блог.
спасибо, полезно
flecus пишет: "В самом деле, иногда необходимо, чтобы внешние ссылки открывались в отдельном окне,"
Модуль полезен для пометок чужих ссылок (хотя по логике такую пометку должны были бы делать браузеры). Но массовое открывание чужих ссылок в отдельных окнах вряд ли разумно. Аргументы - в моей статье "Поголовное изнасилование всех посетителей Drupal.ru".
Полностью согласен с мнением предыдущего оратора
Ссылки в новом окне ужасно раздражают. Если надо - я просто зажимаю Ctrl. Точно так же раздражают клиенты, которые требуют такие ссылочки "чтобы не уводить клиента с сайта". Если сайт отстойный юзера такой фигней не удержишь.
Я думаю в любой книжке по юзабилити или просто веб-дизайну можно прочесть почему ссылки в новом окне - зло.
... а меня лично раздражает постоянно жамкать на правую кнопку, когда например на том же Drupal.org надо посмотреть пример на стороннем сайте. Часто я забываю об этом, приходится возвращаться. А это дополнительная потеря времени. Да и в качестве поисковика использую чаще именно Яндекс вместо Гугля именно по этой причине...
Прошу прощения, немного не в тему.
А что-то подобное есть под 4.7? Или может есть рецепт по установки Этого модуля под 4.7?
А что-то подобное есть под 4.7? Или может есть рецепт по установки Этого модуля под 4.7?
Рецепт установки под любой Друпал и под любой другой движок я привел здесь. Не помню был ли jQuery в 4.7, по-моему нет, по этому надо скачать эту библиотеку отсюда и подключить ее в шаблоне страницы.
Блин, ребята. Забудьте вы о _blank. Такая древность если честно. Если человеку надо - зажмет Ctrl + Shift и откроет в новой вкладке, если не надо - перегрузит текущую страницу в новую. Это не забота, а медвежья услуга.