]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-21198 improved/simplified $OUTPUT->user_picture() + regression fixes, performance...
authorPetr Skoda <skodak@moodle.org>
Sun, 27 Dec 2009 19:47:21 +0000 (19:47 +0000)
committerPetr Skoda <skodak@moodle.org>
Sun, 27 Dec 2009 19:47:21 +0000 (19:47 +0000)
57 files changed:
blocks/messages/block_messages.php
blocks/online_users/block_online_users.php
blog/locallib.php
grade/report/grader/ajaxlib.php
grade/report/grader/lib.php
lib/commentlib.php
lib/deprecatedlib.php
lib/outputcomponents.php
lib/outputrenderers.php
lib/simpletest/testoutputlib.php
message/discussion.php
message/history.php
message/lib.php
message/user.php
mod/assignment/lib.php
mod/assignment/type/upload/assignment.class.php
mod/chat/chatd.php
mod/chat/gui_basic/index.php
mod/chat/gui_header_js/users.php
mod/chat/lib.php
mod/chat/report.php
mod/chat/view.php
mod/choice/lib.php
mod/data/report.php
mod/feedback/lib.php
mod/feedback/show_entries.php
mod/forum/lib.php
mod/forum/renderer.php
mod/forum/report.php
mod/glossary/formats/TEMPLATE/TEMPLATE_format.php
mod/glossary/formats/encyclopedia/encyclopedia_format.php
mod/glossary/formats/fullwithauthor/fullwithauthor_format.php
mod/glossary/report.php
mod/glossary/view.php
mod/hotpot/lib.php
mod/hotpot/report/overview/report.php
mod/hotpot/report/simplestat/report.php
mod/lesson/essay.php
mod/lesson/report.php
mod/quiz/attemptlib.php
mod/quiz/lib.php
mod/quiz/report/grading/report.php
mod/quiz/report/overview/overview_table.php
mod/quiz/report/responses/responses_table.php
mod/quiz/review.php
mod/quiz/reviewquestion.php
mod/scorm/report.php
mod/survey/lib.php
mod/survey/report.php
mod/wiki/ewiki/ewiki.php
mod/wiki/ewiki/plugins/moodle/downloads.php
notes/lib.php
search/query.php
user/edit_form.php
user/editadvanced_form.php
user/index.php
user/view.php

