Многоадресная работа

Здесь авторы могут постить бета-версии своих модификаций для phpBB 3.0.x. Внимание! Не устанавливайте бета-версии модов на работающие форумы!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Arceny
phpBB 1.0.0
Сообщения: 4
Стаж: 17 лет 9 месяцев
Откуда: Брянск

Многоадресная работа

Сообщение Arceny »

Вот накатал для своего форума, прошу сильно не пинать :-)

Так как ресурс доступен из 3х разных сетей по разным адресам, возникла необходимость в организации механизма, который бы определял, из какой сети пришёл пользователь и менял в ссылках на страницы ресурса доменную часть. Например, пользователь, зашедший из сети Интернет видит на форуме в сообщении другого пользователя ссылку вида http://lug32.org.ru/mediawiki/index.php/Категория:FAQ , а пользователь, пришедший из сети Метро - http://lug32.b-metro.net/mediawiki/inde ... егория:FAQ.

Был написан мод для форума phpBB, код в стандартном (надеюсь) для phpBB модов стиле ниже:

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

--- [OPEN]
viewtopic.php

--- [FIND]
$message = bbcode_nl2br($message);

--- [ADD AFTER]
$message = replace_urls($message);	// заменяем УРЛы

--- [OPEN]
search.php

--- [FIND]
		unset($attachments[$row['post_id']]);
	}
}

--- [ADD AFTER]
$row['post_text'] = replace_urls($row['post_text']);	// заменяем УРЛы

--- [OPEN]
includes/ucp/ucp_pm_viewmessage.php

--- [FIND]
$message = bbcode_nl2br($message);

--- [ADD AFTER]
$message = replace_urls($message);	// заменяем УРЛы

--- [OPEN]
includes/functions_content.php

--- [FIND]
* class bitfield
*/

--- [ADD AFTER]
function replace_urls($text) {
	// Пропатчено Arceny
	$myurls = array ("http://lug32.b-metro.net", "http://lug32.org,ru", "http://lug32.bks-tv.ru");
	// массив адресов для замены
	$i=0; // щиотчик
	while($i < sizeof($myurls)) {
		if($myurls[$i]!="http://".$_SERVER['SERVER_NAME']) // если заменяемый урл не равен текущему
			$text = str_replace($myurls[$i],"http://".$_SERVER['SERVER_NAME'],$text); // заменяем
		$i++; // щиотчик плюс плюс
	}
	return $text;
}
Работает для сообщений форума, ЛС, результатов поиска...

Вернуться в «Бета-версии модов для phpBB 3.0.x»