Бормотухи.НЕТ

Вернуться   Бормотухи.НЕТ > Web-мастеру > vBulletin 3.х > Инструкции по vBulletin
Расширенный поиск

Инструкции по vBulletin Всевозможные мануалы, FAQ и инструкции по vBulletin

Ответ
 
Опции темы Поиск в этой теме
Старый 30.03.2010, 20:32 Вверх   #1
Коварный тип
 
Аватар для Serberg
Serberg вне форума
Доп. информация
Хорошо Закрытие/редирект внешних ссылок [by kerk]

Закрытие/редирект внешних ссылок

Автор модификации kerk. [тема автора]
Работает на 3.8.4.

Текст автора: Сразу предупреждаю, редактирование исходного файла! (для себя уже решил, что дальше третьей линейки обновлять форум не собираюсь) поэтому те, кого в принципе не интересуют хаки с редактированием исходных файлов движка, могут дальше не читать.

=========
Установка затрагивает:
1. редактирование одного файла
2. добавление одной настройки в админке
3. добавление небольшого яваскрипта в в шаблон
=========

1. Редактируем файл includes/class_bbcode.php ищем там функцию function handle_bbcode_url($text, $link). Весь код функции заменяем новым:

PHP код:
    function handle_bbcode_url($text$link)
    {
        
$rightlink trim($link);
        if (empty(
$rightlink))
        {
            
// no option -- use param
            
$rightlink trim($text);
        }
        
$rightlink str_replace(array('`''"'"'"'['), array('`''"'''', '['), $this->strip_smilies($rightlink));

        // remove double spaces -- fixes issues with wordwrap
        $rightlink = str_replace('  ', '', $rightlink);

        if (!preg_match('
#^[a-z0-9]+(?<!about|javascript|vbscript|data):#si', $rightlink))
        
{
            
$rightlink "http://$rightlink";
        }

        if (!
trim($link) OR str_replace('  '''$text) == $rightlink)
        {
            
$tmp unhtmlspecialchars($rightlink);
            if (
vbstrlen($tmp) > 55 AND $this->is_wysiwyg() == false)
            {
                
$text htmlspecialchars_uni(vbchop($tmp36) . '...' substr($tmp, -14));
            }
            else
            {
                
// under the 55 chars length, don't wordwrap this
                
$text str_replace('  '''$text);
            }
        }
        static 
$current_url$current_host$allowed;
        
$is_external true;
        if (!isset(
$current_url))
        {
            
$current_url = @parse_url($this->registry->options['bburl']);
            
$current_host preg_replace('#:(\d)+$#'''$current_url['host']);

            
$allowed preg_split('#\s+#'$this->registry->options['url_external_whitelist'], -1PREG_SPLIT_NO_EMPTY);
            
$allowed[] = preg_replace('#^www\.#i'''$current_host);
            
$allowed[] = preg_replace('#^www\.#i'''$current_url['host']);
        }
        
$target_url preg_replace('#^([a-z0-9]+:(//)?)#'''$rightlink);
        foreach (
$allowed AS $host)
        {
            if (
stripos($target_url$host) !== false)
            {
                
$is_external false;
            }
        }
        
// standard URL hyperlink
        
if(!$is_external)
        {
              return 
"<a href=\"$rightlink\" target=\"_blank\">$text</a>";
        }else{
              
$uniqid substr(md5(uniqid(rand(), true)), 010);
              return 
"<span id=\"extlink_" $uniqid "\" title=\"External Link, no Referer ".$rightlink."\" style=\"text-decoration:underline; cursor: pointer;\" onclick=\"return open_external('$rightlink', this.id);\">$text</span>";
        }
    } 
2. Устанавливаем хак от kerk'a под названием Debug Mode From AdminCP (режим отладки). Включаем его для админ. панели.

3. Идем: Админка => Основные настройки => Настройки ББ кодов => [Добавить настройку]. Заполняем формку данными:

Имя переменной: url_external_whitelist
Настройки группы: Настройки ББ кодов
Продукт: vBulletin
Заголовок: Белый список доменов
Описание:

В этом пункте вы можете указать домены, которые не будут открываться яваскриптом.<br />
Разделяйте домены переводом строки, и <b>не</b> указывайте http://<br />
пример: vbhelp.org
Коды опций: textarea
По умолчанию: _оставляем_поле_пустым_
Тип для проверки данных: Free
Все остальное оставляем как есть

4. Открываем шаблон headinclude во всех стилях и в самый низ добавляем код яваскрипта:

PHP код:
<script type="text/javascript">
<!--
function 
open_external(urlid)
{
     
window.open('about:blank'id);
     
w.document.write('<meta http-equiv="refresh" content="0;url='+url+'">');
     
w.document.close();
     return 
false;
}
-->
</script> 
Сохраняем изменения и радуемся. Редиректы будут работать только для новых сообщений. Для того чтобы ссылки на форуме поменялись нужно сделать в базу запрос:

PHP код:
TRUNCATE TABLE postparsed 
если есть префикс у таблиц, его нужно добавить к postparsed, пример:
префикс: vb_

выполняем запрос:

PHP код:
TRUNCATE TABLE vb_postparsed 

В виде хака для линейки 3.8.х:
kr_external_links.rar

Последний раз редактировалось Serberg; 24.08.2011 в 13:19..
  Ответить с цитированием
7 пользователя(ей) сказали cпасибо:
Старый 03.07.2010, 13:01 Вверх   #2
Коренной житель
 
Аватар для Error2012
Error2012 вне форума
Доп. информация
По умолчанию

Сергей, у Вас именно этот установлен?
  Ответить с цитированием
Старый 03.07.2010, 13:49 Вверх   #3
Коварный тип
 