index 512a5dd8f436fd2744f74533dcc9a935a8d15c75..927585497d680d679d1bfe03642adb53a7e7ef3f 100644 (file)
@@ -45,7 +45,7 @@ class block_messages extends block_base {
             foreach ($users as $user) {
                 $timeago = format_time(time() - $user->lastaccess);
                 $this->content->text .= '<li class="listentry"><div class="user"><a href="'.$CFG->wwwroot.'/user/view.php?id='.$user->id.'&amp;course='.SITEID.'" title="'.$timeago.'">';
-                $this->content->text .= $OUTPUT->user_picture(moodle_user_picture::make($user, SITEID));
+                $this->content->text .= $OUTPUT->user_picture($user, array('courseid'=>SITEID)); //TODO: user might not have capability to view frontpage profile :-(
                 $this->content->text .= fullname($user).'</a></div>';
                 $this->content->text .= '<div class="message"><a href="'.$CFG->wwwroot.'/message/discussion.php?id='.$user->id.'" onclick="this.target=\'message_'.$user->id.'\'; return openpopup(\'/message/discussion.php?id='.$user->id.'\', \'message_'.$user->id.'\', \'menubar=0,location=0,scrollbars,status,resizable,width=400,height=500\', 0);"><img class="iconsmall" src="'.$OUTPUT->pix_url('t/message') . '" alt="" />&nbsp;'.$user->count.'</a>';
                 $this->content->text .= '</div></li>';
index cc0b245e56ecaa3cfefb8e45b2248637f639bb99..8a2243e472045667a6a6834cb8915492bca40952 100644 (file)
@@ -140,16 +140,14 @@ class block_online_users extends block_base {
             foreach ($users as $user) {
                 $this->content->text .= '<li class="listentry">';
                 $timeago = format_time(time() - $user->lastaccess); //bruno to calculate correctly on frontpage
-                $userpic = moodle_user_picture::make($user, $this->page->course->id);
-                $userpic->size = 16;
 
                 if ($user->username == 'guest') {
-                    $this->content->text .= '<div class="user">'.$OUTPUT->user_picture($userpic);
+                    $this->content->text .= '<div class="user">'.$OUTPUT->user_picture($user, array('size'=>16));
                     $this->content->text .= get_string('guestuser').'</div>';
 
                 } else {
                     $this->content->text .= '<div class="user"><a href="'.$CFG->wwwroot.'/user/view.php?id='.$user->id.'&amp;course='.$this->page->course->id.'" title="'.$timeago.'">';
-                    $this->content->text .= '<div class="user">'.$OUTPUT->user_picture($userpic);
+                    $this->content->text .= '<div class="user">'.$OUTPUT->user_picture($user, array('size'=>16));
                     $this->content->text .= $user->fullname.'</a></div>';
                 }
                 if ($canshowicon and ($USER->id != $user->id) and  $user->username != 'guest') {  // Only when logged in and messaging active etc
index 565ea9c061387bca97ecc0cca0845f17478c832a..cc5384da20b895a42b2441cb7ee789fcfffeb4e8 100644 (file)
@@ -138,7 +138,7 @@ class blog_entry {
 
         $picturecell = new html_table_cell();
         $picturecell->add_classes('picture left');
-        $picturecell->text = $OUTPUT->user_picture(moodle_user_picture::make($user, SITEID));
+        $picturecell->text = $OUTPUT->user_picture($user);
 
         $table->head[] = $picturecell;
 
index e9c9b97fea522fb121973b7e5f49b8c69f5fd396..6f19b73d424cf350dc60786e2761ed47416a01d3 100644 (file)
@@ -183,7 +183,7 @@ class grade_report_grader_ajax extends grade_report_grader {
             // Student name and link
             $user_pic = null;
             if ($showuserimage) {
-                $user_pic = '<div class="userpic">' . $OUTPUT->user_picture(moodle_user_picture::make($user, $this->courseid)) . '</div>';
+                $user_pic = '<div class="userpic">' . $OUTPUT->user_picture($user) . '</div>';
             }
 
             $studentrowhtml .= '<tr class="r'.$this->rowcount++ . $row_classes[$this->rowcount % 2] . '">'
index 9220246f921102620656cf27a84d64234e1239c1..fd9bf018e689fc41815114e1930d4392c4bdf30f 100644 (file)
@@ -601,7 +601,7 @@ class grade_report_grader extends grade_report {
             $usercell->add_action('click', 'yui_set_row');
 
             if ($showuserimage) {
-                $usercell->text = $OUTPUT->container($OUTPUT->user_picture(moodle_user_picture::make($user, $this->courseid)), 'userpic');
+                $usercell->text = $OUTPUT->container($OUTPUT->user_picture($user), 'userpic');
             }
 
             $usercell->text .= $OUTPUT->link(html_link::make(new moodle_url($CFG->wwwroot.'/user/view.php', array('id' => $user->id, 'course' => $this->course->id)), fullname($user)));
index 47c5a8c70bc26f919510de41c4ac4ced82f250ac..f439ef6b5ad13ebc2c9ab7f143c3d44b818ea73b 100644 (file)
@@ -396,11 +396,7 @@ EOD;
                 $user->lastname  = $c->lastname;
                 $user->imagealt  = $c->imagealt;
                 $c->content = format_text($c->content, $c->format);
-                $userpic = moodle_user_picture::make($user, $this->course->id);
-                $userpic->link = true;
-                $userpic->size = 18;
-                $userpic->alttext = true;
-                $c->avatar = $OUTPUT->user_picture($userpic);
+                $c->avatar = $OUTPUT->user_picture($user, array('size'=>18));
                 if (($USER->id == $c->userid) || !empty($candelete)) {
                     $c->delete = true;
                 }
@@ -485,9 +481,7 @@ EOD;
             $newcmt->time = userdate($now, get_string('strftimerecent', 'langconfig'));
             $newcmt->username = fullname($USER);
             $newcmt->content = format_text($newcmt->content);
-            $userpic = moodle_user_picture::make($USER, $this->course->id);
-            $userpic->size = 16;
-            $newcmt->avatar = $OUTPUT->user_picture($userpic);
+            $newcmt->avatar = $OUTPUT->user_picture($user, array('size'=>16));
             return $newcmt;
         } else {
             throw new comment_exception('dbupdatefailed');
index 3a4d47b7516aeae79a1972a7a6879d4bf9b095f7..77b18be65ad3f1d90a4a71dd14526788059eb739 100644 (file)
@@ -2661,26 +2661,23 @@ function print_file_picture($path, $courseid=0, $height='', $width='', $link='',
  * @return string|void String or nothing, depending on $return.
  */
 function print_user_picture($user, $courseid, $picture=NULL, $size=0, $return=false, $link=true, $target='', $alttext=true) {
-    global $CFG, $DB, $OUTPUT;
-
-    debugging('print_user_picture() has been deprecated. Please change your code to use $OUTPUT->user_picture($user, $courseid).');
+    global $OUTPUT;
 
-    $userpic = new moodle_user_picture();
-    $userpic->user = $user;
-    $userpic->courseid = $courseid;
-    $userpic->size = $size;
-    $userpic->link = $link;
-    $userpic->alttext = $alttext;
+    debugging('print_user_picture() has been deprecated. Please change your code to use $OUTPUT->user_picture($user, array(\'courseid\'=>$courseid).');
 
-    if (!empty($picture)) {
-        $userpic->image->src = $picture;
+    if (!is_object($user)) {
+        $userid = $user;
+        $user = new object();
+        $user->id = $userid;
     }
 
-    if (!empty($target)) {
-        $userpic->add_action(new popup_action('click', new moodle_url($target)));
+    if (empty($user->picture) and $picture) {
+        $user->picture = $picture;
     }
 
-    $output = $OUTPUT->user_picture($userpic);
+    $options = array('size'=>$size, 'link'=>$link, 'alttext'=>$alttext, 'courseid'=>$courseid, 'popup'=>!empty($target));
+
+    $output = $OUTPUT->user_picture($user, $options);
 
     if ($return) {
         return $output;
index 2b246d92da27513bc263e8e50349f0c3bb9161da..dcdffabfefdc8aff2618bd12caeb9cd904c6518f 100644 (file)
@@ -1367,7 +1367,7 @@ class html_image extends labelled_html_component {
             throw new coding_exception('html_image requires a $src value (moodle_url).');
         }
 
-        $this->add_class('image');
+        $this->add_class('image'); //TODO. remove this like somehow
         parent::prepare($output, $page, $target);
     }
 
@@ -1817,43 +1817,38 @@ class moodle_paging_bar extends moodle_html_component {
  * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  * @since     Moodle 2.0
  */
-class moodle_user_picture extends moodle_html_component {
+class user_picture extends html_image {
     /**
-     * @var mixed $user A userid or a user object with at least fields id, picture, imagealrt, firstname and lastname set.
+     * @var mixed $user A user object with at least fields id, picture, imagealt, firstname and lastname set.
      */
     public $user;
     /**
-     * @var int $courseid The course id. Used when constructing the link to the user's profile.
+     * @var int $courseid The course id. Used when constructing the link to the user's profile,
+     * page course id used if not specified.
      */
     public $courseid;
     /**
-     * @var html_image $image A custom image used as the user picture.
+     * @var bool $link add course profile link to image
      */
-    public $image;
-    /**
-     * @var mixed $url False: picture not enclosed in a link. True: default link. moodle_url: custom link.
-     */
-    public $url;
+    public $link = true;
     /**
      * @var int $size Size in pixels. Special values are (true/1 = 100px) and (false/0 = 35px) for backward compatibility
      */
-    public $size;
+    public $size = 35;
     /**
-     * @var boolean $alttext add non-blank alt-text to the image. (Default true, set to false for purely
+     * @var boolean $alttext add non-blank alt-text to the image.
+     * Default true, set to false when image alt just duplicates text in screenreaders.
      */
     public $alttext = true;
     /**
-     * @var boolean $popup Whether or not to open the link in a popup window
+     * @var boolean $popup Whether or not to open the link in a popup window.
      */
     public $popup = false;
 
     /**
-     * Constructor: sets up the other components in case they are needed
-     * @return void
+     * @var link to profile if link requested
      */
-    public function __construct() {
-        $this->image = new html_image();
-    }
+    public $url;
 
     /**
      * @see lib/moodle_html_component#prepare()
@@ -1863,55 +1858,52 @@ class moodle_user_picture extends moodle_html_component {
         global $CFG, $DB;
 
         if (empty($this->user)) {
-            throw new coding_exception('A moodle_user_picture object must have a $user object before being rendered.');
+            throw new coding_exception('A user_picture object must have a $user object before being rendered.');
         }
 
-        if (empty($this->courseid)) {
-            throw new coding_exception('A moodle_user_picture object must have a courseid value before being rendered.');
+        if (empty($this->user->id)) {
+            throw new coding_exception('User id missing in $user object.');
         }
 
-        if (!($this->image instanceof html_image)) {
-            debugging('moodle_user_picture::image must be an instance of html_image', DEBUG_DEVELOPER);
+        if (empty($this->courseid)) {
+            $courseid = $page->course->id;
+        } else {
+            $courseid = $this->courseid;
         }
 
+        // only touch the DB if we are missing data and complain loudly...
         $needrec = false;
-        // only touch the DB if we are missing data...
-        if (is_object($this->user)) {
-            // Note - both picture and imagealt _can_ be empty
-            // what we are trying to see here is if they have been fetched
-            // from the DB. We should use isset() _except_ that some installs
-            // have those fields as nullable, and isset() will return false
-            // on null. The only safe thing is to ask array_key_exists()
-            // which works on objects. property_exists() isn't quite
-            // what we want here...
-            if (! (array_key_exists('picture', $this->user)
-                   && ($this->alttext && array_key_exists('imagealt', $this->user)
-                       || (isset($this->user->firstname) && isset($this->user->lastname)))) ) {
-                $needrec = true;
-                $this->user = $this->user->id;
-            }
-        } else {
-            if ($this->alttext) {
-                // we need firstname, lastname, imagealt, can't escape...
+
+        if (!array_key_exists('picture', $this->user)) {
+            $needrec = true;
+            debugging('Missing picture property in $user object, this is a performance problem that needs to be fixed by a developer.', DEBUG_DEVELOPER);
+        }
+        if ($this->alttext) {
+            if (!array_key_exists('firstname', $this->user) || !array_key_exists('lastname', $this->user) || !array_key_exists('imagealt', $this->user)) {
                 $needrec = true;
-            } else {
-                $userobj = new StdClass; // fake it to save DB traffic
-                $userobj->id = $this->user;
-                $userobj->picture = $this->image->src;
-                $this->user = clone($userobj);
-                unset($userobj);
+                debugging('Missing firstname, lastname or imagealt property in $user object, this is a performance problem that needs to be fixed by a developer.', DEBUG_DEVELOPER);
             }
         }
+
         if ($needrec) {
-            $this->user = $DB->get_record('user', array('id' => $this->user), 'id,firstname,lastname,imagealt');
+            $this->user = $DB->get_record('user', array('id'=>$this->user->id), 'id, firstname, lastname, imagealt');
         }
 
-        if ($this->url === true) {
-            $this->url = new moodle_url('/user/view.php', array('id' => $this->user->id, 'course' => $this->courseid));
+        if ($this->alttext) {
+            if (!empty($user->imagealt)) {
+                $this->alt = $user->imagealt;
+            } else {
+                $this->alt = get_string('pictureof', '', fullname($this->user));
+            }
+        } else {
+            $this->alt = HTML_ATTR_EMPTY;
         }
 
-        if (!empty($this->url) && $this->popup) {
-            $this->add_action(new popup_action('click', $this->url));
+        if ($this->link) {
+            $this->url = new moodle_url('/user/view.php', array('id' => $this->user->id, 'course' => $courseid));
+        } else {
+            $this->url = null;
+            $this->popup = false;
         }
 
         if (empty($this->size)) {
@@ -1927,42 +1919,22 @@ class moodle_user_picture extends moodle_html_component {
         }
 
         if (!empty($this->size)) {
-            $this->image->width = $this->size;
-            $this->image->height = $this->size;
+            $this->width = $this->size;
+            $this->height = $this->size;
         }
 
         $this->add_class('userpicture');
 
-        if (empty($this->image->src) && !empty($this->user->picture)) {
-            $this->image->src = $this->user->picture;
-        }
-
-        if (!empty($this->image->src)) {
+        if (!empty($this->user->picture)) {
             require_once($CFG->libdir.'/filelib.php');
-            $this->image->src = new moodle_url(get_file_url($this->user->id.'/'.$file.'.jpg', null, 'user'));
+            $this->src = new moodle_url(get_file_url($this->user->id.'/'.$file.'.jpg', null, 'user'));
         } else { // Print default user pictures (use theme version if available)
             $this->add_class('defaultuserpic');
-            $this->image->src = $output->pix_url('u/' . $file);
-        }
-
-        if ($this->alttext) {
-            if (!empty($this->user->imagealt)) {
-                $this->image->alt = $this->user->imagealt;
-            } else {
-                // No alt text when there is nothing useful (accessibility)
-                $this->image->alt = HTML_ATTR_EMPTY;
-            }
+            $this->src = $output->pix_url('u/' . $file);
         }
 
         parent::prepare($output, $page, $target);
     }
-
-    public static function make($user, $courseid) {
-        $userpic = new moodle_user_picture();
-        $userpic->user = $user;
-        $userpic->courseid = $courseid;
-        return $userpic;
-    }
 }
 
 
index 7a3f0967e3facbaa0c30926f833c297654b42835..1371364dce19933b9a9b7d53c1e6eb9009df6864 100644 (file)
@@ -1177,58 +1177,61 @@ class core_renderer extends renderer_base {
      *
      * This method can be used in two ways:
      * <pre>
-     * // Option 1:
-     * $userpic = new moodle_user_picture();
+     * // Option 1: (shortcut for simple cases, preferred way)
+     * // $user has come from the DB and has fields id, picture, imagealt, firstname and lastname
+     * $OUTPUT->user_picture($user, array('popup'=>true));
+     *
+     * // Option 2: (not recommended)
+     * $userpic = new user_picture();
      * // Set properties of $userpic
+     * $userpic->user = $user;
+     * $userpic->popup = true;
      * $OUTPUT->user_picture($userpic);
-     *
-     * // Option 2: (shortcut for simple cases)
-     * // $user has come from the DB and has fields id, picture, imagealt, firstname and lastname
-     * $OUTPUT->user_picture($user, $COURSE->id);
      * </pre>
      *
-     * @param object $userpic Object with at least fields id, picture, imagealt, firstname, lastname
-     *     If any of these are missing, or if a userid is passed, the database is queried. Avoid this
+     * @param object $user_or_userpicture Object with at least fields id, picture, imagealt, firstname, lastname
+     *     If any of these are missing, the database is queried. Avoid this
      *     if at all possible, particularly for reports. It is very bad for performance.
-     *     A moodle_user_picture object is a better parameter.
-     * @param int $courseid courseid Used when constructing the link to the user's profile. Required if $userpic
-     *     is not a moodle_user_picture object
+     * @param array $options associative array with user picture options, used only if not a user_picture object,
+     *     options are:
+     *     - courseid=$this->page->course->id (course id of user profile in link)
+     *     - size=35 (size of image)
+     *     - link=true (make image clickable - the link leads to user profile)
+     *     - popup=false (open in popup)
+     *     - alttext=true (add image alt attribute)
      * @return string HTML fragment
      */
-    public function user_picture($userpic, $courseid=null) {
-        // Instantiate a moodle_user_picture object if $user is not already one
-        if (!($userpic instanceof moodle_user_picture)) {
-            if (empty($courseid)) {
-                throw new coding_exception('Called $OUTPUT->user_picture with a $user object but no $courseid.');
-            }
+    public function user_picture(stdClass $user_or_userpicture, array $options = null) {
+
+        if ($user_or_userpicture instanceof user_picture) {
+            // we need a clone because prepare() should not be called repeatedly
+            $userpic = clone($user_or_userpicture);
 
-            $user = $userpic;
-            $userpic = new moodle_user_picture();
-            $userpic->user = $user;
-            $userpic->courseid = $courseid;
         } else {
-            $userpic = clone($userpic);
+            $userpic = new user_picture();
+            $userpic->user = $user_or_userpicture;
+            $options = (array)$options;
+            $allowed = array('courseid', 'size', 'link', 'popup', 'alttext');
+            foreach ($allowed as $key) {
+                if (array_key_exists($key, $options)) {
+                    $userpic->$key = $options[$key];
+                }
+            }
         }
 
         $userpic->prepare($this, $this->page, $this->target);
 
-        $output = $this->image($userpic->image);
-
-        if (!empty($userpic->url)) {
-            $actions = $userpic->get_actions();
-            if ($userpic->popup && !empty($actions)) {
-                $link = new html_link();
-                $link->url = $userpic->url;
-                $link->text = fullname($userpic->user);
-                $link->title = fullname($userpic->user);
+        // get the image html output fisrt, then wrap it in link if needed
+        $output = $this->image($userpic);
 
-                foreach ($actions as $action) {
-                    $link->add_action($action);
-                }
-                $output = $this->link_to_popup($link, $userpic->image);
-            } else {
-                $output = $this->link(prepare_url($userpic->url), $output);
+        if ($userpic->link) {
+            $link = new html_link();
+            $link->url  = $userpic->url;
+            $link->text = $output;
+            if ($userpic->popup) {
+                $link->add_action(new popup_action('click', $userpic->url));
             }
+            $output = $this->link($link);
         }
 
         return $output;
index 725ce5169dcf284615e1cd448704a37db5551e7c..9247dc26b6f337b78744a1c3f5c415bcf7d042d0 100644 (file)
@@ -879,7 +879,7 @@ class core_renderer_test extends UnitTestCase {
         $user->picture = false;
         $user->imagealt = false;
         $user->id = 1;
-        $userpic = new moodle_user_picture();
+        $userpic = new user_picture();
         $userpic->user = $user;
         $userpic->courseid = 1;
         $userpic->url = true;
index 49ebfc3b5f7738844422dace4c15dd2dedbb2248..c285ef479756541efbebb0d41a3e1ec8cba94b61 100644 (file)
 
     echo '<div class="message-discussion-noframes">';
     echo '<div id="userinfo">';
-    $userpic = moodle_user_picture::make($user, SITEID);
-    $userpic->size = 48;
-    $userpic->link = true;
-    echo $OUTPUT->user_picture($userpic);
+    echo $OUTPUT->user_picture($user, array('size'=>48, 'courseid'=>SITEID));
     echo '<div class="name"><h1>'.$userfullname.'</h1></div>';
     echo '<div class="commands"><ul>';
     if ($contact = $DB->get_record('message_contacts', array('userid'=>$USER->id, 'contactid'=>$user->id))) {
index 5e13508cb0476f572b04e7fed726726f14e9998a..79abfaacc66d0465352c81c80fa5dcaed5d66ba9 100644 (file)
@@ -81,10 +81,7 @@ echo $OUTPUT->header();
 echo $OUTPUT->box_start('center');
 echo '<table align="center" cellpadding="10"><tr>';
 echo '<td align="center">';
-$userpic = moodle_user_picture::make($user1, SITEID);
-$userpic->size = 100;
-$userpic->link = true;
-echo $OUTPUT->user_picture($userpic).'<br />';
+echo $OUTPUT->user_picture($user1, array('size'=>100, 'courseid'=>SITEID)).'<br />';
 echo fullname($user1);
 echo '</td>';
 echo '<td align="center">';
@@ -92,10 +89,7 @@ echo '<img src="'.$CFG->wwwroot.'/pix/t/left.gif" alt="'.get_string('from').'" /
 echo '<img src="'.$CFG->wwwroot.'/pix/t/right.gif" alt="'.get_string('to').'" />';
 echo '</td>';
 echo '<td align="center">';
-$userpic = moodle_user_picture::make($user2, SITEID);
-$userpic->size = 100;
-$userpic->link = true;
-echo $OUTPUT->user_picture($userpic).'<br />';
+echo $OUTPUT->user_picture($user2, array('size'=>100, 'courseid'=>SITEID)).'<br />';
 echo fullname($user2);
 echo '</td>';
 echo '</tr></table>';
index 9ab1f2ad995d85ea5c305fe3db174afa09999427..779e0566dab40122951ffdc2a84f772c63caae48 100644 (file)
@@ -354,10 +354,7 @@ function message_print_search_results($frm) {
                 $strhistory = message_history_link($user->id, 0, true, '', '', 'icon');
 
                 echo '<tr><td class="pix">';
-                $userpic = moodle_user_picture::make($user, SITEID);
-                $userpic->size = 20;
-                $userpic->link = true;
-                echo $OUTPUT->user_picture($userpic);
+                echo $OUTPUT->user_picture($user, array('size'=>20, 'courseid'=>SITEID));
                 echo '</td>';
                 echo '<td class="contact">';
                 $popupoptions = array(
@@ -529,14 +526,11 @@ function message_print_search_results($frm) {
 
 function message_print_user ($user=false, $iscontact=false, $isblocked=false) {
     global $USER, $OUTPUT;
-    $userpic = moodle_user_picture::make($USER, SITEID);
-    $userpic->size = 20;
-    $userpic->link = true;
 
     if ($user === false) {
-        echo $OUTPUT->user_picture($userpic);
+        echo $OUTPUT->user_picture($USER, array('size'=>20, 'courseid'=>SITEID));
     } else {
-        echo $OUTPUT->user_picture($userpic);
+        echo $OUTPUT->user_picture($USE, array('size'=>20, 'courseid'=>SITEID));
         echo '&nbsp;';
         if ($iscontact) {
             message_contact_link($user->id, 'remove');
@@ -1072,10 +1066,7 @@ function message_print_contactlist_user($contact, $incontactlist = true){
     $strhistory = message_history_link($contact->id, 0, true, '', '', 'icon');
 
     echo '<tr><td class="pix">';
-    $userpic = moodle_user_picture::make($contact, SITEID);
-    $userpic->size = 20;
-    $userpic->link = true;
-    echo $OUTPUT->user_picture($userpic);
+    echo $OUTPUT->user_picture($contact, array('size'=>20, 'courseid'=>SITEID));
     echo '</td>';
     echo '<td class="contact">';
 
index 8fc8048bac8cea39dc0521c6895d82a2e23eccb3..22c952516620273db0cc5f418cb00624978682a2 100644 (file)
@@ -90,10 +90,7 @@ $PAGE->set_pagelayout('popup');
 echo $OUTPUT->header();
 echo '<table width="100%" cellpadding="0" cellspacing="0"><tr>';
 echo '<td width="100">';
-$userpic = moodle_user_picture::make($user, SITEID);
-$userpic->size = 48;
-$userpic->link = true;
-echo $OUTPUT->user_picture($userpic) .'</td>';
+echo $OUTPUT->user_picture($user, array('size'=>48, 'courseid'=>SITEID)) .'</td>';
 echo '<td valign="middle" align="center">';
 
 echo '<div class="name">'.fullname($user).'</div>';
index a3eaf7ddc7d8f7add8004c1dfc1a8562d745f78e..4d53c218477a88ddd942c115a775f80e88adcda7 100644 (file)
@@ -299,7 +299,7 @@ class assignment_base {
         echo '<tr>';
         echo '<td class="left picture">';
         if ($teacher) {
-            echo $OUTPUT->user_picture(moodle_user_picture::make($teacher, $this->course->id));
+            echo $OUTPUT->user_picture($teacher);
         }
         echo '</td>';
         echo '<td class="topic">';
@@ -947,7 +947,7 @@ class assignment_base {
             global $USER;
             $teacher = $USER;
         }
-        echo $OUTPUT->user_picture(moodle_user_picture::make($teacher, $this->course->id));
+        echo $OUTPUT->user_picture($teacher);
         echo '</td>';
         echo '<td class="content">';
         echo '<form id="submitform" action="submissions.php" method="post">';
@@ -1040,7 +1040,7 @@ class assignment_base {
         ///End of teacher info row, Start of student info row
         echo '<tr>';
         echo '<td class="picture user">';
-        echo $OUTPUT->user_picture(moodle_user_picture::make($user, $this->course->id));
+        echo $OUTPUT->user_picture($user);
         echo '</td>';
         echo '<td class="topic">';
         echo '<div class="from">';
@@ -1259,7 +1259,7 @@ class assignment_base {
 
             /// Calculate user status
                 $auser->status = ($auser->timemarked > 0) && ($auser->timemarked >= $auser->timemodified);
-                $picture = $OUTPUT->user_picture(moodle_user_picture::make($auser, $course->id));
+                $picture = $OUTPUT->user_picture($auser);
 
                 if (empty($auser->submissionid)) {
                     $auser->grade = -1; //no submission yet
@@ -2889,7 +2889,7 @@ function assignment_print_recent_mod_activity($activity, $courseid, $detail, $mo
     echo '<table border="0" cellpadding="3" cellspacing="0" class="assignment-recent">';
 
     echo "<tr><td class=\"userpicture\" valign=\"top\">";
-    echo $OUTPUT->user_picture(moodle_user_picture::make($activity->user, $courseid));
+    echo $OUTPUT->user_picture($activity->user);
     echo "</td><td>";
 
     if ($detail) {
index 1a4b63f650ed03f6a456fb34172b28ef1e614b80..7bbf5c8ef1dcd5200439486886ded54a6c8f4e44 100644 (file)
@@ -116,7 +116,7 @@ class assignment_upload extends assignment_base {
 
         echo '<tr>';
         echo '<td class="left picture">';
-        echo $OUTPUT->user_picture(moodle_user_picture::make($teacher, $this->course->id));
+        echo $OUTPUT->user_picture($teacher);
         echo '</td>';
         echo '<td class="topic">';
         echo '<div class="from">';
index d6fc4f53d7f7e89bb3d3e8e339a37932835c3fff..d307912a198e7979b8e0bbdef886af6ff9957ad4 100755 (executable)
@@ -281,7 +281,7 @@ EOD;
             $popuppar = '\'/user/view.php?id='.$userinfo['user']->id.'&amp;course='.$userinfo['courseid'].'\',\'user'.$userinfo['chatuser']->id.'\',\'\'';
             echo '<tr><td width="35">';
             echo '<a target="_new" onclick="return openpopup('.$popuppar.');" href="'.$CFG->wwwroot.'/user/view.php?id='.$userinfo['chatuser']->id.'&amp;course='.$userinfo['courseid'].'">';
-            echo $OUTPUT->user_picture(moodle_user_picture::make($userinfo['user'], 0));
+            echo $OUTPUT->user_picture($userinfo['user'], array('courseid'=>$userinfo['courseid']));
             echo "</a></td><td valign=\"center\">";
             echo "<p><font size=\"1\">";
             echo fullname($userinfo['user'])."<br />";
index 62a54021f8115719af722dcccc72b1cbc0dce7fe..1f90c222497818ea3b60484e3561d4e01e06f261 100644 (file)
@@ -120,9 +120,7 @@ echo '<h1>'.get_string('participants').'</h1>';
 echo '<div id="participants"><ul>';
 foreach($chatusers as $chu) {
     echo '<li>';
-    $userpic = moodle_user_picture::make($chu->id, $course->id);
-    $userpic->size = 24;
-    echo $OUTPUT->user_picture($userpic);
+    echo $OUTPUT->user_picture($chu, array('size'=>24, 'courseid'=>$course->id));
     echo '<div class="userinfo">';
     echo fullname($chu).' ';
     if ($idle = time() - $chu->lastmessageping) {
index fcb32502f8c075d86dfef50f9bfc4d437476eba5..8f980a54dfd3e1497dd231a7159b61273cb72e26 100644 (file)
@@ -91,7 +91,7 @@ foreach ($chatusers as $chatuser) {
     $idle = $min.':'.$sec;
     echo '<tr><td width="35">';
     echo "<a target=\"_blank\" onClick=\"return openpopup('/user/view.php?id=$chatuser->id&amp;course=$courseid','user$chatuser->id','');\" href=\"$CFG->wwwroot/user/view.php?id=$chatuser->id&amp;course=$courseid\">";
-    echo $OUTPUT->user_picture(moodle_user_picture::make($chatuser, $courseid));
+    echo $OUTPUT->user_picture($chatuser, array('courseid'=>$courseid));
     echo '</a></td><td valign="center">';
     echo '<p><font size="1">';
     echo fullname($chatuser).'<br />';
index b19b74c2b2952efb64d400fb2050cd6f27cea608..a3f786dc548e1c1119f6e5444df1f967268c324b 100644 (file)
@@ -775,14 +775,7 @@ function chat_format_message_manually($message, $courseid, $sender, $currentuser
     $USER->timezone = $tz;
     $message->strtime = userdate($message->timestamp, get_string('strftimemessage', 'chat'), $tz);
 
-    $userpic = new moodle_user_picture();
-    $userpic->user = $sender;
-    $userpic->courseid = $courseid;
-    $userpic->size = false;
-    $userpic->link = false;
-    $userpic->alttext = true;
-    $userpic->image->src = $sender->picture;
-    $message->picture = $OUTPUT->user_picture($userpic);
+    $message->picture = $OUTPUT->user_picture($sender, array('size'=>false, 'courseid'=>$courseid, 'link'=>false));
 
     if ($courseid) {
         $message->picture = "<a onclick=\"window.open('$CFG->wwwroot/user/view.php?id=$sender->id&amp;course=$courseid')\" href=\"$CFG->wwwroot/user/view.php?id=$sender->id&amp;course=$courseid\">$message->picture</a>";
@@ -945,7 +938,7 @@ function chat_format_message_theme ($message, $courseid, $currentuser, $theme =
     }
 
     $message->strtime = userdate($message->timestamp, get_string('strftimemessage', 'chat'), $tz);
-    $message->picture = $OUTPUT->user_picture(moodle_user_picture::make($sender, $courseid));
+    $message->picture = $OUTPUT->user_picture($sender, array('courseid'=>$courseid));
 
     $message->picture = "<a target='_blank' href=\"$CFG->wwwroot/user/view.php?id=$sender->id&amp;course=$courseid\">$message->picture</a>";
 
@@ -1076,7 +1069,7 @@ function chat_format_userlist($users, $course) {
         $item = array();
         $item['name'] = fullname($user);
         $item['url'] = $CFG->wwwroot.'/user/view.php?id='.$user->id.'&amp;course='.$course->id;
-        $item['picture'] = $OUTPUT->user_picture(moodle_user_picture::make($user, $COURSE->id));
+        $item['picture'] = $OUTPUT->user_picture($user);
         $item['id'] = $user->id;
         $result[] = $item;
     }
index 0462f26c4d01cd68dbdbd7f7f63646dcfc6f73ef..6bfba5e779fe3c14758e8e80a344bb651c05dc3f 100644 (file)
                 arsort($sessionusers);
                 foreach ($sessionusers as $sessionuser => $usermessagecount) {
                     if ($user = $DB->get_record('user', array('id'=>$sessionuser))) {
-                        $OUTPUT->user_picture(moodle_user_picture::make($user, $course->id));
+                        $OUTPUT->user_picture($user, array('courseid'=>$course->id));
                         echo '&nbsp;'.fullname($user, true); // XXX TODO  use capability instead of true
                         echo "&nbsp;($usermessagecount)<br />";
                     }
index 7ee891e1a062c2cd12852340548a028cf083233e..772991abce8ab32377a4d88ab5f88343422cf98d 100644 (file)
             $lastping = $timenow - $chatuser->lastmessageping;
             echo '<tr><td class="chatuserimage">';
             echo "<a href=\"$CFG->wwwroot/user/view.php?id=$chatuser->id&amp;course=$chat->course\">";
-            echo $OUTPUT->user_picture(moodle_user_picture::make($chatuser, $COURSE->id));
+            echo $OUTPUT->user_picture($chatuser);
             echo '</a></td><td class="chatuserdetails">';
             echo '<p>';
             echo fullname($chatuser).'<br />';
index e3bf7ed478361f0114fd3a43eab0d99c2e4fe53a..4fb5888737cd42450573a59303180f97c8fde699 100644 (file)
@@ -477,7 +477,7 @@ function choice_show_results($choice, $course, $cm, $allresponses, $forcepublish
                     foreach ($allresponses[0] as $user) {
                         echo "<tr>";
                         echo "<td class=\"picture\">";
-                        echo $OUTPUT->user_picture(moodle_user_picture::make($user->id, $course->id));
+                        echo $OUTPUT->user_picture($user, array('courseid'=>$course->id));
                         echo "</td><td class=\"fullname\">";
                         echo "<a href=\"$CFG->wwwroot/user/view.php?id=$user->id&amp;course=$course->id\">";
                         echo fullname($user, $hascapfullnames);
@@ -503,7 +503,7 @@ function choice_show_results($choice, $course, $cm, $allresponses, $forcepublish
                                 echo '<input type="checkbox" name="attemptid[]" value="'. $user->id. '" />';
                             }
                             echo '</td><td class="picture">';
-                            echo $OUTPUT->user_picture(moodle_user_picture::make($user->id, $course->id));
+                            echo $OUTPUT->user_picture($user, array('courseid'=>$course->id));
                             echo '</td><td class="fullname">';
                             echo "<a href=\"$CFG->wwwroot/user/view.php?id=$user->id&amp;course=$course->id\">";
                             echo fullname($user, $hascapfullnames);
index ccdcfd7692d13f4e5fc0d38785aed60ba80bb44e..025dd366de36f9888b8e1e33ca2ed4e0f2416345 100755 (executable)
@@ -73,9 +73,7 @@ if (!$ratings = data_get_ratings($record->id, $sqlsort)) {
             echo '<tr class="forumpostheader">';
         }
         echo '<td class="picture">';
-        $userpic = moodle_user_picture::make($rating, $data->course);
-        $userpic->link = true;
-        echo $OUTPUT->user_picture($userpic);
+        echo $OUTPUT->user_picture($rating, array('courseid'=>$data->course));
         echo '</td>';
         echo '<td class="author">' . $OUTPUT->link($CFG->wwwroot.'/user/view.php?id='.$rating->id.'&course='.$data->course, fullname($rating)) . '</td>';
         echo '<td style="white-space:nowrap" align="center" class="rating">'.$scalemenu[$rating->rating].'</td>';
index 46c355b6887d56b4fdd9ae059b14f230f621dca7..0a52800a77235310414ee604683db647b9705c60 100644 (file)
@@ -323,7 +323,7 @@ function feedback_print_recent_mod_activity($activity, $courseid, $detail, $modn
     echo '<table border="0" cellpadding="3" cellspacing="0" class="forum-recent">';
 
     echo "<tr><td class=\"userpicture\" valign=\"top\">";
-    echo $OUTPUT->user_picture(moodle_user_picture::make($activity->user, $courseid));
+    echo $OUTPUT->user_picture($activity->user, array('courseid'=>$courseid));
     echo "</td><td>";
 
     if ($detail) {
index 75547aa7d55a32693bb823cf4e3e9ebe0538a423..8b0bac6dc3132cfe38825edd7f8f9f0c90cb6a2a 100644 (file)
@@ -145,7 +145,7 @@ if($do_show == 'showentries'){
                     <table width="100%">
                         <tr>
                             <td align="left">
-                                <?php echo $OUTPUT->user_picture(moodle_user_picture::make($student, $course->id));?>
+                                <?php echo $OUTPUT->user_picture($student, array('courseid'=>$course->id));?>
                             </td>
                             <td align="left">
                                 <?php echo fullname($student);?>
index 6b2106e433660f099db206c0c34883ab6a60a5d3..da9601f69b63157c058dcb6c9a2927cfc03bff38 100644 (file)
@@ -3141,7 +3141,7 @@ function forum_make_mail_post($course, $cm, $forum, $discussion, $post, $userfro
     $output = '<table border="0" cellpadding="3" cellspacing="0" class="forumpost">';
 
     $output .= '<tr class="header"><td width="35" valign="top" class="picture left">';
-    $output .= $OUTPUT->user_picture(moodle_user_picture::make($userfrom, $course->id));
+    $output .= $OUTPUT->user_picture($userfrom, array('courseid'=>$course->id));
     $output .= '</td>';
 
     if ($post->parent) {
@@ -3359,7 +3359,7 @@ function forum_print_post($post, $discussion, $forum, &$cm, $course, $ownpost=fa
     $postuser->picture   = $post->picture;
 
     echo '<tr class="header"><td class="picture left">';
-    echo $OUTPUT->user_picture(moodle_user_picture::make($postuser, $course->id));
+    echo $OUTPUT->user_picture($postuser, array('courseid'=>$course->id));
     echo '</td>';
 
     if ($post->parent) {
@@ -3668,7 +3668,7 @@ function forum_print_discussion_header(&$post, $forum, $group=-1, $datestring=""
     $postuser->picture = $post->picture;
 
     echo '<td class="picture">';
-    echo $OUTPUT->user_picture(moodle_user_picture::make($postuser, $forum->course));
+    echo $OUTPUT->user_picture($postuser, array('courseid'=>$forum->course));
     echo "</td>\n";
 
     // User name
@@ -6193,7 +6193,7 @@ function forum_print_recent_mod_activity($activity, $courseid, $detail, $modname
     echo '<table border="0" cellpadding="3" cellspacing="0" class="forum-recent">';
 
     echo "<tr><td class=\"userpicture\" valign=\"top\">";
-    echo $OUTPUT->user_picture(moodle_user_picture::make($activity->user, $courseid));
+    echo $OUTPUT->user_picture($activity->user, array('courseid'=>$courseid));
     echo "</td><td class=\"$class\">";
 
     echo '<div class="title">';
index 9ba05285eb763cd00019944481b3f051233701fb..54d74c4c03e64f5ac327f34a3ec8abb511035ab7 100644 (file)
@@ -93,7 +93,7 @@ class mod_forum_renderer extends plugin_renderer_base {
             $table->tablealign = 'center';
             $table->data = array();
             foreach ($users as $user) {
-                $table->data[] = array($this->output->user_picture(moodle_user_picture::make($user, $course->id)), fullname($user), $user->email);
+                $table->data[] = array($this->output->user_picture($user, array('courseid'=>$course->id)), fullname($user), $user->email);
             }
             $output .= $this->output->table($table);
         }
index 289725e140e3383fbf42b92b179c93811a94ad46..d5a9d0664abe6efeab99907c9ef63bc1b4600723 100644 (file)
@@ -99,7 +99,7 @@ if (!$ratings = forum_get_ratings($post->id, $sqlsort)) {
     foreach ($ratings as $rating) {
         echo '<tr class="forumpostheader">';
         echo "<td>";
-        echo $OUTPUT->user_picture(moodle_user_picture::make($rating, $forum->course));
+        echo $OUTPUT->user_picture($rating, array('courseid'=>$forum->course));
         echo '</td><td>'.fullname($rating).'</td>';
         echo '<td style="white-space:nowrap" align="center" class="rating">'.$scalemenu[$rating->rating]."</td>";
         echo '<td style="white-space:nowrap" align="center" class="time">'.userdate($rating->time)."</td>";
index b223ed32ab3344f8e382551ae82dcbc9e6326635..22f27dfa4af2db507501707bbf9129f7e73c9ec0 100755 (executable)
@@ -15,7 +15,7 @@ function glossary_show_entry_TEMPLATE($course, $cm, $glossary, $entry, $mode='',
 
         //Use this function to show author's image
         //Comments: Configuration not supported
-        echo $OUTPUT->user_picture(moodle_user_picture::make($user, $course->id));
+        echo $OUTPUT->user_picture($user, array('courseid'=>$course->id));
 
         //Line separator to show this template fine. :-)
         echo '<br />';
index cdf626fc2d20987ec7ce1f186cfd88e0e04fe356..52248483c418b2234d1c51bb80ed7f1b739763de 100644 (file)
@@ -13,7 +13,7 @@ function glossary_show_entry_encyclopedia($course, $cm, $glossary, $entry, $mode
         echo '<tr valign="top">';
         echo '<td class="left picture">';
 
-        echo $OUTPUT->user_picture(moodle_user_picture::make($user, $course->id));
+        echo $OUTPUT->user_picture($user, array('courseid'=>$course->id));
 
         echo '</td>';
         echo '<th class="entryheader">';
index b8c249b9058b0d3edbc234f1aefcedfc5ccf88e1..68ba3ae93beadd32f3a9cf1d472fe52e057b174a 100644 (file)
@@ -13,7 +13,7 @@ function glossary_show_entry_fullwithauthor($course, $cm, $glossary, $entry, $mo
         echo '<tr valign="top">';
 
         echo '<td class="picture">';
-        echo $OUTPUT->user_picture(moodle_user_picture::make($user, $course->id));
+        echo $OUTPUT->user_picture($user, array('courseid'=>$course->id));
         echo '</td>';
 
         echo '<th class="entryheader">';
index 7f1f6dc8fe1a2551ad2f28398980d11ab7fb0b93..7685658598b80bf7ed54fb03bb8da449d7723a4e 100644 (file)
@@ -75,9 +75,7 @@ if (!$ratings = glossary_get_ratings($entry->id, $sqlsort)) {
             echo '<tr>';
         }
         echo '<td class="picture">';
-        $userpic = moodle_user_picture::make($rating, $glossary->course);
-        $userpic->link = true;
-        echo $OUTPUT->user_picture($userpic);
+        echo $OUTPUT->user_picture($rating, array('courseid'=>$glossary->course));
         echo '</td>';
         echo '<td class="author"><a href="'.$CFG->wwwroot.'/user/view.php?id='.$rating->id.'&amp;course='.$glossary->course.'">'.fullname($rating).'</a></td>';
         echo '<td style="white-space:nowrap" align="center" class="rating">'.$scalemenu[$rating->rating].'</td>';
index ca056867f3a703069b838d574379416dae3fc7d6..390684731a04d2e8a2768b4c12f987d713a768d0 100644 (file)
@@ -446,7 +446,7 @@ if ($allentries) {
                     echo '<th align="left">';
 
                     $user = $DB->get_record("user", array("id"=>$entry->userid));
-                    echo $OUTPUT->user_picture(moodle_user_picture::make($user, $course->id));
+                    echo $OUTPUT->user_picture($user, array('courseid'=>$course->id));
                     $pivottoshow = fullname($user, has_capability('moodle/site:viewfullnames', get_context_instance(CONTEXT_COURSE, $course->id)));
                 } else {
                     echo '<th >';
index 9094548743f6afd436c73dbd8287199c01915e88..4d9678ff887a43fe2f99cd16f05c9c3e4b594049 100644 (file)
@@ -1258,7 +1258,7 @@ function hotpot_print_recent_mod_activity($activity, $course, $detail=false) {
     print '<table border="0" cellpadding="3" cellspacing="0">';
 
     print '<tr><td'.$bgcolor.' class="forumpostpicture" width="35" valign="top">';
-    echo $OUTPUT->user_picture(moodle_user_picture::make($activity->user, $course));
+    echo $OUTPUT->user_picture($activity->user, array('courseid'=>$course));
     print '</td><td width="100%"><font size="2">';
 
     if ($detail) {
index f69c73072a9fd562f87b282af09ce62f8837740f..310aacab29f9cd8d99ae3512297aafda378bb3ac 100644 (file)
@@ -48,7 +48,10 @@ class hotpot_report extends hotpot_default_report {
                        $picture = '';
                        $name = fullname($u);
                        if ($is_html) {
-                               $picture = $OUTPUT->user_picture(moodle_user_picture::make($u->userid, $course->id));
+                           //grrrr
+                           $usr = clone($u);
+                           $u->id = $u->userid;
+                               $picture = $OUTPUT->user_picture($usr, array('courseid'=>$course->id));
                                $name = '<a href="'.$CFG->wwwroot.'/user/view.php?id='.$u->userid.'&amp;course='.$course->id.'">'.$name.'</a>';
                        }
                        $grade = isset($user->grade) && $user->grade<>'&nbsp;' ? $user->grade : $spacer;
index d5a64b1298e8d9203c8dc3bd004ddc18709b5324..a64713b549701164a88e6cce35adacf2cf474a6b 100644 (file)
@@ -57,7 +57,7 @@ class hotpot_report extends hotpot_default_report {
                        $picture = '';
                        $name = fullname($u);
                        if ($is_html) {
-                               $picture = $OUTPUT->user_picture(moodle_user_picture::make($u, $course->id));
+                               $picture = $OUTPUT->user_picture($u, array('courseid'=>$course->id));
                                $name = $OUTPUT->link($CFG->wwwroot.'/user/view.php?id='.$u->userid.'&course='.$course->id, $name);
                        }
                        if (isset($user->grade)) {
index d8eb0ee7b6baf9c10c4ed7475a406d32f4e0f9d3..7ba0271fbd143dda08d06f48db0fca73d208b026 100644 (file)
@@ -347,7 +347,7 @@ switch ($mode) {
             $url = new moodle_url($CFG->wwwroot.'/mod/lesson/essay.php', array('id'=>$cm->id,'mode'=>'email','userid'=>$userid,'sesskey'=>sesskey()));
             $emaillink = $OUTPUT->link(html_link::make($url, get_string('emailgradedessays', 'lesson')));
 
-            $table->data[] = array($OUTPUT->user_picture(moodle_user_picture::make($users[$userid], $course->id)).$studentname, implode("<br />", $essaylinks), $emaillink);
+            $table->data[] = array($OUTPUT->user_picture($users[$userid], array('courseid'=>$course->id)).$studentname, implode("<br />", $essaylinks), $emaillink);
         }
 
         // email link for all users
index 22fc5b1a02310bcdd1492a3cb7a8ad3e27be824b..82aed70f84f619a13ca319f23f80e6a187a673a6 100644 (file)
@@ -506,7 +506,7 @@ if ($action == 'reportoverview') {
 
             $gradeinfo = lesson_grade($lesson, $try, $user->id);
 
-            $table->data[] = array(get_string('name').':', $OUTPUT->user_picture(moodle_user_picture::make($user, $course->id)).fullname($user, true));
+            $table->data[] = array(get_string('name').':', $OUTPUT->user_picture($user, array('courseid'=>$course->id)).fullname($user, true));
             $table->data[] = array(get_string("timetaken", "lesson").":", format_time($timetotake));
             $table->data[] = array(get_string("completed", "lesson").":", userdate($completed));
             $table->data[] = array(get_string('rawgrade', 'lesson').':', $gradeinfo->earned.'/'.$gradeinfo->total);
index 00209a244047058ffeb4deeeed72ebd0baf5d9ee..a69f8db102b6651efefe6298f148e1b52d657cac 100644 (file)
@@ -1062,7 +1062,7 @@ abstract class quiz_nav_panel_base {
         $user = $DB->get_record('user', array('id' => $this->attemptobj->get_userid()));
         $output = '';
         $output .= '<div id="user-picture" class="clearfix">';
-        $output .= $OUTPUT->user_picture(moodle_user_picture::make($user, $this->attemptobj->get_courseid()));
+        $output .= $OUTPUT->user_picture($user, array('courseid'=>$this->attemptobj->get_courseid()));
         $output .= ' ' . fullname($user);
         $output .= '</div>';
         return $output;
index 74453ef4be104af8159ffe3b214e61da1e6d1bce..24b536978069ffaa29443eae9b41a59097f3769c 100644 (file)
@@ -839,7 +839,7 @@ function quiz_print_recent_mod_activity($activity, $courseid, $detail, $modnames
     echo '<table border="0" cellpadding="3" cellspacing="0" class="forum-recent">';
 
     echo "<tr><td class=\"userpicture\" valign=\"top\">";
-    echo $OUTPUT->user_picture(moodle_user_picture::make($activity->user, $courseid));
+    echo $OUTPUT->user_picture($activity->user, array('courseid'=>$courseid));
     echo "</td><td>";
 
     if ($detail) {
index 84fab2cba97aa82bf8e0e9c0206d5d64b3e9daad..1723c3bb59e6e288909baa758d92b27a3b6d6ca3 100644 (file)
@@ -296,7 +296,9 @@ class quiz_grading_report extends quiz_default_report {
             $table->add_separator();
             foreach($attempts as $attempt) {
 
-                $picture = $OUTPUT->user_picture(moodle_user_picture::make($attempt->userid, $quiz->course));
+                //TODO: this is a performance problem, fetch user info elsewhere!!
+                $user = (object)array('id'=>$attempt->userid);
+                $picture = $OUTPUT->user_picture($user, array('courseid'=>$quiz->course));
 
                 // link to student profile
                 $userlink = "<a href=\"$CFG->wwwroot/user/view.php?id=$attempt->userid&amp;course=$quiz->course\">".
index 1bad73b924a5a7070820fe8d9f6bf8d25ba306ce..db3fe87b198089253ad57f58b5607d7f6b07ad6e 100644 (file)
@@ -123,7 +123,7 @@ class quiz_report_overview_table extends table_sql {
         $user->firstname = $attempt->firstname;
         $user->imagealt = $attempt->imagealt;
         $user->picture = $attempt->picture;
-        return $OUTPUT->user_picture(moodle_user_picture::make($user, $COURSE->id));
+        return $OUTPUT->user_picture($user);
     }
 
 
index 898cad1fbd042cc25d44532ada81134e1f49e285..310f09601ec0cae48b67d0a26b06f005e05709eb 100644 (file)
@@ -78,7 +78,7 @@ class quiz_report_responses_table extends table_sql {
         $user->firstname = $attempt->firstname;
         $user->imagealt = $attempt->imagealt;
         $user->picture = $attempt->picture;
-        return $OUTPUT->user_picture(moodle_user_picture::make($user, $COURSE->id));
+        return $OUTPUT->user_picture($user);
     }
 
 
index 015697d87603fa8222d50f32cf8b2cfbc0486a51..a43d60d7b0356adedf5f8e6677f787b770e1f591 100644 (file)
     if (!$attemptobj->get_quiz()->showuserpicture && $attemptobj->get_userid() <> $USER->id) {
     /// If showuserpicture is true, the picture is shown elsewhere, so don't repeat it.
         $student = $DB->get_record('user', array('id' => $attemptobj->get_userid()));
-        $picture = $OUTPUT->user_picture(moodle_user_picture::make($student, $attemptobj->get_courseid()));
+        $picture = $OUTPUT->user_picture($student, array('courseid'=>$attemptobj->get_courseid()));
         $rows[] = '<tr><th scope="row" class="cell">' . $picture . '</th><td class="cell"><a href="' .
                 $CFG->wwwroot . '/user/view.php?id=' . $student->id . '&amp;course=' . $attemptobj->get_courseid() . '">' .
                 fullname($student, true) . '</a></td></tr>';
index c1aaf41139d90ca89b6e8ff31e8d45a0035313f7..a3510fd00b345fe0dc8cbd204ea9db7d8647845a 100644 (file)
@@ -83,7 +83,7 @@
     if ($attemptobj->get_userid() <> $USER->id) {
         // Print user picture and name
         $student = $DB->get_record('user', array('id' => $attemptobj->get_userid()));
-        $picture = $OUTPUT->user_picture(moodle_user_picture::make($student, $attemptobj->get_courseid()));
+        $picture = $OUTPUT->user_picture($student, array('courseid'=>$attemptobj->get_courseid()));
         $rows[] = '<tr><th scope="row" class="cell">' . $picture . '</th><td class="cell"><a href="' .
                 $CFG->wwwroot . '/user/view.php?id=' . $student->id . '&amp;course=' . $attemptobj->get_courseid() . '">' .
                 fullname($student, true) . '</a></td></tr>';
index 9c5ca6ee6d3ae988c2318acdf40b16aabd98cfc3..f07e02a83d9ec7173792af9838b0af56707377d3 100755 (executable)
                         if (has_capability('mod/scorm:deleteresponses',$contextmodule)) {
                             $row[] = '<input type="checkbox" name="attemptid[]" value="'. $scouser->userid . ':' . $a . '" />';
                         }
-                        $userpic = moodle_user_picture::make($scouser->userid, $course->id);
-                        $userpic->image->src = $userdata->picture;
-                        $row[] = $OUTPUT->user_picture($userpic);
+                        //TODO: fetch the user details elsewhere - this is a performance problem!!
+                        $user = (object)array('id'=>$scouser->id);
+                        $row[] = $OUTPUT->user_picture($user, array('courseid'=>$course->id));
                         $row[] = '<a href="'.$CFG->wwwroot.'/user/view.php?id='.$scouser->userid.'&amp;course='.$course->id.'">'.
                                  fullname($userdata).'</a>';
                         $row[] = '<a href="report.php?a='.$scorm->id.'&amp;user='.$scouser->userid.'&amp;attempt='.$a.'">'.$a.'</a>';
                     if (!empty($userdata)) {
                         echo $OUTPUT->box_start('generalbox boxaligncenter');
                         echo '<div class="mdl-align">'."\n";
-                        $userpic = moodle_user_picture::make($user, $course->id);
-                        $userpic->image->src = $userdata->picture;
-                        echo $OUTPUT->user_picture($userpic);
+                        echo $OUTPUT->user_picture($user, array('courseid'=>$course->id));
                         echo "<a href=\"$CFG->wwwroot/user/view.php?id=$user&amp;course=$course->id\">".
                              "$userdata->firstname $userdata->lastname</a><br />";
                         echo get_string('attempt','scorm').': '.$attempt;
             //print_heading(format_string($sco->title));
             echo $OUTPUT->heading('<a href="'.$CFG->wwwroot.'/mod/scorm/player.php?a='.$scorm->id.'&amp;mode=browse&amp;scoid='.$sco->id.'" target="_new">'.format_string($sco->title).'</a>');
             echo '<div class="mdl-align">'."\n";
-            $userpic = moodle_user_picture::make($user, $course->id);
-            $userpic->image->src = $userdata->picture;
-            echo $OUTPUT->user_picture($userpic);
+            echo $OUTPUT->user_picture($user, array('courseid'=>$course->id));
             echo "<a href=\"$CFG->wwwroot/user/view.php?id=$user&amp;course=$course->id\">".
                  "$userdata->firstname $userdata->lastname</a><br />";
             $scoreview = '';
index 53236a1d25cb0081406c0b8d79b74097e76e5c27..def5a2d9af4fd1a44521bf04a52b1af95aa63408 100644 (file)
@@ -470,7 +470,7 @@ function survey_print_all_responses($cmid, $results, $courseid) {
     $table->size = array (35, "", "" );
 
     foreach ($results as $a) {
-        $table->data[] = array($OUTPUT->user_picture(moodle_user_picture::make($a, $courseid)),
+        $table->data[] = array($OUTPUT->user_picture($a, array('courseid'=>$courseid)),
                $OUTPUT->link("report.php?action=student&student=$a->id&id=$cmid", fullname($a)),
                userdate($a->time));
     }
index c7b300f0df0174d88a9583de89a10fccb38598b9..0347fc592e692092c96f3208b0b9415a573dd88a 100644 (file)
                 } else {
                     $answer2 = "&nbsp;";
                 }
-                $userpic = moodle_user_picture::make($a, $course->id);
-                $userpic->link = true;
                 $table->data[] = array(
-                       $OUTPUT->user_picture($userpic),
+                       $OUTPUT->user_picture($a, array('courseid'=>$course->id)),
                        "<a href=\"report.php?id=$id&amp;action=student&amp;student=$a->userid\">".fullname($a)."</a>",
                        userdate($a->time),
                        $answer1, $answer2);
          }
 
          echo "<p <p class=\"centerpara\">";
-         echo $OUTPUT->user_picture(moodle_user_picture::make($user->id, $course->id));
+         echo $OUTPUT->user_picture($user, array('courseid'=>$course->id));
          echo "</p>";
 
          $questions = $DB->get_records_list("survey_questions", "id", explode(',', $survey->questions));
index dffb256bfb094121360f02b378b9e1e1864a6f7e..e3e23a9d88be0b6ce1f9f7b6597eeb5905ab933d 100644 (file)
@@ -1281,9 +1281,7 @@ function ewiki_page_info($id, &$data, $action) {
                  if (!isset($COURSE->id)) {
                      $COURSE->id = SITEID;
                  }
-                 $userpic = moodle_user_picture::make($user->id, $COURSE->id);
-                 $userpic->link = true;
-                 $picture = $OUTPUT->user_picture($userpic);
+                 $picture = $OUTPUT->user_picture($user);
                  $value = $picture . $OUTPUT->link("$CFG->wwwroot/user/view.php?id=$user->id&course=$COURSE->id", fullname($user));
              } else {
                  continue;
index edd5a7dc8d2b3606e7e6112b9699558ec94e97c7..63e35e76a8d6ee66ea12ca729e4d3b0a55988fef 100644 (file)
@@ -348,9 +348,7 @@ function ewiki_entry_downloads($row, $show_section=0, $fullinfo=false) {
             if (!isset($course->id)) {
                 $course->id = 1;
             }
-            $userpic = moodle_user_picture::make($user->id, $course->id);
-            $userpic->link = true;
-            $picture = $OUTPUT->user_picture($userpic);
+            $picture = $OUTPUT->user_picture($user, array('courseid'=>$course->id));
             $value = $picture . $OUTPUT->link("$CFG->wwwroot/user/view.php?id=$user->id&course=$course->id", fullname($user));
         }
 
index d139d5c4697b5d4dca0efcb1f676eee7cf77c015..f5a97841ec448e6bedcd0683449973f374e662ba 100644 (file)
@@ -189,7 +189,7 @@ function note_print($note, $detail = NOTES_SHOW_FULL) {
     if ($detail & NOTES_SHOW_HEAD) {
         echo '<div class="header">';
         echo '<div class="user">';
-        echo $OUTPUT->user_picture(moodle_user_picture::make($user, $note->courseid));
+        echo $OUTPUT->user_picture($user, array('courseid'=>$note->courseid));
         echo fullname($user) . '</div>';
         echo '<div class="info">' .
             get_string('bynameondate', 'notes', $authoring) .
index 2839ea75f5bd2b01bbd1966d76c33358751f1fc4..e519b9731dba4378992240c0f4c9e82a8c7abd95 100644 (file)
             foreach ($hits as $listing) {
 
                 if ($listing->doctype == 'user'){ // A special handle for users
-                    $icon = $OUTPUT->user_picture(moodle_user_picture($listing->userid, 0));
+                    //TODO: this is a performance problem, fetch data elsewhere
+                    $user = (object)array('id'=>$listing->userid);
+                    $icon = $OUTPUT->user_picture($user);
                 } else {
                     $iconpath = $OUTPUT->pix_url('icon', $listing->doctype);
                     $icon = "<img align=\"top\" src=\"".$iconpath."\" class=\"activityicon\" alt=\"\"/>";
index 338743cd5239340b51d6deb43a25cc5b7a801344..00358332a39ad6672acd1730d20de0064f8b4615 100644 (file)
@@ -79,9 +79,7 @@ class user_edit_form extends moodleform {
             if (!empty($CFG->gdversion)) {
                 $image_el =& $mform->getElement('currentpicture');
                 if ($user and $user->picture) {
-                    $userpic = moodle_user_picture::make($user, SITEID);
-                    $userpic->size = 64;
-                    $image_el->setValue($OUTPUT->user_picture($userpic));
+                    $image_el->setValue($OUTPUT->user_picture($user, array('courseid'=>SITEID, 'size'=>64)));
                 } else {
                     $image_el->setValue(get_string('none'));
                 }
index 5828d6678a0934c76a3973efdbe0517f62d5a694..c6e7ae4e8c722948eee10cb087dac2a088af4df0 100644 (file)
@@ -104,9 +104,7 @@ class user_editadvanced_form extends moodleform {
         if (!empty($CFG->gdversion)) {
             $image_el =& $mform->getElement('currentpicture');
             if ($user and $user->picture) {
-                $userpic = moodle_user_picture::make($user, SITEID);
-                $userpic->alttext = true;
-                $image_el->setValue($OUTPUT->user_picture($userpic));
+                $image_el->setValue($OUTPUT->user_picture($user, array('courseid'=>SITEID)));
             } else {
                 $image_el->setValue(get_string('none'));
             }
index aa2eb6e81213a8530f99dfe959bcaba9c97cfecd..e9f5a5557adc2476c2da5222b58164c6d6a2f157 100644 (file)
                     $row->cells[0] = new html_table_cell();
                     $row->cells[0]->add_class('left side');
 
-                    $row->cells[0]->text = $OUTPUT->user_picture(moodle_user_picture::make($user, $course->id));
+                    $row->cells[0]->text = $OUTPUT->user_picture($user, array('courseid'=>$course->id));
                     $row->cells[1] = new html_table_cell();
                     $row->cells[1]->add_class('content');
 
                     $profilelink = '<strong>'.fullname($user).'</strong>';
                 }
 
-                $userpic = moodle_user_picture::make($user, $course->id);
-                $userpic->link = $piclink;
-                $data = array ($OUTPUT->user_picture($userpic), $profilelink . $hidden);
+                $data = array ($OUTPUT->user_picture($user, array('courseid'=>$course->id)), $profilelink . $hidden);
 
                 if ($mode === MODE_BRIEF && !isset($hiddenfields['city'])) {
                     $data[] = $user->city;
index 5f2ddddc73e07979de078a595b1d85f6ee8a4f76..5866920d08143f18ba0d2179c33f0b243dfa39ba 100644 (file)
@@ -235,9 +235,7 @@ if (is_mnet_remote_user($user)) {
 echo '<table width="80%" class="userinfobox" summary="">';
 echo '<tr>';
 echo '<td class="side">';
-$userpic = moodle_user_picture::make($user, $course->id);
-$userpic->size = 100;
-echo $OUTPUT->user_picture($userpic);
+echo $OUTPUT->user_picture($user, array('courseid'=>$course->id, 'size'=>100));
 echo '</td><td class="content">';
 
 // Print the description