When passing a URL containing special characters (as ! ) in a chat window the url is not clickable. For example: http://www.facebook.com/home.php#!/vide ... 3655742042 is cut after the #! .
Anyone have a quick fix?
Moderators: OldWolf, re*s.t.a.r.s.*2
function pfc_make_hyperlink($text)
{
$c =& pfcGlobalConfig::Instance();
$openlinknewwindow = $c->openlinknewwindow;
if ($openlinknewwindow)
$target = " onclick="window.open(this.href,\'_blank\');return false;"";
else
$target = "";
$text = preg_replace('#(script|about|applet|activex|chrome):#is', "\1:", $text);
// pad it with a space so we can match things at the start of the 1st line.
$ret = ' ' . $text;
// matches an "xxxx://yyyy" URL at the start of a line, or after a space.
// xxxx can only be alpha characters.
// yyyy is anything up to the first space, newline, comma, double quote or <
//$ret = preg_replace("#(^|[n ])([w]+?://[w#$%&~/.-;:=,?@[]+]*)#is", "\1<a href="\2" target="_blank">\2</a>", $ret);
$ret = preg_replace("#(^|[n ]])([w]+?://[w#$%&~/!.-;:=,?@+]*)#ise", "'\1<a href="\2"" . $target . ">' . pfc_shorten_url('\2') . '</a>'", $ret);
// matches a "www|ftp.xxxx.yyyy[/zzzz]" kinda lazy URL thing
// Must contain at least 2 dots. xxxx contains either alphanum, or "-"
// zzzz is optional.. will contain everything up to the first space, newline,
// comma, double quote or <.
//$ret = preg_replace("#(^|[n ])((www|ftp).[w#$%&~/.-;:=,?@[]+]*)#is", "\1<a href="http://\2" target="_blank">\2</a>", $ret);
$ret = preg_replace("#(^|[n ]])((www|ftp).[w#$%&~/.-;:=,?@+]*)#ise", "'\1<a href="http://\2"" . $target . ">' . pfc_shorten_url('\2') . '</a>'", $ret);
// matches an email@domain type address at the start of a line, or after a space.
// Note: Only the followed chars are valid; alphanums, "-", "_" and or ".".
//$ret = preg_replace("#(^|[n ])([a-z0-9&-_.]+?)@([w-]+.([w-.]+.)*[w]+)#i", "\1<a href="mailto:\2@\3">\2@\3</a>", $ret);
$ret = preg_replace("#(^|[n ]])([a-z0-9&-_.]+?)@([w-]+.([w-.]+.)*[w]+)#ie", "'\1<a href="mailto:\2@\3">' . pfc_shorten_url('\2@\3') . '</a>'", $ret);
// Remove our padding..
$ret = substr($ret, 1);
return($ret);
}
Return to General Support (v1.x)
Users browsing this forum: No registered users and 37 guests