Автоматическое подставление редиректа под внешние ссылки

Бесплатные и интересные решения для сайтов.
Правила форума
1. Темы с названиями Помогите, Как сделать, Хелп, Не могу найти и так далее будут перенесении в мусорку без предупреждения!
2. Любой транс-лит будет удален, так что подумайте стоит ли писать транс-литом.
3. Темы не по тематике этого раздела будут также перенесены в мусорку. (Например по DLE, phpBB, php скриптам и так далее...)
4. Не забываем про Общие правила форума!
Внимание: В этом разделе можно оставлять только готовые скрипты, для вопросов есть раздел Общение!!! :evil: Иначе, получите предупреждение, а потом бан :D .
Ответить
Аватара пользователя
Draft
Сообщения: 722
Зарегистрирован: 21 апр 2008, 11:37

Автоматическое подставление редиректа под внешние ссылки

Сообщение Draft »

На днях научился юзать регулярные выражения ( :D ) и написал скриптик для автоматической замены исходящих ссылок при добавлении сообщения на форуме (только на другие сайты). Думаю понравится тем, кто знает какой вред наносят большое кол-во исходящих (внешних) ссылок на поисковые системы.

Установка:
Идем в форум -> Форма добавления сообщения
Ищем там что-то типа

Код: Выделить всё

<input type="submit" id="frF16" name="sbm" style="width:150px;font-weight:bold;" class="postSubmit" value="$SUBMIT_SIGN$" />

Заменяем на
<script type="text/javascript">
// Script by Draft - http://www.softers.ru/
function preposting() {
mtxt=document.getElementById('message').value;
if(mtxt.indexOf('http://')>-1) {
urlreg=/http:\/\/[a-z0-9\S]*[\s]{0,1}/gi;
for(i=0;i<mtxt.match(urlreg).length;i++) {
if(mtxt.match(urlreg)[i].indexOf('softers.ru')==-1) {
urls_regs=mtxt.match(urlreg)[i];
mtxt=mtxt.replace(urls_regs,'http://www.softers.ru/redirect.htm?'+urls_regs);}}
document.getElementById('message').value=mtxt;}
document.getElementById('submit_button').click();}
</script>
<input id="submit_button" style="display:none" name="sbm" type="submit" value="$SUBMIT_SIGN$" /> <input id="sbm_bt" type="button" onclick="preposting()" style="width:150px;font-weight:bold;" class="postSubmit" value="$SUBMIT_SIGN$" />


Синее меняем на свое.
P.S. страницу редиректа делайте сами или берите отсюда.
Пишу скрипты для uCoz под заказ. Стучать в ICQ[/b]
Vanofuture
Сообщения: 1411
Зарегистрирован: 20 апр 2008, 09:36

Re: Автоматическое подставление редиректа под внешние ссылки

Сообщение Vanofuture »

Draft писал(а):urlreg=/http:\/\/[a-z0-9\S]*[\s]{0,1}/gi;

хм...я бы сделал так:

Код: Выделить всё

/http:\/\/\S+\s?/ig;

Draft писал(а):function preposting() {

Читаем...
Vanofuture
Сообщения: 1411
Зарегистрирован: 20 апр 2008, 09:36

Re: Автоматическое подставление редиректа под внешние ссылки

Сообщение Vanofuture »

А вообще...

Код: Выделить всё

<script type="text/javascript">
function checksubmit(){ // Vanofuture [xcinema.net]
document.addform.message.value=(' '+document.addform.message.value).replace(/\[url\=(http:\/\/(www\.)?(?!xcinema\.net)\S+)\](.+)\[\/url\]/ig,'[url=http://xcinema.net/redir.html?url=$1]$3[/url]').replace(/\s(http:\/\/(www\.)?(?!xcinema\.net)\S+\s?)/ig,'http://xcinema.net/redir.html?url=$1');return true;}
</script>
info
Сообщения: 27
Зарегистрирован: 18 ноя 2008, 08:05

Re: Автоматическое подставление редиректа под внешние ссылки

Сообщение info »

Эмм... А можно ли сделать то же самое, только без этих затрапезных промежуточных страниц при редиректе? Чтобы нажимая на такую внешнюю ссылку-редирект, сразу перенаправляло на другой сайт. И не только для форума, а для любых внешних ссылок сайта.
Ответить