function hotpot_convert_relative_url in Quiz 6.6
Same name and namespace in other branches
- 6.5 includes/moodle/question/format/hotpot/format.php \hotpot_convert_relative_url()
File
- includes/
moodle/ question/ format/ hotpot/ format.php, line 701
Code
function hotpot_convert_relative_url($baseurl, $filename, $opentag, $url, $closetag, $stripslashes = true) {
if ($stripslashes) {
$opentag = stripslashes($opentag);
$url = stripslashes($url);
$closetag = stripslashes($closetag);
}
// catch <PARAM name="FlashVars" value="TheSound=soundfile.mp3">
// ampersands can appear as "&", "&" or "&#x0026;amp;"
if (preg_match('|^' . '\\w+=[^&]+' . '(' . '&((amp;#x0026;)?amp;)?' . '\\w+=[^&]+)*' . '$|', $url)) {
$query = $url;
$url = '';
$fragment = '';
// parse the $url into $matches
// [1] path
// [2] query string, if any
// [3] anchor fragment, if any
}
else {
if (preg_match('|^' . '([^?]*)' . '((?:\\?[^#]*)?)' . '((?:#.*)?)' . '$|', $url, $matches)) {
$url = $matches[1];
$query = $matches[2];
$fragment = $matches[3];
// there appears to be no query or fragment in this url
}
else {
$query = '';
$fragment = '';
}
}
if ($url) {
$url = hotpot_convert_url($baseurl, $filename, $url, false);
}
if ($query) {
$search = '#' . '(file|src|thesound)=' . "([^&]+)" . '#ise';
$replace = "'\\1='.hotpot_convert_url('" . $baseurl . "','" . $filename . "','\\2')";
$query = preg_replace($search, $replace, $query);
}
$url = $opentag . $url . $query . $fragment . $closetag;
return $url;
}