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

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

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

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

Сообщение Gisher » 16.12.2007 3:07

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

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

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

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

Аватара пользователя
Rayden
Former team member
Сообщения: 3739
Зарегистрирован: 27.06.2005 1:07
Поблагодарили: 44 раза

Сообщение Rayden » 16.12.2007 3:18

Зачем иное? Просто строчка перехала в другой файл. Надо же голову приложить хоть капельку.
Вот полное решение, с учетом последних изменений в коде:


In styles/prosilver/template/bbcode.html
find this:

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

<!-- BEGIN url --><a href="{URL}" class="postlink">{DESCRIPTION}</a><!-- END url -->


and replace with this:

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

<!-- BEGIN url --><a href="{URL}" class="postlink" target="_blank">{DESCRIPTION}</a><!-- END url -->


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";


Open: includes/functions.php
Find:

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

case 'bbcode_htm':
            return array(
                '#<!\-\- e \-\-><a href="mailto:(.*?)">.*?</a><!\-\- e \-\->#',
                '#<!\-\- l \-\-><a (?:class="[\w-]+" )?href="(.*?)(?:(&|\?)sid=[0-9a-f]{32})?">.*?</a><!\-\- l \-\->#',
                '#<!\-\- ([mw]) \-\-><a (?:class="[\w-]+" )?href="(.*?)">.*?</a><!\-\- \1 \-\->#',
                '#<!\-\- s(.*?) \-\-><img src="\{SMILIES_PATH\}\/.*? \/><!\-\- s\1 \-\->#',
                '#<!\-\- .*? \-\->#s',
                '#<.*?>#s',
            );  


Replace With:

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

case 'bbcode_htm':
            return array(
                '#<!\-\- e \-\-><a href="mailto:(.*?)">.*?</a><!\-\- e \-\->#',
                '#<!\-\- l \-\-><a (?:class="[\w-]+" target="[\w-]+" )?href="(.*?)(?:(&|\?)sid=[0-9a-f]{32})?">.*?</a><!\-\- l \-\->#',
                '#<!\-\- ([mw]) \-\-><a (?:class="[\w-]+" target="[\w-]+" )?href="(.*?)">.*?</a><!\-\- \1 \-\->#',
                '#<!\-\- s(.*?) \-\-><img src="\{SMILIES_PATH\}\/.*? \/><!\-\- s\1 \-\->#',
                '#<!\-\- .*? \-\->#s',
                 '#<.*?>#s',
            );   
Добавлено спустя 2 минуты 25 секунд:

И не 15-й, а 16-й это вопрос в факе.
Переименую, пожалуй.
phpBB2 FAQ
phpBB3 FAQ

Gisher
phpBB 2.0.12
Сообщения: 857
Зарегистрирован: 04.10.2006 7:50
Благодарил (а): 11 раз
Поблагодарили: 13 раз

Сообщение Gisher » 16.12.2007 3:37

Rayden
спасибо, всё прекрасно работает
есть аналогичное решение для вложенных картинок?

Gisher
phpBB 2.0.12
Сообщения: 857
Зарегистрирован: 04.10.2006 7:50
Благодарил (а): 11 раз
Поблагодарили: 13 раз

Сообщение Gisher » 06.01.2008 8:32

Rayden писал(а):И не 15-й, а 16-й это вопрос в факе.
14-й

Аватара пользователя
Rayden
Former team member
Сообщения: 3739
Зарегистрирован: 27.06.2005 1:07
Поблагодарили: 44 раза

Сообщение Rayden » 06.01.2008 18:48

Не умничай. FAQ с тех пор переделали.
phpBB2 FAQ
phpBB3 FAQ

Аватара пользователя
incubus
phpBB 2.0.1
Сообщения: 255
Зарегистрирован: 11.10.2006 23:48
Благодарил (а): 3 раза
Поблагодарили: 1 раз

Сообщение incubus » 07.01.2008 2:35

Что-то до меня не доходит, все правильно сделал, перепроверил, очистил кэш, обновил тему - никаких результатов.
Стоит мод Last post topic on index for phpBB3 (rxu), Posts merging (rxu), Quick reply for phpBB3 (rxu) и статистика Visitors Today (1.0.4). Еще в темах, панель с инфо о юзерах, сдвинута влево.
Изображение

Аватара пользователя
incubus
phpBB 2.0.1
Сообщения: 255
Зарегистрирован: 11.10.2006 23:48
Благодарил (а): 3 раза
Поблагодарили: 1 раз

Сообщение incubus » 07.01.2008 16:30

Я, не написав ни одного нового поста с ссылкой, начала сразу проверять старые сообщения. Получается, что только в новых сообщениях ссылки будут открываться в новых окнах.
Изображение

Kastaneda
Former team member
Сообщения: 702
Зарегистрирован: 06.10.2004 14:29
Поблагодарили: 4 раза

Сообщение Kastaneda » 07.01.2008 17:02

