includes/bb_code.php
Найти и удалить
$url_exp = '[\w\#!$%&~/.\-;:=,?@а-яА-Я\[\]+]+?';
Найти и удалить
"#\[url\](https?://$url_exp)\[/url\]#isu" => '<a href="$1" class="postLink">$1</a>',
"#\[url\](www\.$url_exp)\[/url\]#isu" => '<a href="http://$1" class="postLink">$1</a>',
"#\[url=(https?://$url_exp)\]([^?\n\t].*?)\[/url\]#isu" => '<a href="$1" class="postLink">$2</a>',
"#\[url=(www\.$url_exp)\]([^?\n\t].*?)\[/url\]#isu" => '<a href="http://$1" class="postLink">$2</a>',Найти
// Tag replacements
$text = preg_replace($this->preg_search, $this->preg_repl, $text);
$text = str_replace($this->str_search, $this->str_repl, $text);
Вставить после
// [url]
$url_exp = '[\w\#!$%&~/.\-;:=,?@а-яА-Я\[\]+]+?';
$text = preg_replace_callback("#\[url\](https?://$url_exp)\[/url\]#isu", array(&$this, 'url_callback'), $text);
$text = preg_replace_callback("#\[url\](www\.$url_exp)\[/url\]#isu", array(&$this, 'url_callback'), $text);
$text = preg_replace_callback("#\[url=(https?://$url_exp)\]([^?\n\t].*?)\[/url\]#isu", array(&$this, 'url_callback'), $text);
$text = preg_replace_callback("#\[url=(www\.$url_exp)\]([^?\n\t].*?)\[/url\]#isu", array(&$this, 'url_callback'), $text);Найти
function code_callback ($m)
{
$code = trim($m[2]);
$code = str_replace(' ', ' ', $code);
$code = str_replace(' ', ' ', $code);
$code = str_replace("\t", ' ', $code);
$code = str_replace(array('[', ']', ':', ')'), array('[', ']', ':', ')'), $code);
return $this->tpl['code_open'] . $code . $this->tpl['code_close'];
}Вставить после
/**
* [url] callback
*/
function url_callback ($m)
{
global $bb_cfg;
$url = trim($m[1]);
$url_name = (isset($m[2])) ? trim($m[2]) : $url;
return (in_array(parse_url($url,PHP_URL_HOST),$bb_cfg['allowed_url'])) ? "<a href=\"$url\" class=\"postLink\">$url_name</a>" : "<a rel=\"nofollow\" href=\"$url\" class=\"postLink\">$url_name</a>";
}Найти
return "<a href=\"$href\" class=\"postLink\">$name</a>";
Заменить
return (in_array(parse_url($href,PHP_URL_HOST), $bb_cfg['allowed_url'])) ? "<a href=\"$href\" class=\"postLink\">$name</a>" : "<a rel=\"nofollow\" href=\"$href\" class=\"postLink\">$name</a>";
config.php
$bb_cfg['allowed_url'] = array($domain_name); // 'allowed.site','allowed2.site','www.allowed.site','www.allowed2.site'
На работоспособность проверил. Если у всех все будет хорошо оформлю модом. Так что тестите на здоровье.
Есть одно замечание на локалке у меня $domain_name не проглатывает, поэтому рекомендую вписывать ссылки ручками, варианты с www и без.
Скрин:
