return $email;
}
-define('URL_REGEX', '^|[ \t\r\n])((ftp|http|https|gopher|mailto|news|nntp|telnet|wais|file|prospero|aim|webcal):(([A-Za-z0-9$_.+!*(),;/?:@&~=-])|%[A-Fa-f0-9]{2}){2,}(#([a-zA-Z0-9][a-zA-Z0-9$_.+!*(),;/?:@&~=%-]*))?([A-Za-z0-9$_+!*();/?:~-]))');
-
function common_render_content($text, $notice)
{
$r = common_render_text($text);
$r = htmlspecialchars($text);
$r = preg_replace('/[\x{0}-\x{8}\x{b}-\x{c}\x{e}-\x{19}]/', '', $r);
- $r = preg_replace_callback('@https?://[^\]>\s]+@', 'common_render_uri_thingy', $r);
+ $r = preg_replace_callback('@(ftp|http|https|mms|rtsp|gopher|news|nntp|telnet|wais|file|prospero|webcal|xmpp|irc)://[^\]>\s]+@', 'common_render_uri_thingy', $r);
+ $r = preg_replace_callback('@(mailto|aim|tel):[^\]>\s]+@', 'common_render_uri_thingy', $r); // Pseudo-protocols don't require '//' after ':'.
$r = preg_replace('/(^|\s+)#([A-Za-z0-9_\-\.]{1,64})/e', "'\\1#'.common_tag_link('\\2')", $r);
// XXX: machine tags
return $r;
case 'newgroup':
return common_path('group/new');
case 'showgroup':
- return common_path('group/'.$args['nickname']);
+ return common_path('group/'.$args['nickname'] . (($args['page']) ? ('?page=' . $args['page']) : ''));
case 'editgroup':
return common_path('group/'.$args['nickname'].'/edit');
case 'joingroup':
case 'grouplogo':
return common_path('group/'.$args['nickname'].'/logo');
case 'usergroups':
- return common_path($args['nickname'].'/groups' . (($args) ? ('?' . http_build_query($args)) : ''));
+ $nickname = $args['nickname'];
+ unset($args['nickname']);
+ return common_path($nickname.'/groups' . (($args) ? ('?' . http_build_query($args)) : ''));
case 'groups':
return common_path('group' . (($args) ? ('?' . http_build_query($args)) : ''));
default: