Skip to content

Commit

Permalink
fixed warning caused by missing fields in $course; tweaked mime info …
Browse files Browse the repository at this point in the history
…for firefox when forcing download - it should use default system mime associations which should be safe in case of firefox.
  • Loading branch information
skodak committed Sep 20, 2006
1 parent 741c4d0 commit ba4e0b0
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 7 deletions.
4 changes: 1 addition & 3 deletions file.php
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,7 @@
}

// security: limit access to existing course subdirectories
// note: course ID must be specified
// note: the lang field is needed for the course language switching hack in weblib.php
if (!$course = get_record_sql("SELECT id, lang FROM {$CFG->prefix}course WHERE id='".(int)$args[0]."'")) {
if (!$course = get_record_sql("SELECT * FROM {$CFG->prefix}course WHERE id='".(int)$args[0]."'")) {
error('Invalid course ID');
}

Expand Down
10 changes: 6 additions & 4 deletions lib/filelib.php
Original file line number Diff line number Diff line change
Expand Up @@ -216,10 +216,12 @@ function get_mimetype_description($mimetype,$capitalise=false) {
function send_file($path, $filename, $lifetime=86400 , $filter=0, $pathisstring=false, $forcedownload=false, $mimetype='') {
global $CFG;

// Use given MIME type if specified, otherwise guess it using mimeinfo.
// Always use application/x-forcedownload if that's requested.
$mimetype = $forcedownload ? 'application/x-forcedownload' :
($mimetype ? $mimetype : mimeinfo('type', $filename));
// Use given MIME type if specified, otherwise guess it using mimeinfo.
// IE, Konqueror and Opera open html file directly in browser from web even when directed to save it to disk :-O
// only Firefox saves all files locally before opening when content-disposition: attachment stated
$isFF = check_browser_version('Firefox', '1.5'); // only FF > 1.5 properly tested
$mimetype = ($forcedownload and !$isFF) ? 'application/x-forcedownload' :
($mimetype ? $mimetype : mimeinfo('type', $filename));
$lastmodified = $pathisstring ? time() : filemtime($path);
$filesize = $pathisstring ? strlen($path) : filesize($path);

Expand Down
10 changes: 10 additions & 0 deletions lib/moodlelib.php
Original file line number Diff line number Diff line change
Expand Up @@ -5126,6 +5126,16 @@ function check_browser_version($brand='MSIE', $version=5.5) {

switch ($brand) {

case 'Firefox': /// Mozilla Firefox browsers

if (preg_match("/Firefox\/([0-9\.]+)/i", $agent, $match)) {
if (version_compare($match[1], $version) >= 0) {
return true;
}
}
break;


case 'Gecko': /// Gecko based browsers

if (substr_count($agent, 'Camino')) {
Expand Down

0 comments on commit ba4e0b0

Please sign in to comment.