MDL-13792 - Commiting Patch by Skodak, fixing problem with japanese characters under some conditions. This has been reported to work, if nobody else

comes foward with bugs related to this, it will need to be changed everywhere else where there is no urlencoding done at this time.
This commit is contained in:
scyrma
2008-04-08 03:00:30 +00:00
parent 8e6e45aa1a
commit 0f4aa108d9
4 changed files with 43 additions and 21 deletions
+34
View File
@@ -4,6 +4,40 @@ require_once($CFG->libdir.'/libcurlemu/libcurlemu.inc.php'); // might be moved t
define('BYTESERVING_BOUNDARY', 's1k2o3d4a5k6s7'); //unique string constant
function get_file_url($path, $options=null, $type='coursefile') {
global $CFG;
$path = trim($path, '/'); // no leading and trailing slashes
// type of file
switch ($type) {
case 'coursefile':
default:
$url = "$CFG->wwwroot/file.php";
}
if ($CFG->slasharguments) {
$parts = explode('/', $path);
$parts = array_map('urlencode', $parts);
$path = implode('/', $parts);
$ffurl = "$CFG->wwwroot/file.php/$path";
$separator = '?';
} else {
$path = urlencode("/$path");
$ffurl = "$CFG->wwwroot/file.php?file=$path";
$separator = '&';
}
if ($options) {
foreach ($options as $name=>$value) {
$ffurl = $ffurl.$separator.$name.'='.$value;
$separator = '&';
}
}
return $ffurl;
}
/**
* Fetches content of file from Internet (using proxy if defined).
*
+2 -6
View File
@@ -1494,12 +1494,8 @@ class assignment_base {
$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", array('forcedownload'=>1));
$output .= '<img align="middle" src="'.$CFG->pixpath.'/f/'.$icon.'" class="icon" alt="'.$icon.'" />'.
'<a href="'.$ffurl.'" >'.$file.'</a><br />';
}
@@ -265,10 +265,10 @@ class assignment_upload extends assignment_base {
}
if ($files = get_directory_list($basedir, 'responses')) {
require_once($CFG->libdir.'/filelib.php');
foreach ($files as $key => $file) {
require_once($CFG->libdir.'/filelib.php');
$icon = mimeinfo('icon', $file);
$ffurl = "$CFG->wwwroot/file.php?file=/$filearea/$file";
$ffurl = get_file_url("$filearea/$file");
$output .= '<a href="'.$ffurl.'" ><img class="icon" src="'.$CFG->pixpath.'/f/'.$icon.'" alt="'.$icon.'" />'.$file.'</a>&nbsp;';
}
}
@@ -326,9 +326,7 @@ class assignment_upload extends assignment_base {
foreach ($files as $key => $file) {
$icon = mimeinfo('icon', $file);
$ffurl = "$CFG->wwwroot/file.php?file=/$filearea/$file";
$ffurl = get_file_url("$filearea/$file");
$output .= '<a href="'.$ffurl.'" ><img src="'.$CFG->pixpath.'/f/'.$icon.'" class="icon" alt="'.$icon.'" />'.$file.'</a>';
@@ -381,8 +379,7 @@ class assignment_upload extends assignment_base {
foreach ($files as $key => $file) {
$icon = mimeinfo('icon', $file);
$ffurl = "$CFG->wwwroot/file.php?file=/$filearea/$file";
$ffurl = get_file_url("$filearea/$file");
$output .= '<a href="'.$ffurl.'" ><img class="align" src="'.$CFG->pixpath.'/f/'.$icon.'" alt="'.$icon.'" />'.$file.'</a>';
@@ -16,17 +16,12 @@ class assignment_uploadsingle extends assignment_base {
if ($basedir = $this->file_area($userid)) {
if ($files = get_directory_list($basedir)) {
require_once($CFG->libdir.'/filelib.php');
foreach ($files as $key => $file) {
require_once($CFG->libdir.'/filelib.php');
$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");
//died right here
//require_once($ffurl);
$output = '<img align="middle" src="'.$CFG->pixpath.'/f/'.$icon.'" class="icon" alt="'.$icon.'" />'.