Аватар для Serberg
Serberg вне форума
Доп. информация
По умолчанию

Цитата Сообщение от Error2012 Посмотреть сообщение
Сергей, у Вас именно этот установлен?
Да. работает только под 3.8.4 и все.
  Ответить с цитированием
Cказали cпасибо:
Старый 02.09.2010, 23:58 Вверх   #4
Коренной житель
 
Аватар для Haggard
Haggard вне форума
Доп. информация
По умолчанию

Не срабатывает эта функция, ошибка в коде, в чем тут проблема подскажите?

  Ответить с цитированием
Старый 03.09.2010, 01:16 Вверх   #5
Коварный тип
 
Аватар для Serberg
Serberg вне форума
Доп. информация
По умолчанию

Цитата Сообщение от Haggard Посмотреть сообщение
Не срабатывает эта функция, ошибка в коде, в чем тут проблема подскажите?
У тебя версия движка 3.8.4 ? Этот код именно для 3.8.4 и никакой другой.

В топик автора нырни, там найдешь для 3.8.х вариант.
  Ответить с цитированием
Cказали cпасибо:
Старый 03.09.2010, 18:37 Вверх   #6
Коренной житель
 
Аватар для Haggard
Haggard вне форума
Доп. информация
По умолчанию

Цитата Сообщение от Serberg Посмотреть сообщение
У тебя версия движка 3.8.4 ? Этот код именно для 3.8.4 и никакой другой.

В топик автора нырни, там найдешь для 3.8.х вариант.
Да движок 3.8.4 Спасибо почитал я там коменты , ставить это не буду, откатываюсь обратно...
  Ответить с цитированием
Старый 05.09.2010, 02:44 Вверх   #7
Новичок
 
Аватар для Kubig
Kubig вне форума
Доп. информация
По умолчанию

У меня 3.8.6 и всё работает.
  Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
Старый 13.03.2011, 15:00 Вверх   #8
Новичок
 
Аватар для miks0077
miks0077 вне форума
Доп. информация
По умолчанию

Под 3.8.7 не будет работать?
  Ответить с цитированием
Старый 13.03.2011, 15:09 Вверх   #9
Коварный тип
 
Аватар для Serberg
Serberg вне форума
Доп. информация
По умолчанию

Цитата Сообщение от miks0077 Посмотреть сообщение
Под 3.8.7 не будет работать?
http://www.bormotuhi.net/showpost.ph...23&postcount=3

Для остальных смотрим тут: http://vbsupport.org/forum/showthread.php?t=34549
  Ответить с цитированием
Старый 23.08.2011, 21:42 Вверх   #10
Коренной житель
 
Аватар для Palamar
Palamar вне форума
Доп. информация
По умолчанию

Подскажите а для 3.8.5 как закрыть внешние ссылки?
  Ответить с цитированием
Старый 23.08.2011, 22:15 Вверх   #11
.:V.I.P.:.
 
Аватар для Sampler
Sampler вне форума
Доп. информация
По умолчанию

Palamar, делайте всё по инструкции, на 3.8.7 прекрасно работает. Думаю, что на всей линейки 3.8 будет работать
  Ответить с цитированием
Старый 06.02.2013, 09:39 Вверх   #12
Пользователь
 
Аватар для bbegles
bbegles вне форума
Доп. информация
По умолчанию

Выдает ошибку при открытии любой темы или просмотра профиля пользователя:



Все делал по инструкции... даже делал SQL запрос в БД:

PHP код:
TRUNCATE TABLE postparsed 
все ровно не меняются ссылки((
в файле includes/class_bbcode.php после возвращении функции
PHP код:
function handle_bbcode_url($text$link
работает, только нет никаких изменений

В чем может быть проблема???

версия движка 3.8.4 PL2

Последний раз редактировалось bbegles; 06.02.2013 в 09:43..
  Ответить с цитированием
Старый 06.02.2013, 09:44 Вверх   #13
Коварный тип
 
Аватар для Serberg
Serberg вне форума
Доп. информация
По умолчанию

bbegles, вопрос наверно сюда: http://vbsupport.org/forum/showthread.php?t=34549
А в целом я ставил на 3.8.4 без продукта хака - все отлично работало.
  Ответить с цитированием
Старый 25.03.2013, 15:11 Вверх   #14
himich.com
 
Аватар для himichcom
himichcom вне форума
Доп. информация
По умолчанию

Цитата Сообщение от Serberg Посмотреть сообщение
У тебя версия движка 3.8.4 ? Этот код именно для 3.8.4 и никакой другой.
Есть ли что то подобное для 3,8,7 pl3?
  Ответить с цитированием
Старый 25.03.2013, 15:13 Вверх   #15
Коварный тип
 
Аватар для Serberg
Serberg вне форума
Доп. информация
По умолчанию

Jora3decb, чуть выше ссылка в топик автора
  Ответить с цитированием
Ответ

Метки
external url, redirect, редирект

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Инструкция] Редирект внешних ссылок + белый список Dobry Инструкции и модификации для vBulletin 4.x 10 03.03.2017 19:13
Видеоурок "Чистка шаблонов от внешних ссылок и скриптов на примере шаблона DLE" Serberg Инструкции, модификации и статьи для DLE 40 03.01.2013 18:23
[ Мод ] Переадресация для ссылок Serberg Модули, Хаки, Примочки для DLE 4 21.12.2011 00:03
[Вопрос] в четвертую булку редирект штоле встроен? Ganjabass vBulletin 4.x 1 26.01.2011 11:09
Закрытие тем Amber Игры на форуме 8 23.01.2009 16:49


Текущее время: 20:07. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2020, vBulletin Solutions, Inc. Перевод: zCarot
 

Время генерации страницы 0.19286 секунды с 11 запросами