Господа, посоветуйте решение, плз, или направление куда копать:
Хочу все внешние ссылки на сайте при выводе шифровать, чтобы пользователь видел ссылку на мой сайт, как-нибудь в виде http://site.com/redirect/__шифровка__. Шифровать можно, ну хотя бы через base64_encode. Пользователь кликает ссылку и шифровка в качестве параметра возвращается на сайт, дешифруется и пользователь редиректится куда ему надо.
Готового модуля не нашел, использовать pathauto и городить базу ссылок не хочется.
Предполагаю, что это можно делать на лету, но никак не могу понять где прицепиться.
Спасибо.
Комментарии
Себе писал как-то на базе extlink вроде.
Подключается как фильтр ввода с именем elf, в цепочке фильтров нужно что бы был в самом конце.
Делает такие шифры:
http://yandex.ru
шифрует в
http://domain.tld/goto/eWFuZGV4LnJ1
http://drupal.ru/node/22577
шифрует в
http://domain.tld/goto/ZHJ1cGFsLnJ1L25vZGUvMjI1Nzc=
и через хук меню делает редирект на конечную страницу.
За не очень чистый код не РУГАТЬ! и в лицо ногами НЕ БЫТЬ!
С Вас стотыщьпицот мне на кофе.
забыл добавить: Этот фильтр для drupal 6
Для drupal 5 нужно менять хуки меню и фильтра, но у меня не спрашивайте как - апи 5-го drupal`а забыл полностью еще год назад!
А в чем прикладной смысл таких фокусов?
Смысл в непередачи PR страницы на внгешние ресурсы, и отсюда отсутствие интереса спамеров при постинге левых ссылок.
А у меня вопрос:
если мы будем
http://yandex.ru
оформлять через параметр
http://example.com/goto/yandex.ru,
то разве PR страницы будет перетекать на внешний ресурс?
Т.е. вопрос в том, какой смысл шифровать ссылки, если они все равно не будут прямо указывать на другой ресурс?
и конечно в robots.txt нужно закрыть папку /goto lkz лучшего эффекта
Спасибо большое. Ща буду копать.
П.С. Стотыщпицот возьмите в бухгалтерии и расписаться не забудьте.
П.С. Стотыщпицот в бухгалтерии взял. В ведомости смайлег поставил.
А можн подробную инструкцию по усттановке?
Залил, активировал в админке.
При создании новых постов с внешними ссылками редирект не работает.
Дайте инструкцию подробную!
Спасибо.
в фильтре ввода для данного типа материала включите elf и измените порядок сортировки чтоб elf был после всех ссылкообробатывающих фильтров.
Спасибо большое
Vladimir_VVV, отличный модуль! Давно такое искал для друпала, а то только на ВордПрессе видел такой, и не мог поверить, что для Друпала не могут придумать автоматический шифратор с редиректом внешних ссылок...
Кстати, а можно как-то добавить пару сайтов типа в "избранное", для которых бы модуль не применял шифрование адреса и редирект?
> Прикрепленный файл elf.rar
> Размер 2.59 кб
там elf.module
было
$link = str_replace($match[1], '/goto/'.base64_encode(str_replace('http://','',$match[1])), $link);
стало
$www_white_list = array('ya.ru','mail.ru');
foreach ($www_white_list as $white_list_value => $value) {
if (substr_count($match[1], $white_list_value)>0) {
$link = str_replace($match[1], '/goto/'.base64_encode(str_replace('http://','',$match[1])), $link);
}
}
}
спасибо огромное за модуль, работает на ура
Повторюсь, можно ли как-то добалять адреса сайтов типа в "избранное", для которых бы модуль не применял шифрование адреса и редирект? Например, для дружественных сайтов/партнеров, которым бы я не против передать некоторый вес (PR,тИЦ) страницы.
Ну надо просто сделать соответствующую проверку. Если ссылка в "типа в избранном", то не шифровать ее.
Или я недопонял вопрос
Установил...
Мне движок предложил обновить его как не поддерживаемую версию на
http://ftp.drupal.org/files/projects/elf-6.x-2.1.tar.gz
обновил.
Включил модуль. Включил фильтр. Сделал его последним.
Картинки для внешних линков добавились (что в общем-то без особой надобности), а вот ссылки как были с прямым переходом, так и остались.
В чем ошибочность моих действий, подскажите?
Еще есть неплохой модуль Go - URL Redirects. Это фильтр ввода, который умеет превращать ссылки вида
<go href="http://yandex.ru">yandex</go>
в http://example.ru/go/123
Причем он ведет статистику кликов, которую можно вытащить из БД своим сниппетом или модулем.
p.s. Вот если бы кто "скрестил" этот модуль и CCK Link, было бы вообще ништяк
Этот модуль по умолчанию не делает редирект, а только помечает внешние ссылки и e-mail картинкой. Чтобы воспользоваться доработкой этого модуля нужно его не обновлять.
Можно использовать custom_url_rewrite_inbound()/custom_url_rewrite_outbound() для этой цели - это позволит шифровать все ссылки сайта выводимые движком через l(), не только содержащиеся в контенте.
Кто нибудь делал модификацию для новых модулей (которые бы не светились в отчете как устаревшие и неподдерживаемые) или может у кого сохранился оригинальный немодифицированный модуль версии 6.х-1.0 чтобы определить внесенные изменения и добавить их в современный модуль elf.
А то краснота в отчетах по модулям немного напрягает. Или может достаточно сменить версию в исходниках, чтобы усыпить бдительность движка.
Я делал. Только вместо автоматического редиректа я сделал страницу "/go", где пользователь получает сообщение типа "Перейти по внешней ссылке или отказаться"...
Меня вариант автоматического редиректа как раз больше устраивает.
А за основу elf брали или другой модуль? Мне в модификации elf понравилась автоматика обработки ссылок, а не указание специальных тегов типа
. Единственно что хотел - это получить модификацию на базе elf-6.x-2.1 чтобы не было "криков" о устаревании модуля.
Не могу понять, почему именно, но редирект у меня не функционирует. После щелчка на внешней ссылке я отправляюсь на goto/хеш_адреса, где получаю "Object not found!" и ошибку 404. Не могу понять, раз у других всё прекрасно работает, значит ошибки в коде нет. Куда же тогда копать?
UPD: Разобрался. У меня на локальной машине корень Друпала localhost/drupal, соответственно, goto должен бы оказываться в localhost/drupal/goto/, а он вместо этого пытается искать localhost/goto.
В общем, те функции, которые реализовал Vladimir_VVV в своей вариации ELF, я перенёс в последнюю версию модуля (6-2.1). Не обещаю, что будет работать беспроблемно, потому что работа свелась практически только к переносу функций Владимира в модуль, но у меня всё действует замечательно. Пользуйтесь прилагаемым патчем на свой страх и риск.
Отличный модуль. Спасибо.
Товарищи, прошу помочь разобраться (может я что не так понимаю?).
Вот этот модуль: http://drupal.org/project/extlink это не тоже смое, что elf? Ведь, вроде, далает тоже самое.
Далее, поставил я себе этот модуль (extlink), посмотрел настройки, а там пишется, что вроде с модулем http://drupal.org/project/links возможна настройка редиректов.
Выходит, что кроме патченного elf и gotwo есть ещё и третье решение?
А если билдить не ссылку а эллемент с уник айдишником в виде параметров, а потом его жабой переваривать и подсовывать на выходе ссылку?
Мне кажется приятнее вариант и юзер будет видеть куда идёт. + меньше тупиковых линков
очень полезно
Попробую потестировать, по варианту Vladimir_VVV не получилось сделать редирект для комментариев.
С версией от Vladimir_VVV разобрался давно, отличная штука, есть там конечно поле для доработок. Например модуль к ссылке через goto-переадресацию добавляет безобразный title повторяя в нем абракадабру ссылки, к примеру так:
title="/goto/d3d3LmVjaG8ubXNrLnJ1L2Jsb2cv=="
Еще хорошо бы добавить усовершенствование против ушлых спамеров, которые ставят не чистую ссылку, а ссылку с кодом без кавычек вокруг адреса сайта:
[a href=http://сайт.ru]текст ссылки[/a]
если адрес сайта без кавычек, переадресация не действует
что нибудь хорошее для 7 друпала появилось в этом вопросе?
Вот посмотрите - http://hdcoder.com/n/19