From: moodler Date: Wed, 31 Dec 2003 13:39:08 +0000 (+0000) Subject: Some improvements when displaying PNGs X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=f2c80965f5b3221100b8c291ea9003eb54358bcf;p=moodle.git Some improvements when displaying PNGs --- diff --git a/lib/weblib.php b/lib/weblib.php index d88e8e2990..085847d0b6 100644 --- a/lib/weblib.php +++ b/lib/weblib.php @@ -1106,11 +1106,28 @@ function print_user_picture($userid, $courseid, $picture, $large=false, $returns } } -function print_group_picture($groupid, $courseid, $picture, $large=false, $returnstring=false, $link=true) { +function recent_internet_explorer() { +/// Returns true if the current browser is a recent version +/// of Internet Explorer + + $msie = '/msie\s([5-9])\.?[0-9]*.*(win)/i'; + $opera='/opera\s+[0-9]+/i'; + + return isset($_SERVER['HTTP_USER_AGENT']) and + preg_match($msie,$_SERVER['HTTP_USER_AGENT']) and + !preg_match($opera,$_SERVER['HTTP_USER_AGENT']); +} + +function print_group_picture($group, $courseid, $large=false, $returnstring=false, $link=true) { global $CFG; + static $recentIE; + + if (!isset($recentIE)) { + $recentIE = recent_internet_explorer(); + } if ($link) { - $output = "wwwroot/course/group.php?id=$courseid&group=$groupid\">"; + $output = "wwwroot/course/group.php?id=$courseid&group=$group->id\">"; } else { $output = ""; } @@ -1121,17 +1138,23 @@ function print_group_picture($groupid, $courseid, $picture, $large=false, $retur $file = "f2"; $size = 35; } - if ($picture) { // Print custom group picture + if ($group->picture) { // Print custom group picture if ($CFG->slasharguments) { // Use this method if possible for better caching - $output .= "wwwroot/user/pixgroup.php/$groupid/$file.jpg\"". - " border=\"0\" width=\"$size\" height=\"$size\" alt=\"\" />"; + $pngsrc = "$CFG->wwwroot/user/pixgroup.php/$group->id/$file.png"; } else { - $output .= "wwwroot/user/pixgroup.php?file=/$groupid/$file.jpg\"". - " border=\"0\" width=\"$size\" height=\"$size\" alt=\"\" />"; + $pngsrc = "$CFG->wwwroot/user/pixgroup.php?file=/$group->id/$file.png"; } - } else { // Print default group pictures (use theme version if available) - $output .= "pixpath/g/$file.png\"". - " border=\"0\" width=\"$size\" height=\"$size\" alt=\"\" />"; + if ($recentIE) { // work around the HORRIBLE bug IE has with alpha transparencies + $output .= "pixpath/spacer.gif\" width=\"$size\" height=\"$size\"". + " border=\"0\" style=\"width: {$size}px; height: {$size}px; ". + " filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='$pngsrc', sizingMethod='scale') ". + " alt=\"\" title=\"$group->name\" />"; + } else { + $output .= "\"\"name\" />"; + } + } else { // Print nothing + $output .= ""; } if ($link) { $output .= "";