From 5a254a2938263cd10bd13cd4656b4379e8929080 Mon Sep 17 00:00:00 2001
From: scyrma pixpath/f/$icon\" class=\"icon\" alt=\"\" />";
if ($return == "html") {
diff --git a/blog/rsslib.php b/blog/rsslib.php
index 0b2119b487..a0ad2dc09c 100755
--- a/blog/rsslib.php
+++ b/blog/rsslib.php
@@ -38,11 +38,8 @@
$path .= '/rss.xml';
$rsspix = $CFG->pixpath .'/i/rss.gif';
- if ($CFG->slasharguments) {
- $path = $CFG->wwwroot.'/rss/file.php/'.$path;
- } else {
- $path = $CFG->wwwroot.'/rss/file.php?file='.$path;
- }
+ require_once($CFG->libdir.'/filelib.php');
+ $path = get_file_url($path, null, 'rssfile');
print '';
}
diff --git a/file.php b/file.php
index 51cc06247e..23e484983a 100644
--- a/file.php
+++ b/file.php
@@ -1,5 +1,9 @@
", 'checkbox');
echo "
";
- if ($CFG->slasharguments) {
- $ffurl = str_replace('//', '/', "/file.php/$id/$fileurl");
- } else {
- $ffurl = str_replace('//', '/', "/file.php?file=/$id/$fileurl");
- }
+
+ $ffurl = str_replace('//', '/', get_file_url("$id/$fileurl"));
link_to_popup_window ($ffurl, "display",
" pixpath/f/$icon\" class=\"icon\" alt=\"$strfile\" /> ".htmlspecialchars($file),
480, 640);
diff --git a/lib/editor/htmlarea/coursefiles.php b/lib/editor/htmlarea/coursefiles.php
index 7a818f50d2..2a8496eaa1 100644
--- a/lib/editor/htmlarea/coursefiles.php
+++ b/lib/editor/htmlarea/coursefiles.php
@@ -755,17 +755,13 @@ function displaydir ($wdir) {
print_cell("center", "");
}
echo "
";
- if ($CFG->slasharguments) {
- $ffurl = "/file.php/$id$fileurl";
- } else {
- $ffurl = "/file.php?file=/$id$fileurl";
- }
+ $ffurl = get_file_url($id$fileurl);
link_to_popup_window ($ffurl, "display",
" \n";
diff --git a/lib/filelib.php b/lib/filelib.php
index 53c01e60bc..1adf6803bd 100644
--- a/lib/filelib.php
+++ b/lib/filelib.php
@@ -9,20 +9,35 @@ function get_file_url($path, $options=null, $type='coursefile') {
// type of file
switch ($type) {
- case 'coursefile':
+ case 'questionfile':
+ $url = $CFG->wwwroot."/question/exportfile.php";
+ break;
+ case 'rssfile':
+ $url = $CFG->wwwroot."/rss/file.php";
+ break;
+ case 'user':
+ $url = $CFG->wwwroot."/user/pix.php";
+ break;
+ case 'usergroup':
+ $url = $CFG->wwwroot."/user/pixgroup.php";
+ break;
+ case 'httpscoursefile':
+ $url = $CFG->httpswwwroot."/file.php";
+ break;
+ case 'coursefile':
default:
- $url = "$CFG->wwwroot/file.php";
+ $url = $CFG->wwwroot."/file.php";
}
if ($CFG->slasharguments) {
$parts = explode('/', $path);
$parts = array_map('rawurlencode', $parts);
$path = implode('/', $parts);
- $ffurl = "$CFG->wwwroot/file.php/$path";
+ $ffurl = $url.'/'.$path;
$separator = '?';
} else {
- $path = rawurlencode("/$path");
- $ffurl = "$CFG->wwwroot/file.php?file=$path";
+ $path = rawurlencode('/'.$path);
+ $ffurl = $url.'?file='.$path;
$separator = '&';
}
diff --git a/lib/questionlib.php b/lib/questionlib.php
index 670dbb262f..ce91e500f3 100644
--- a/lib/questionlib.php
+++ b/lib/questionlib.php
@@ -1558,12 +1558,10 @@ function get_question_image($question) {
if (substr(strtolower($question->image), 0, 7) == 'http://') {
$img .= $question->image;
- } else if ($CFG->slasharguments) { // Use this method if possible for better caching
- $img .= "$CFG->wwwroot/file.php/$coursefilesdir/$question->image";
-
} else {
- $img .= "$CFG->wwwroot/file.php?file=/$coursefilesdir/$question->image";
- }
+ require_once($CFG->libdir .'/filelib.php');
+ $img = get_file_url("$courseid/{$question->image}");
+ }
}
return $img;
}
@@ -2363,12 +2361,8 @@ function question_url_check($url){
*/
function question_replace_file_links_in_html($html, $fromcourseid, $tocourseid, $url, $destination, &$changed){
global $CFG;
- if ($CFG->slasharguments) { // Use this method if possible for better caching
- $tourl = "$CFG->wwwroot/file.php/$tocourseid/$destination";
-
- } else {
- $tourl = "$CFG->wwwroot/file.php?file=/$tocourseid/$destination";
- }
+ require_once($CFG->libdir .'/filelib.php');
+ $tourl = get_file_url("$tocourseid/$destination");
$fromurl = question_file_links_base_url($fromcourseid).preg_quote($url, '!');
$searchfor = array('!(<\s*(a|img)\s[^>]*(href|src)\s*=\s*")'.$fromurl.'(")!i',
'!(<\s*(a|img)\s[^>]*(href|src)\s*=\s*\')'.$fromurl.'(\')!i');
diff --git a/lib/rsslib.php b/lib/rsslib.php
index d70cfa8a76..d615aab835 100644
--- a/lib/rsslib.php
+++ b/lib/rsslib.php
@@ -29,12 +29,8 @@ function rss_get_link($courseid, $userid, $modulename, $id, $tooltiptext='') {
*/
function rss_get_url($courseid, $userid, $modulename, $id) {
global $CFG;
- if ($CFG->slasharguments) {
- $rsspath = "$CFG->wwwroot/rss/file.php/$courseid/$userid/$modulename/$id/rss.xml";
- } else {
- $rsspath = "$CFG->wwwroot/rss/file.php?file=/$courseid/$userid/$modulename/$id/rss.xml";
- }
- return $rsspath;
+ require_once($CFG->libdir.'/filelib.php');
+ return get_file_url($courseid.'/'.$userid.'/'.$modulename.'/'.$id.'/rss.xml', null, 'rssfile');
}
/**
diff --git a/lib/weblib.php b/lib/weblib.php
index fe732d4f9d..e5f2ab12f4 100644
--- a/lib/weblib.php
+++ b/lib/weblib.php
@@ -4226,11 +4226,8 @@ function print_file_picture($path, $courseid=0, $height='', $width='', $link='',
} else if ($courseid) {
$output .= 'pixpath/f/$icon\" class=\"icon\" alt=\"$strfile\" />",
480, 640);
$file_size = filesize($filename);
- echo "wwwroot.$ffurl."',";
+ echo "$file";
echo "
slasharguments) { // Use this method if possible for better caching
- $src = $wwwroot .'/user/pix.php/'. $user->id .'/'. $file .'.jpg';
- } else {
- $src = $wwwroot .'/user/pix.php?file=/'. $user->id .'/'. $file .'.jpg';
- }
+ require_once($CFG->libdir.'/filelib.php');
+ $src = get_file_url($user->id.'/'.$file.'.jpg', null, 'user');
} else { // Print default user pictures (use theme version if available)
$class .= " defaultuserpic";
$src = "$CFG->pixpath/u/$file.png";
@@ -4536,13 +4530,10 @@ function print_group_picture($group, $courseid, $large=false, $return=false, $li
$size = 35;
}
if ($group->picture) { // Print custom group picture
- if ($CFG->slasharguments) { // Use this method if possible for better caching
- $output .= '
';
- } else {
- $output .= '
';
- }
+ require_once($CFG->libdir.'/filelib.php');
+ $grouppictureurl = get_file_url($group->id.'/'.$file.'.jpg', null, 'usergroup');
+ $output .= '
';
}
if ($link or has_capability('moodle/site:accessallgroups', $context)) {
$output .= '';
diff --git a/lib/wiki_to_markdown.php b/lib/wiki_to_markdown.php
index 55458b0ca9..6c35633b09 100644
--- a/lib/wiki_to_markdown.php
+++ b/lib/wiki_to_markdown.php
@@ -264,24 +264,16 @@ class WikiToMarkdown {
$line = eregi_replace( " ([a-zA-Z]+):([0-9]+)\(([^)]+)\)",
" [\\3](".$CFG->wwwroot."/mod/\\1/view.php?id=\\2) ", $line );
+ require_once($CFG->libdir.'/filelib.php');
+ $coursefileurl = get_file_url($this->courseid);
+
// Replace picture resource link
- if ($CFG->slasharguments) {
- $line = eregi_replace( "/([a-zA-Z0-9./_-]+)(png|gif|jpg)\(([^)]+)\)",
- "", $line );
- } else {
- $line = eregi_replace( "/([a-zA-Z0-9./_-]+)(png|gif|jpg)\(([^)]+)\)",
- "", $line );
- }
+ $line = eregi_replace( "/([a-zA-Z0-9./_-]+)(png|gif|jpg)\(([^)]+)\)",
+ "", $line );
// Replace file resource link
- if ($CFG->slasharguments) {
- $line = eregi_replace( "file:/([[:alnum:]/._-]+)\(([^)]+)\)",
- "[\\2]($CFG->wwwroot/file.php/$this->courseid/\\1)", $line );
- } else {
- $line = eregi_replace( "file:/([[:alnum:]/._-]+)\(([^)]+)\)",
- "[\\2]($CFG->wwwroot/file.php?file=/$this->courseid/\\1)", $line );
- }
-
+ $line = eregi_replace( "file:/([[:alnum:]/._-]+)\(([^)]+)\)",
+ "[\\2](".$coursefileurl."/\\1)", $line );
return $line;
}
diff --git a/mod/data/field/file/field.class.php b/mod/data/field/file/field.class.php
index ca9a68c77e..fff1789db3 100755
--- a/mod/data/field/file/field.class.php
+++ b/mod/data/field/file/field.class.php
@@ -42,12 +42,8 @@ class data_field_file extends data_field_base {
$src = empty($contents[0]) ? '' : $contents[0];
$name = empty($contents[1]) ? $src : $contents[1];
$displayname = empty($contents[1]) ? '' : $contents[1];
- $path = $this->data->course.'/'.$CFG->moddata.'/data/'.$this->data->id.'/'.$this->field->id.'/'.$recordid;
- if ($CFG->slasharguments) {
- $source = $CFG->wwwroot.'/file.php/'.$path;
- } else {
- $source = $CFG->wwwroot.'/file.php?file=/'.$path;
- }
+ require_once($CFG->libdir.'/filelib.php');
+ $source = get_file_url($this->data->course.'/'.$CFG->moddata.'/data/'.$this->data->id.'/'.$this->field->id.'/'.$recordid);
} else {
$src = '';
$name = '';
diff --git a/mod/data/field/picture/field.class.php b/mod/data/field/picture/field.class.php
index 60872d604a..6bc8b1c2e2 100755
--- a/mod/data/field/picture/field.class.php
+++ b/mod/data/field/picture/field.class.php
@@ -46,11 +46,8 @@ class data_field_picture extends data_field_file {
$description = $content->content1;
}
$path = $this->data->course.'/'.$CFG->moddata.'/data/'.$this->data->id.'/'.$this->field->id.'/'.$recordid;
- if ($CFG->slasharguments) {
- $filepath = $CFG->wwwroot.'/file.php/'.$path.'/'.$filename;
- } else {
- $filepath = $CFG->wwwroot.'/file.php?file=/'.$path.'/'.$filename;
- }
+ require_once($CFG->libdir.'/filelib.php');
+ $filepath = get_file_url("$path/$filename");
}
$str = '
pixpath/f/$icon\" class=\"icon\" alt=\"\" />";
if ($return == "html") {
diff --git a/mod/forum/rsslib.php b/mod/forum/rsslib.php
index e946649abc..7b8d606fed 100644
--- a/mod/forum/rsslib.php
+++ b/mod/forum/rsslib.php
@@ -237,6 +237,8 @@
$formatoptions = new object;
$formatoptions->trusttext = true;
+ require_once($CFG->libdir.'/filelib.php');
+
foreach ($recs as $rec) {
unset($item);
unset($user);
@@ -257,11 +259,7 @@
$item->attachments = array();
foreach ($post_files as $file) {
$attachment = new stdClass;
- if ($CFG->slasharguments) {
- $attachment->url = "{$CFG->wwwroot}/file.php/$post_file_area_name/$file";
- } else {
- $attachment->url = "{$CFG->wwwroot}/file.php?file=/$post_file_area_name/$file";
- }
+ $attachment->url = get_file_url($post_file_area_name.'/'.$file);
$attachment->length = filesize("$CFG->dataroot/$post_file_area_name/$file");
$item->attachments[] = $attachment;
}
diff --git a/mod/glossary/lib.php b/mod/glossary/lib.php
index 009b910188..e09f7e40f9 100644
--- a/mod/glossary/lib.php
+++ b/mod/glossary/lib.php
@@ -1222,11 +1222,7 @@ function glossary_print_attachments($entry, $return=NULL, $align="left") {
$strattachment = get_string("attachment", "glossary");
foreach ($files as $file) {
$icon = mimeinfo("icon", $file);
- if ($CFG->slasharguments) {
- $ffurl = "$CFG->wwwroot/file.php/$filearea/$file";
- } else {
- $ffurl = "$CFG->wwwroot/file.php?file=/$filearea/$file";
- }
+ $ffurl = get_file_url("$filearea/$file");
$image = "
pixpath/f/$icon\" class=\"icon\" alt=\"\" />";
if ($return == "html") {
diff --git a/mod/hotpot/lib.php b/mod/hotpot/lib.php
index 437c31593f..c7b8cbe051 100644
--- a/mod/hotpot/lib.php
+++ b/mod/hotpot/lib.php
@@ -1803,11 +1803,8 @@ class hotpot_xml_quiz extends hotpot_xml_tree {
// set the url base (first time only)
if (!isset($this->baseurl)) {
global $CFG;
- if ($CFG->slasharguments) {
- $this->baseurl = "$CFG->wwwroot/file.php/$this->filedir/";
- } else {
- $this->baseurl = "$CFG->wwwroot/file.php?file=/$this->filedir/";
- }
+ require_once($CFG->libdir.'/filelib.php');
+ $this->baseurl = get_file_url($this->filedir .'/');
}
return $this->baseurl;
}
diff --git a/mod/lesson/importppt.php b/mod/lesson/importppt.php
index b2931044cd..8f6a428767 100644
--- a/mod/lesson/importppt.php
+++ b/mod/lesson/importppt.php
@@ -195,11 +195,8 @@ function extract_data($pages, $courseid, $lessonname, $modname) {
$imagedir = $CFG->dataroot.'/'.$courseid.'/moddata/'.$modname;
- if ($CFG->slasharguments) {
- $imagelink = $CFG->wwwroot.'/file.php/'.$courseid.'/moddata/'.$modname;
- } else {
- $imagelink = $CFG->wwwroot.'/file.php?file=/'.$courseid.'/moddata/'.$modname;
- }
+ require_once($CFG->libdir .'/filelib.php');
+ $imagelink = get_file_url($courseid.'/moddata/'.$modname);
// try to make a unique subfolder to store the images
$lessonname = str_replace(' ', '_', $lessonname); // get rid of spaces
diff --git a/mod/lesson/mediafile.php b/mod/lesson/mediafile.php
index 26fd50ca00..a8cdcefc8b 100644
--- a/mod/lesson/mediafile.php
+++ b/mod/lesson/mediafile.php
@@ -57,13 +57,7 @@
if (is_url($lesson->mediafile)) {
$fullurl = $lesson->mediafile;
} else {
- // get the full url to the file while taking into consideration $CFG->slasharguments
- if ($CFG->slasharguments) {
- $relativeurl = "/file.php/{$course->id}/{$lesson->mediafile}";
- } else {
- $relativeurl = "/file.php?file=/{$course->id}/{$lesson->mediafile}";
- }
- $fullurl = "$CFG->wwwroot$relativeurl";
+ $fullurl = get_file_url($course->id .'/'. $lesson->mediafile);
}
// find the correct type and print it out
diff --git a/mod/resource/type/file/resource.class.php b/mod/resource/type/file/resource.class.php
index 47283a0d9c..9f5ac4679b 100644
--- a/mod/resource/type/file/resource.class.php
+++ b/mod/resource/type/file/resource.class.php
@@ -262,8 +262,8 @@ class resource_file extends resource_base {
$isteamspeak = (stripos($resource->reference, 'teamspeak://') === 0);
/// Form the parse string
+ $querys = array();
if (!empty($resource->alltext)) {
- $querys = array();
$parray = explode(',', $resource->alltext);
foreach ($parray as $fieldstring) {
$field = explode('=', $fieldstring);
@@ -307,22 +307,10 @@ class resource_file extends resource_base {
} else { // Normal uploaded file
$forcedownloadsep = '?';
- if ($CFG->slasharguments) {
- $relativeurl = "/file.php/{$course->id}/{$resource->reference}";
- if ($querystring) {
- $relativeurl .= '?'.$querystring;
- $forcedownloadsep = '&';
- }
- } else {
- $relativeurl = "/file.php?file=/{$course->id}/{$resource->reference}";
- if ($querystring) {
- $relativeurl .= '&'.$querystring;
- }
- }
- $fullurl = "$CFG->wwwroot$relativeurl";
if ($resource->options == 'forcedownload') {
- $fullurl .= $forcedownloadsep . 'forcedownload=1';
+ $querys[] = 'forcedownload=1';
}
+ $fullurl = get_file_url($course->id.'/'.$resource->reference, $querys);
}
/// Print a notice and redirect if we are trying to access a file on a local file system
diff --git a/mod/resource/type/ims/resource.class.php b/mod/resource/type/ims/resource.class.php
index ae5dc09d9b..0ab7c2ba66 100644
--- a/mod/resource/type/ims/resource.class.php
+++ b/mod/resource/type/ims/resource.class.php
@@ -508,11 +508,8 @@ class resource_ims extends resource_base {
/// Calculate the file.php correct url
if (!$this->isrepository) {
- if ($CFG->slasharguments) {
- $fileurl = "{$CFG->wwwroot}/file.php/{$course->id}/{$CFG->moddata}/resource/{$resource->id}";
- } else {
- $fileurl = "{$CFG->wwwroot}/file.php?file=/{$course->id}/{$CFG->moddata}/resource/{$resource->id}";
- }
+ require_once($CFG->libdir.'/filelib.php');
+ $fileurl = get_file_url($course->id.'/'.$CFG->moddata.'/resource/'.$resource->id);
}
else {
$fileurl = $CFG->repositorywebroot . $resource->reference;
diff --git a/mod/scorm/loadSCO.php b/mod/scorm/loadSCO.php
index 3a40273df9..1df8a94a3d 100755
--- a/mod/scorm/loadSCO.php
+++ b/mod/scorm/loadSCO.php
@@ -108,11 +108,8 @@
} else {
$basedir = $CFG->moddata.'/scorm/'.$scorm->id;
}
- if ($CFG->slasharguments) {
- $result = $CFG->wwwroot.'/file.php/'.$scorm->course.'/'.$basedir.'/'.$launcher;
- } else {
- $result = $CFG->wwwroot.'/file.php?file=/'.$scorm->course.'/'.$basedir.'/'.$launcher;
- }
+ require_once($CFG->libdir.'/filelib.php');
+ $result = get_file_url($scorm->course .'/'. $basedir .'/'. $launcher);
}
}
?>
diff --git a/question/export.php b/question/export.php
index 0406b3b08a..7836e4a4b9 100644
--- a/question/export.php
+++ b/question/export.php
@@ -116,12 +116,7 @@
echo '