Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

[FAQ] Ссылки в новом окне

Темы по наиболее часто задаваемым вопросам без привязки к версии phpBB. Читать в первую очередь!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB 3.1.x/3.2.x/3.3.x | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Gisher
phpBB 2.0.12
Сообщения: 857
Стаж: 17 лет 5 месяцев
Благодарил (а): 11 раз
Поблагодарили: 13 раз

[FAQ] Ссылки в новом окне

Сообщение Gisher »

Ссылка уже не актуальна, так как в файле includes/functions.php, нет таких строк:

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

$html    = "$whitespace<!-- $tag --><a$class href=\"$url\">$text</a><!-- $tag -->$append"; 
Есть иное решение?

Ответ: существуют несколько методов изменения поведения ссылок. Выберите для себя один из имеющихся:
  1. Статья в официальной базе знаний, касающаяся открытия ссылок в новом окне
  2. Альтернативный метод изменения поведения ссылок, основанный на использовании JavaScript
  3. Мод Prime Links
vg
phpBB 1.4.0
Сообщения: 38
Стаж: 17 лет 4 месяца
Забанен: Бессрочно

Сообщение vg »

Kovu писал(а):Вне все исправления. Стоит first_post_on_every_page_phpbb3 & Quick reply for phpBB3. Редактирую сообщение с ссылкой. Нажимаю предпросмотр. И в форме редактирования вместо просто е-майл адреса
name@domain.com появляется
name@domain.com" target="_blank
Как исправить? http:// ссылка не портится.
А с этим так и нет решения?

Попробывал решение с http://www.phpbb.com/kb/article/links-o ... w-windows/
Так ообще какие то кракозябры выдало и теперь при редактировании добавляет строкe
onclick="window.open(this.href);return false;
trijin
phpBB 1.0.0
Сообщения: 2
Стаж: 16 лет

Сообщение trijin »

Kovu писал(а):Уважаемый Rayden.
Эту правку тоже делал. Но, всеравно, после например нажатия на предпросмотр. В самом предпросмотре еще все ок, а вот в поле редактирования:

1) Портятся е-майл ссылки.

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

name@domain.com
в

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

name@domain.com" target="_blank
т.к. при изменениях надо кое что учесть.
Rayden писал(а):open includes/functions_content.php,
find this (around line 592):

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

$html    = "$whitespace<!-- $tag --><a$class href="$url">$text</a><!-- $tag -->$append"; 
and replace with this:

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

$html    = "$whitespace<!-- $tag --><a$class href="$url" target="_blank">$text</a><!-- $tag -->$append";
Это немного неверное. (или в обработчики decode надо на мыло тоже встраивать уборку таргета.)

правильная замена:

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

	if($type==MAGIC_URL_EMAIL) {
		$html	= "$whitespace<!-- $tag --><a$class href="$url">$text</a><!-- $tag -->$append";
	} else {
		$html	= "$whitespace<!-- $tag --><a$class target="_blank" href="$url">$text</a><!-- $tag -->$append";
	}

	return $html;
Kovu писал(а): 2.1) Портятся внутренние ссылки
2.2) Портятся длинные ссылки
при приведенном мной изменении эти проблемы так же решаются т.к. в исправлениях Rayden была ошибка последовательности. Таргет желательно добавлять после класса иначе надо менять регулярки в includes/functions.php.
Удачи.

P.S.> вообще атрибут target убран из спецификация HTML по крайней мере у тега A точно. Потому в официале и прибегают к использованию js. Но браузеры понимают и ладно =)[/code]
Аватара пользователя
Rayden
Former team member
Сообщения: 3739
Стаж: 18 лет 9 месяцев
Поблагодарили: 44 раза
Контактная информация:

Сообщение Rayden »

Rayden давно переделал себе по совету отсюда:
http://www.phpbb.com/kb/article/links-o ... w-windows/
И всем того же советует :wink:
phpBB2 FAQ
phpBB3 FAQ
Kastaneda
Former team member
Сообщения: 702
Стаж: 19 лет 5 месяцев
Поблагодарили: 4 раза

Сообщение Kastaneda »

Имеется более простой способ изменения поведения ссылок, основанный на использовании JavaScript.
  • Загрузите файл postlink_onlick.zip
  • Извлеките из архива файл postlink.js и поместите его в папку phpBB3/styles/
  • Откройте файл overall_header.html всех установленных стилей и…
    Найти:

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

    <script type="text/javascript" src="{T_TEMPLATE_PATH}/styleswitcher.js"></script>
    <script type="text/javascript" src="{T_TEMPLATE_PATH}/forum_fn.js"></script>
    Добавить после:

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

    <script type="text/javascript" src="styles/postlink.js"></script>
После этого все ссылки в сообщениях (за исключением локальных) будут открываться в новых окнах без необходимости редактирования старых сообщений.

Взято отсюда. Проверил — внешне всё работает прекрасно.

Добавлено спустя 7 минут 34 секунды:

И небольшое дополнение для пользователей, проделавших изменения, описанные в базе знаний. Данная модификация вынуждает старые ссылки открываться в новых окнах без необходимости редактирования старых сообщений.

Открыть файл viewtopic.php.
Найти:

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

    $message = bbcode_nl2br($message);
    $message = smiley_text($message); 
Добавить после:

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

    $message = preg_replace('/(class="postlink")/','class="postlink" rel="nofollow" target="_blank"',$message); 
Аватара пользователя
Skinny777
phpBB 1.4.0
Сообщения: 34
Стаж: 16 лет 4 месяца

Сообщение Skinny777 »

