Модуль External Links - внешние ссылки в новом окне.

Аватар пользователя flecus flecus 27 июня 2007 в 0:16

По умолчанию все ссылки на Drupal открываются в том же окне, что не всегда есть гуд. В самом деле, иногда необходимо, чтобы внешние ссылки открывались в отдельном окне, или по крайней мере, чтобы юзер видел, что эта ссылка ведет на сторонний сайт. Именно для этих целей и служит модуль External Links. Он очень прост в настройке и имеет лишь 2 опции:
Одна из них добавляет к ссылкам, ведущим на сторонние сайты такую иконку:, а другая позволяет открывать все внешние ссылки в новом окне. Также их можно использовать совместно

Посмотреть в работе модуль можно здесь

Комментарии

Аватар пользователя Ромка Ромка 27 июня 2007 в 13:44

Прикольно конечно, только та же задача в 5 секунд решается с использованием jquery, при этом нет дополнительной нагрузки на сервер, так как не надо устанавливать никаких доп модулей...

Аватар пользователя Ромка Ромка 27 июня 2007 в 14:35

Идея нагло украдена отсюда: 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")})})
Сейчас немного занят в течение часа адаптирую его так, чтобы он работал также, как и модуль описанный в первом посте, то есть чтобы внешние ссылки выводились с картинкой...

Блин, фильтр форума обрабатывает тэг <?пхп и код криво немного смотрится, я там один пробел вставил, после <? его надо убрать, чтоб код заработал...

Аватар пользователя Ромка Ромка 27 июня 2007 в 16:38

То есть в шаблон друпала достаточно добавить строчку вида:
<?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 станут открываться в новом окне. Сейчас наколдую картинку возле внешних ссылок...

Аватар пользователя Ромка Ромка 27 июня 2007 в 16:49

Во, готов окончательный вариант:
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 – картинка, которая будет выводиться справа от внешней ссылки. Сейчас сделаю еще пару примеров и кину себе в блог.

Аватар пользователя Макс К. Макс К. 28 июня 2007 в 8:08

flecus пишет: "В самом деле, иногда необходимо, чтобы внешние ссылки открывались в отдельном окне,"

Модуль полезен для пометок чужих ссылок (хотя по логике такую пометку должны были бы делать браузеры). Но массовое открывание чужих ссылок в отдельных окнах вряд ли разумно. Аргументы - в моей статье "Поголовное изнасилование всех посетителей Drupal.ru".

Аватар пользователя warmrobot warmrobot 28 июня 2007 в 12:01

Полностью согласен с мнением предыдущего оратора Smile

Ссылки в новом окне ужасно раздражают. Если надо - я просто зажимаю Ctrl. Точно так же раздражают клиенты, которые требуют такие ссылочки "чтобы не уводить клиента с сайта". Если сайт отстойный юзера такой фигней не удержишь.

Я думаю в любой книжке по юзабилити или просто веб-дизайну можно прочесть почему ссылки в новом окне - зло.

Аватар пользователя flecus flecus 28 июня 2007 в 14:54

... а меня лично раздражает постоянно жамкать на правую кнопку, когда например на том же Drupal.org надо посмотреть пример на стороннем сайте. Часто я забываю об этом, приходится возвращаться. А это дополнительная потеря времени. Да и в качестве поисковика использую чаще именно Яндекс вместо Гугля именно по этой причине...

Аватар пользователя MIR MIR 28 июня 2007 в 15:17

Прошу прощения, немного не в тему.
А что-то подобное есть под 4.7? Или может есть рецепт по установки Этого модуля под 4.7?

Аватар пользователя Ромка Ромка 28 июня 2007 в 17:32

А что-то подобное есть под 4.7? Или может есть рецепт по установки Этого модуля под 4.7?

Рецепт установки под любой Друпал и под любой другой движок я привел здесь. Не помню был ли jQuery в 4.7, по-моему нет, по этому надо скачать эту библиотеку отсюда и подключить ее в шаблоне страницы.

Аватар пользователя Dead Krolik Dead Krolik (не проверено) 1 августа 2007 в 8:22

Блин, ребята. Забудьте вы о _blank. Такая древность если честно. Если человеку надо - зажмет Ctrl + Shift и откроет в новой вкладке, если не надо - перегрузит текущую страницу в новую. Это не забота, а медвежья услуга.