diff options
author | Marc Alexander <admin@m-a-styles.de> | 2014-10-21 22:16:53 -0500 |
---|---|---|
committer | Marc Alexander <admin@m-a-styles.de> | 2014-10-21 22:16:53 -0500 |
commit | 40497ec824344116143bc30b84fe8eb1c1971ebf (patch) | |
tree | af88c6b77c5e9374f95ea67c10f27933107af6ea /phpBB/phpbb | |
parent | Merge branch 'develop-olympus' into develop-ascraeus (diff) | |
download | phpbb-40497ec824344116143bc30b84fe8eb1c1971ebf.tar.gz phpbb-40497ec824344116143bc30b84fe8eb1c1971ebf.tar.bz2 phpbb-40497ec824344116143bc30b84fe8eb1c1971ebf.zip |
[ticket/13192] Add method for generating valid user page links
PHPBB3-13192
Diffstat (limited to 'phpBB/phpbb')
-rw-r--r-- | phpBB/phpbb/path_helper.php | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/phpBB/phpbb/path_helper.php b/phpBB/phpbb/path_helper.php index 936564d8b6..77f123bf2c 100644 --- a/phpBB/phpbb/path_helper.php +++ b/phpBB/phpbb/path_helper.php @@ -445,4 +445,35 @@ class path_helper return $url_parts['base'] . (($params) ? '?' . $this->glue_url_params($params) : ''); } + + /** + * Get a valid user page + * + * @param string $user_page The current user page + * @param bool $mod_rewrite Whether mod_rewrite is enabled, default: false + * + * @return string A valid user page based on user page and mod_rewrite + */ + public function get_valid_user_page($user_page, $mod_rewrite = false) + { + // We need to be cautious here. + // On some situations, the redirect path is an absolute URL, sometimes a relative path + // For a relative path, let's prefix it with $phpbb_root_path to point to the correct location, + // else we use the URL directly. + $url_parts = parse_url($user_page); + + // URL + if ($url_parts === false || empty($url_parts['scheme']) || empty($url_parts['host'])) + { + // Remove 'app.php/' from the page, when rewrite is enabled + if ($mod_rewrite && strpos($user_page, 'app.' . $this->php_ext . '/') === 0) + { + $user_page = substr($user_page, strlen('app.' . $this->php_ext . '/')); + } + + $user_page = $this->get_phpbb_root_path() . $user_page; + } + + return $user_page; + } } |