- /**
- * @brief Mix two paths together to possibly fix missing parts
- *
- * @param string $avatar Path to the avatar
- * @param string $base Another path that is hopefully complete
- *
- * @return string fixed avatar path
- */
- private static function fix_avatar($avatar, $base) {
- $base_parts = parse_url($base);
-
- // Remove all parts that could create a problem
- unset($base_parts['path']);
- unset($base_parts['query']);
- unset($base_parts['fragment']);
-
- $avatar_parts = parse_url($avatar);
-
- // Now we mix them
- $parts = array_merge($base_parts, $avatar_parts);
-
- // And put them together again
- $scheme = isset($parts['scheme']) ? $parts['scheme'] . '://' : '';
- $host = isset($parts['host']) ? $parts['host'] : '';
- $port = isset($parts['port']) ? ':' . $parts['port'] : '';
- $path = isset($parts['path']) ? $parts['path'] : '';
- $query = isset($parts['query']) ? '?' . $parts['query'] : '';
- $fragment = isset($parts['fragment']) ? '#' . $parts['fragment'] : '';
-
- return $scheme.$host.$port.$path.$query.$fragment;
- }
-