Как все ссылки сделать "в новом окне"?
Можно это определить через CSS?
Можно сделать по условию?
ЗЫ
Вопрос конечно не совсем по Друпалу, но прошу отнестись снисходительно :).
Как все ссылки сделать "в новом окне"?
Можно это определить через CSS?
Можно сделать по условию?
ЗЫ
Вопрос конечно не совсем по Друпалу, но прошу отнестись снисходительно :).
Незнаю, то что нужно или нет, но вот модуль который добавляет ко внешним ссылкам значок и открывает их в новом окне:
http://drupal.org/project/extlink
и ещё пару модулей со ссылками видел, но уже забыл
поройтесь на друпал.орг )
Комментарии
через цсс - нельзя.
если координально прям все, то можно через джава скрипт я думаю.
иначе - просто руками в соотвествующих шаблонах прописать target=_blank
прикольно, это вообще кому-нибудь ещё в голову приходило.
искать ссылки в шаблонах трудновато будет, т.к. там только вызовы функций одни - это в /includes, а это зачем интересно, кому охота тысячи окон открывать?
Вроде можно чего-то добавить в urlfilter.module для внешних линков (target=_blank). У меня правда не вышло. Если есть готовый рецепт для него - было бы очень хорошо
если ссылка внешняя, значит создана в рукопашную - так там и надо писать. а так надо пробывать в модуле path.module и добавлять бокс с функцией "открыть в новом окне"
можно дороботать url()
вот наткнулся на статейку на drupal.org по этой теме. Смотрите там то что надо.
Module to choose whether external links open in new window?
http://drupal.org/node/23857
только одно НО, придется менять файлы из ядра
либо надеяться, что кто-либо из тех, кто хорошо знаком с php напишет модуль фильтра, который будет сравнивать если ссылка начинается с нашего домена, то ничего не делать, а если с дркгого, то менять код на открытие в новом окне.
Спасибо всем участвовавшим. Жаль только решения так и не было.
Ну вот, наконец появилось время и занялся я этой проблемой.
В результате копаний в интернете и использования метода "научного тыка" решение нашел.
Проблема решается использованием скрипта на Яве.
Сразу предупреждаю, что Ява я не знаю. Поэтому претензии по "красоте кода" не принимаются :-).
<!--
var
pause_time = .5; // в секундах, период обхода страницы
function LinksToBlank() {
//обойдем страницу и исправим сслыки
for (var NumLink = 0; NumLink < document.links.length; NumLink++)
{
iLink = String(document.links[NumLink]);
//обращаем внимание на второй параметр substring, это длинна строки с адресом сайта
if (iLink.substring(0, 20) !== "http://www.MySite.ru")
{
document.links[NumLink].target='_blank';
}
}
//обойдем и фреймы
for (var NumFrame = 0; NumFrame < parent.frames.length; NumFrame++)
{
for (var NumLink = 0; NumLink < parent.frames[NumFrame].document.links.length; NumLink++)
{
iLink = String(parent.frames[NumFrame].document.links[NumLink]);
//обращаем внимание на второй параметр substring, это длинна строки с адресом сайта
if (iLink.substring(0, 20) !== "http://www.MySite.ru")
{
parent.frames[NumFrame].document.links[NumLink].target='_blank';
}
}
}
setTimeout("LinksToBlank();",pause_time*1000);
}
LinksToBlank();
// -->
</script>
Все ссылки на на другие сайты будут открываться в новом окне. Впрочем условия каждый может изменить под себя.
Поместить этот скрипт можно прямо в "проблемную" страницу или в page.tpl.php.
И не забудьте заменить "http://www.MySite.ru" на адрес вашего сайта.
Вот такой код. Может кому пригодится.
Мне этот скрипт необходим для нормальной работы "информеров".
"Информер" может быть недоступен. Проблема в том, что когда недоступен "информер", то недоступен и сайт :-(.
Проблема решается помещением "информера" в фрэйм. Но появляется другая проблема, некоторые "информеры" открывают ссылки во фрэйме, что совершенно никуда не годится. А с этим скриптом, проблема решается.
Отличный скрипт! СПАСИБО!!!! Это мне и надо было!
Незнаю, то что нужно или нет, но вот модуль который добавляет ко внешним ссылкам значок и открывает их в новом окне:
http://drupal.org/project/extlink
и ещё пару модулей со ссылками видел, но уже забыл
поройтесь на друпал.орг )
А мне кажется, что лучше в самом коде покопаться и добавить несчастный _blank
ИМХО.