View file core/autoload/BBcodesCallback.class.php

File size: 1.51Kb
<?

class BBcodesCallback {
	static function LinksCheckUSER($arr)
	{
		$us = user::data($arr[1]);
		if ($us['id']) {
			return user::nick($arr[1],7);
		}
		return '<span class="user_nick_err">@'.$arr[1].'</span>';		
	}
	static function LinksCheck($arr)
	{
		$arr[1] = self::Links($arr[1]);	
		if ($arr[1] == 'ErrorLINK' || $arr[1] == 'ErrorLINKtWO'){
			return __('Ссылка повреждена '.$arr[1].'');
		}
		$LinkRe = str_replace(array('http://','www.','https://'),null, $arr[2]);
		$title = $arr[2];	
		$LinkRe = FileSystem::TextCut($LinkRe ,30);
		$lchec = FileSystem::TextStrlen($arr[1]) > 1 ? $arr[1] : $arr[2];
		$pos = mb_substr($lchec, 0, 1);
		
		if (preg_match('#^http://'.preg_quote($_SERVER['HTTP_HOST']).'#',$lchec) || $pos == '/') {
			if (FileSystem::TextStrlen($arr[1]) > 1) {
					$title = $arr[1];	
					return ' <a class="bb_link_2" href="'.$arr[1].'" title="'.$title.'">'. $LinkRe .'</a> ';
				} else {
					return $arr[1].' <a class="bb_link_2" title="'.$title.'"  href="'.$arr[2].'">'. $LinkRe .'</a>'. $arr[4];
				}
			} else 	{
			return ' <a target="_blank" class="bb_link" title="'.$title.'" href="//'. $_SERVER['HTTP_HOST'] .'/main/link/'.base64_encode(html_entity_decode($arr[2])).'">'. $LinkRe .'</a> ';
		}
	}
	static function Links($link)
	{
		$out = $link;
		$link = str_replace(PHP_EOL, null, $link);
		if (preg_match('~^ *(javascript|data)~i', $link)) {
			$out = 'ErrorLINK';
		}
		$out = filter_var($out, FILTER_SANITIZE_URL);
		return $out;		
	}	
}