Попробовал у себя - работает
DJOnic
phpBB 1.0.0
Сообщения: 3
Стаж: 16 лет

Сообщение DJOnic »

Kastaneda
Привет! Если не трудно, выложи сюда файлик postlink.js . Не могу никак на ктут попасть. Регится не дает, а без этого не скачать ((
Спасибо!
Аватара пользователя
Rayden
Former team member
Сообщения: 3739
Стаж: 18 лет 9 месяцев
Поблагодарили: 44 раза
Контактная информация:

Сообщение Rayden »

DJOnic
Не ври, отдает прямо по ссылке в предыдущем посте, даже на ктук заходить не надо.
phpBB2 FAQ
phpBB3 FAQ
Kastaneda
Former team member
Сообщения: 702
Стаж: 19 лет 5 месяцев
Поблагодарили: 4 раза

Сообщение Kastaneda »

По-моему KTUK в настоящее время закрыт на тех. обслуживание. Попробуйте позже, или скачайте с этой ссылки.
DJOnic
phpBB 1.0.0
Сообщения: 3
Стаж: 16 лет

Сообщение DJOnic »

Rayden
Все, сегодня получилось скачать.
Но! У меня ни в одном из шаблонов, кроме как в prosilver нет таких строчек:
$message = bbcode_nl2br($message);
$message = smiley_text($message);


И как мне subsilver2 отредактировать?

Добавлено спустя 9 минут 19 секунд:

Извиняюсь, но забыл добавить, что у меня стоит релиз 3.0Gold.
И поторопился я со своим вопросом.

Нужно сделать так для шаблонов, отличных от prosilver:

Найти в overall_header.html нужного шаблона строку
</head>
и заменить на:
<script type="text/javascript" src="styles/postlink.js"></script>
</head>
Аватара пользователя
amordezomb
phpBB 1.0.0
Сообщения: 6
Стаж: 16 лет 1 месяц
Откуда: Россия, Москва

Сообщение amordezomb »

Kastaneda писал(а):И небольшое дополнение для пользователей, проделавших изменения, описанные в базе знаний. Данная модификация вынуждает старые ссылки открываться в новых окнах без необходимости редактирования старых сообщений.

Открыть файл viewtopic.php.
Найти:

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

    $message = bbcode_nl2br($message);
    $message = smiley_text($message); 
Добавить после:

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

    $message = preg_replace('/(class="postlink")/','class="postlink" rel="nofollow" target="_blank"',$message); 
Большое спасибо!!!
Сделал действия описанные http://www.phpbb.com/kb/article/links-o ... w-windows/ и ссылки в новых постах - стали открываться в новом окне.

Чтобы пофиксировать старые ссылки - произвел замену во viewtopic.php как и описали, и все старые сообщения с ссылками стали тоже открыватся в новом окне.

:!: В дополнение, если к шаблону привязывать postlink.js - то ссылки в новых постах будут двойными, т.е. один клик откроет два новых окна окна.

Проверено в phpBB3 "Olympus" 3.0.0
DJOnic
phpBB 1.0.0
Сообщения: 3
Стаж: 16 лет

Сообщение DJOnic »

amordezomb писал(а):В дополнение, если к шаблону привязывать postlink.js - то ссылки в новых постах будут двойными, т.е. один клик откроет два новых окна окна.
Это только у тебя так. У меня открывается одно окно с сылкой...
Аватара пользователя
amordezomb
phpBB 1.0.0
Сообщения: 6
Стаж: 16 лет 1 месяц
Откуда: Россия, Москва

Сообщение amordezomb »

DJOnic писал(а):Это только у тебя так. У меня открывается одно окно с сылкой...
Не исключаю данный вариант, но тем не менее, и без привязки postlink.js всё работает 8)
boriss
phpBB 1.4.2
Сообщения: 56
Стаж: 18 лет 4 месяца

Сообщение boriss »

Kastaneda

Спасибо, простенько и со фкусом.
http://audi-club.ee - Русский форум Ауди в Эстонии!
Feo
phpBB 1.2.1
Сообщения: 23
Стаж: 16 лет
Благодарил (а): 1 раз

Сообщение Feo »

точно - при установке обоих открывает 2 ссылки (правда одну ссылку, например, опера блокирует)

Все удалил оставил только добавление во viewtopic.php :

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

	$message = preg_replace('/(class="postlink")/','class="postlink" rel="nofollow" target="_blank"',$message); 
При этом при предпросмотре ссылки открываются в том же окне, но уже размещенные на форуме ссылки (старые и новые) открываются в новом окне.

Кто-нибудь знает как можно (где "рыть" в bb_code ?), чтобы сделать не на JavaScript, а в html коде (не на скрипте!) сделать внутренние ссылки открывающимися в том же окне (хотя можно в новом), а все остальные открывались через переадресацию (например, через внутреннюю страницу)? Кстати, такой вариант, кроме всего прочего, позволяет еще и статистику переходов вести.

Добавлено спустя 12 минут 45 секунд:

Кроме всего прочего, если удастся реализовать такой мод - должна резко снизиться эффективность спама, так как ссылки будут далеко и страницу переадресации можно вообще закрыть от индексации с помошью robots.txt
Kastaneda
Former team member
Сообщения: 702
Стаж: 19 лет 5 месяцев
Поблагодарили: 4 раза

Сообщение Kastaneda »

А зачем сразу два метода использовать?
Перенесено из форума FAQ (phpBB 3.0.x) в форум FAQ 28.09.2016 15:02 модератором rxu

Ответить

Вернуться в «FAQ»