From 83ed6a85ef10757d147303b391343994d0d2faf8 Mon Sep 17 00:00:00 2001 From: ewinslow Date: Tue, 2 Nov 2010 19:22:35 +0000 Subject: Refs #2463: Added elgg_normalize_url. forward() and add_menu() make use of it git-svn-id: http://code.elgg.org/elgg/trunk@7194 36083f99-b078-4883-b0ff-0f9b5a30f544 --- engine/lib/output.php | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'engine/lib/output.php') diff --git a/engine/lib/output.php b/engine/lib/output.php index 6fd820486..707d0b79a 100644 --- a/engine/lib/output.php +++ b/engine/lib/output.php @@ -139,6 +139,29 @@ function elgg_format_url($url) { return preg_replace('/&(?!amp;)/', '&', $url); } +/** + * Converts shorthand urls to absolute urls. + * + * If the url is already absolute or protocol-relative, no change is made. + * + * @example + * elgg_normalize_url(''); // 'http://my.site.com/' + * elgg_normalize_url('pg/dashboard'); // 'http://my.site.com/pg/dashboard' + * elgg_normalize_url('http://google.com/'); // no change + * elgg_normalize_url('//google.com/'); // no change + * + * @param string $url The URL to normalize + * + * @return string The absolute url + */ +function elgg_normalize_url($url) { + if (preg_match("#{^(https?:)?//#i", $url)) { + return $url; + } + + return elgg_get_site_url().$url; +} + /** * When given a title, returns a version suitable for inclusion in a URL * -- cgit v1.2.3