diff --git a/.gitignore b/.gitignore index 5ebd83e36..a4af5757a 100644 --- a/.gitignore +++ b/.gitignore @@ -32,4 +32,6 @@ $RECYCLE.BIN/ .Spotlight-V100 .Trashes *.orig -*.rej \ No newline at end of file +*.rej + +/vendor/ diff --git a/composer.json b/composer.json new file mode 100644 index 000000000..da6b2a613 --- /dev/null +++ b/composer.json @@ -0,0 +1,7 @@ +{ + "name": "diolektor/torrentpier", + "description": "Fork TorrentPier. Web torrent tracker.", + "type": "project", + "minimum-stability": "dev", + "require": {} +} diff --git a/library/includes/bbcode.php b/library/includes/bbcode.php index 6e5cfe97e..f804c8d45 100644 --- a/library/includes/bbcode.php +++ b/library/includes/bbcode.php @@ -699,21 +699,31 @@ class bbcode { global $bb_cfg; - $url = trim($m[1]); - $url_name = (isset($m[2])) ? trim($m[2]) : $url; + //TODO: Refactoring. When will use DI. + $uri = new \Zend\Uri\Uri(trim($m[1])); - if (!preg_match("#^https?://#isu", $url) && !preg_match("/^#/", $url)) $url = 'http://' . $url; + if ($uri->isValid()) { - if (in_array(parse_url($url, PHP_URL_HOST), $bb_cfg['nofollow']['allowed_url']) || $bb_cfg['nofollow']['disabled']) - { - $link = "$url_name"; - } - else - { - $link = "$url_name"; + $title = isset($m[2]) && !empty(trim($m[2])) ? $m[2] : $uri->toString(); + + $attributes = [ + 'class' => 'postLink', + 'href' => $uri->toString(), + 'title' => $uri->toString() + ]; + + if (in_array($uri->getHost(), $bb_cfg['nofollow']['allowed_url']) || $bb_cfg['nofollow']['disabled']) { + $attributes['rel'] = 'nofollow'; + } + + foreach ($attributes as $key => $value) { + $attributes[$key] = $key . "=\"" . $value . "\""; + } + + return ''.$title.''; } - return $link; + return $m[2]; } /**