Относительные ссылки в тегах bbcode

Проблемы с установкой или работой phpBB 3.0.x? Получите помощь здесь!
С 1 января 2017 года phpBB Group прекращает поддержку phpBB версии 3.0.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.0 до 1 июля 2017 года.
Подробнее: Окончание поддержки phpBB 3.0.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
bobr
phpBB 1.0.0
Сообщения: 2
Стаж: 18 лет 3 месяца

Относительные ссылки в тегах bbcode

Сообщение bobr »

Извиняюсь, если плохо искал через поиск по данному вопросу.

Интересует как заюзать относительные ссылки в тегах [img] и [url]. Очень надо, для мультидоменности.
Может кто-то делал или модифицировал парсинг ббкодов, чтобы они хавали относительные ссылки, а не выдавали текст вместо них ? :)

зы: рылся ща в bbcode.php и functions_posting.php ... пока ничего не нарыл
bobr
phpBB 1.0.0
Сообщения: 2
Стаж: 18 лет 3 месяца

Re: Относительные ссылки в тегах bbcode

Сообщение bobr »

Сейчас доточил код, возможность XSS тоже учел.
Если ссылка идет на этот-же домен (с которого постят), то делает ее относительной. Также понимает, собственно, относительные ссылки вида ./folder/mylink.php
Создатели phpbb было учли относительные ссылки (на что указывает get_preg_expression('relative_url'), но сам код неверен), но они не работали :?

Для того, чтобы тег [url] понимал относительные ссылки нужно:

ОТКРЫВАЕМ ФАЙЛ includes/message_parser.php

НАХОДИМ

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

preg_match('#^' . preg_quote(generate_board_url(), '#') . get_preg_expression('relative_url') . '$#i', $url))
ЗАМЕНЯЕМ НА

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

preg_match('#^' . get_preg_expression('relative_url') . '$#i', $url)) //BoBr: changed (why they was used generate_board_url() here ?)
НАХОДИМ

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

if (!preg_match('#^[a-z][a-z\d+\-.]*:/{2}#i', $url))
ЗАМЕНЯЕМ НА

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

if (!preg_match('#^[a-z][a-z\d+\-.]*:/{2}|^\./#i', $url))	//BoBr: changed, +prevent XSS attack
НАХОДИМ

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

// Is this a link to somewhere inside this board? If so then remove the session id from the url
if (strpos($url, generate_board_url()) !== false && strpos($url, 'sid=') !== false)
{
	$url = preg_replace('/(&|\?)sid=[0-9a-f]{32}&/', '\1', $url);
	$url = preg_replace('/(&|\?)sid=[0-9a-f]{32}$/', '', $url);
	$url = append_sid($url);
}
ВСТАВЛЯЕМ ПОСЛЕ

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

// BoBr: make relative urls from absolute
$url = preg_replace('|^' . str_replace('.', '\.', generate_board_url()) . '|iU', '.', $url);
// BoBr: end;
ВСЁ :twisted:

ща надо для картинок еще сделать ...
Аватара пользователя
mike2003
phpBB 2.0.5
Сообщения: 452
Стаж: 10 лет 6 месяцев
Благодарил (а): 27 раз
Поблагодарили: 8 раз

Re: Относительные ссылки в тегах bbcode

Сообщение mike2003 »

а c 2008 года что-нибудь поменялось?
Аватара пользователя
LavIgor
Former team member
Сообщения: 3468
Стаж: 12 лет 4 месяца
Благодарил (а): 41 раз
Поблагодарили: 935 раз

Re: Относительные ссылки в тегах bbcode

Сообщение LavIgor »

Сейчас придёт Sumanai и скажет, что в его форке это уже учтено. :D
Аватара пользователя
mike2003
phpBB 2.0.5
Сообщения: 452
Стаж: 10 лет 6 месяцев
Благодарил (а): 27 раз
Поблагодарили: 8 раз

Re: Относительные ссылки в тегах bbcode

Сообщение mike2003 »

я сделал как тут
IT tidbit: phpbb relative url howto - bbcode
http://ittidbit.blogspot.ru/2011/09/php ... bcode.html

но нет ли возможности получить окно с двумя полями ввода для удобного заполнения?
Аватара пользователя
Sumanai
phpBB 3.0.0 RC5
Сообщения: 1668
Стаж: 11 лет 10 месяцев
Благодарил (а): 267 раз
Поблагодарили: 216 раз

Re: Относительные ссылки в тегах bbcode

Сообщение Sumanai »

LavIgor писал(а): Сейчас придёт Sumanai и скажет, что в его форке это уже учтено. :D
Так и есть :mrgreen:
mike2003 писал(а): но нет ли возможности получить окно с двумя полями ввода для удобного заполнения?
С одним интеллектуальным лучше, как в... Ну все поняли :mrgreen:
Аватара пользователя
mike2003
phpBB 2.0.5
Сообщения: 452
Стаж: 10 лет 6 месяцев
Благодарил (а): 27 раз
Поблагодарили: 8 раз

Re: Относительные ссылки в тегах bbcode

Сообщение mike2003 »

что?
Аватара пользователя
Sumanai
phpBB 3.0.0 RC5
Сообщения: 1668
Стаж: 11 лет 10 месяцев
Благодарил (а): 267 раз
Поблагодарили: 216 раз

Re: Относительные ссылки в тегах bbcode

Сообщение Sumanai »

Как в phpBBex, вестимо. Протестировать можно на моём форуме, регистрация не обязательна.
Там своя логика в зависимости от того, что выделено, намного удобнее, чем эти поля.
Аватара пользователя
mike2003
phpBB 2.0.5
Сообщения: 452
Стаж: 10 лет 6 месяцев
Благодарил (а): 27 раз
Поблагодарили: 8 раз

Re: Относительные ссылки в тегах bbcode

Сообщение mike2003 »

я не порю про удобство, но как мне это на свой форум пределать то?
Аватара пользователя
Sumanai
phpBB 3.0.0 RC5
Сообщения: 1668
Стаж: 11 лет 10 месяцев
Благодарил (а): 267 раз
Поблагодарили: 216 раз

Re: Относительные ссылки в тегах bbcode

Сообщение Sumanai »

Перейти на phpBBex :mrgreen:
Либо попытаться отделить нужные правки из соответствующего коммита. Но там много других изменений, отделять придётся долго и упорно.

Вернуться в «Поддержка phpBB 3.0.х»