Ссылки в старых сообщениях, обрамлённые тегом [url] будут открываться в новом окне. За это отвечает замена, проделанная в файле bbcode.html. А обычные ссылки наверно не будут открываться в новом окне.

Gisher
phpBB 2.0.12
Сообщения: 857
Зарегистрирован: 04.10.2006 7:50
Благодарил (а): 11 раз
Поблагодарили: 13 раз

Сообщение Gisher » 08.01.2008 11:20

Kastaneda писал(а):ссылки наверно не будут открываться в новом окне.
вы правы, открываются в новом окне только после редактирования сообщения, скорей всего нужен SQL запрос в базу, который обновит все сообщения

Crelby
phpBB 1.4.2
Сообщения: 74
Зарегистрирован: 04.01.2008 15:39
Благодарил (а): 3 раза
Поблагодарили: 5 раз

Сообщение Crelby » 09.01.2008 10:13

Gisher писал(а):есть аналогичное решение для вложенных картинок?
+1 к вопросу.
Искал, не нашёл.

Аватара пользователя
Kovu
phpBB 1.2.1
Сообщения: 20
Зарегистрирован: 23.12.2007 14:18
Благодарил (а): 3 раза

Сообщение Kovu » 12.01.2008 23:16

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

Аватара пользователя
incubus
phpBB 2.0.1
Сообщения: 255
Зарегистрирован: 11.10.2006 23:48
Благодарил (а): 3 раза
Поблагодарили: 1 раз

Сообщение incubus » 13.01.2008 0:01

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

Аватара пользователя
Kovu
phpBB 1.2.1
Сообщения: 20
Зарегистрирован: 23.12.2007 14:18
Благодарил (а): 3 раза

Сообщение Kovu » 13.01.2008 1:01

Будем надеяться, что Гуру чтонибудь придумают. А пока пришлось оставить новую страницу только для bbcode :(

Аватара пользователя
Rayden
Former team member
Сообщения: 3739
Зарегистрирован: 27.06.2005 1:07
Поблагодарили: 44 раза

Сообщение Rayden » 13.01.2008 4:29

Млять, а это для кого я писал? Без этой правки будет вылезать " target="_blank
Rayden писал(а): Open: includes/functions.php
Find:

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

case 'bbcode_htm':
            return array(
                '#<!\-\- e \-\-><a href="mailto:(.*?)">.*?</a><!\-\- e \-\->#',
                '#<!\-\- l \-\-><a (?:class="[\w-]+" )?href="(.*?)(?:(&|\?)sid=[0-9a-f]{32})?">.*?</a><!\-\- l \-\->#',
                '#<!\-\- ([mw]) \-\-><a (?:class="[\w-]+" )?href="(.*?)">.*?</a><!\-\- \1 \-\->#',
                '#<!\-\- s(.*?) \-\-><img src="\{SMILIES_PATH\}\/.*? \/><!\-\- s\1 \-\->#',
                '#<!\-\- .*? \-\->#s',
                '#<.*?>#s',
            );  


Replace With:

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

case 'bbcode_htm':
            return array(
                '#<!\-\- e \-\-><a href="mailto:(.*?)">.*?</a><!\-\- e \-\->#',
                '#<!\-\- l \-\-><a (?:class="[\w-]+" target="[\w-]+" )?href="(.*?)(?:(&|\?)sid=[0-9a-f]{32})?">.*?</a><!\-\- l \-\->#',
                '#<!\-\- ([mw]) \-\-><a (?:class="[\w-]+" target="[\w-]+" )?href="(.*?)">.*?</a><!\-\- \1 \-\->#',
                '#<!\-\- s(.*?) \-\-><img src="\{SMILIES_PATH\}\/.*? \/><!\-\- s\1 \-\->#',
                '#<!\-\- .*? \-\->#s',
                 '#<.*?>#s',
            );   
phpBB2 FAQ
phpBB3 FAQ

Аватара пользователя
Kovu
phpBB 1.2.1
Сообщения: 20
Зарегистрирован: 23.12.2007 14:18
Благодарил (а): 3 раза

Сообщение Kovu » 13.01.2008 20:31

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

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

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

name@domain.com
в

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

name@domain.com" target="_blank
2.1) Портятся внутренние ссылки
Т.е. форум у себя сокращает внешний вид внутренних ссылоки.

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

http://domain.com/forum/posting.php?mode=post&f=20
сокращается до

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

posting.php?mode=post&f=20
Это норм, но в самой форме редактирования мы уже тоже видим не нормальную ссылку, а обрезок

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

posting.php?mode=post&f=20
2.2) Портятся длинные ссылки
Например,

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

http://www.google.com/search?hl=en&sa=X&oi=spell&resnum=0&ct=result&cd=1&q=Huhuhu&spell=1
сокращается внешне до

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

http://www.google.com/search?hl=en&sa=X ... hu&spell=1
И в форме редактирования мы опять же получаем не нормальную ссылку, а ее внешний сокращенный вариант

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

http://www.google.com/search?hl=en&sa=X ... hu&spell=1

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

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