Так как ресурс доступен из 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;
}
