From 812dbaf7d53cb24ffaa217667b0545b57ca08a9e Mon Sep 17 00:00:00 2001 From: Petr Skoda Date: Sun, 27 Dec 2009 19:47:21 +0000 Subject: [PATCH] MDL-21198 improved/simplified $OUTPUT->user_picture() + regression fixes, performance fixes and detected performance problems when printing user avatars --- blocks/messages/block_messages.php | 2 +- blocks/online_users/block_online_users.php | 6 +- blog/locallib.php | 2 +- grade/report/grader/ajaxlib.php | 2 +- grade/report/grader/lib.php | 2 +- lib/commentlib.php | 10 +- lib/deprecatedlib.php | 25 ++-- lib/outputcomponents.php | 126 +++++++----------- lib/outputrenderers.php | 77 ++++++----- lib/simpletest/testoutputlib.php | 2 +- message/discussion.php | 5 +- message/history.php | 10 +- message/lib.php | 17 +-- message/user.php | 5 +- mod/assignment/lib.php | 10 +- .../type/upload/assignment.class.php | 2 +- mod/chat/chatd.php | 2 +- mod/chat/gui_basic/index.php | 4 +- mod/chat/gui_header_js/users.php | 2 +- mod/chat/lib.php | 13 +- mod/chat/report.php | 2 +- mod/chat/view.php | 2 +- mod/choice/lib.php | 4 +- mod/data/report.php | 4 +- mod/feedback/lib.php | 2 +- mod/feedback/show_entries.php | 2 +- mod/forum/lib.php | 8 +- mod/forum/renderer.php | 2 +- mod/forum/report.php | 2 +- .../formats/TEMPLATE/TEMPLATE_format.php | 2 +- .../encyclopedia/encyclopedia_format.php | 2 +- .../fullwithauthor/fullwithauthor_format.php | 2 +- mod/glossary/report.php | 4 +- mod/glossary/view.php | 2 +- mod/hotpot/lib.php | 2 +- mod/hotpot/report/overview/report.php | 5 +- mod/hotpot/report/simplestat/report.php | 2 +- mod/lesson/essay.php | 2 +- mod/lesson/report.php | 2 +- mod/quiz/attemptlib.php | 2 +- mod/quiz/lib.php | 2 +- mod/quiz/report/grading/report.php | 4 +- mod/quiz/report/overview/overview_table.php | 2 +- mod/quiz/report/responses/responses_table.php | 2 +- mod/quiz/review.php | 2 +- mod/quiz/reviewquestion.php | 2 +- mod/scorm/report.php | 14 +- mod/survey/lib.php | 2 +- mod/survey/report.php | 6 +- mod/wiki/ewiki/ewiki.php | 4 +- mod/wiki/ewiki/plugins/moodle/downloads.php | 4 +- notes/lib.php | 2 +- search/query.php | 4 +- user/edit_form.php | 4 +- user/editadvanced_form.php | 4 +- user/index.php | 6 +- user/view.php | 4 +- 57 files changed, 183 insertions(+), 264 deletions(-) diff --git a/blocks/messages/block_messages.php b/blocks/messages/block_messages.php index 512a5dd8f4..927585497d 100644 --- a/blocks/messages/block_messages.php +++ b/blocks/messages/block_messages.php @@ -45,7 +45,7 @@ class block_messages extends block_base { foreach ($users as $user) { $timeago = format_time(time() - $user->lastaccess); $this->content->text .= '
  • '; $this->content->text .= '
     '.$user->count.''; $this->content->text .= '
  • '; diff --git a/blocks/online_users/block_online_users.php b/blocks/online_users/block_online_users.php index cc0b245e56..8a2243e472 100644 --- a/blocks/online_users/block_online_users.php +++ b/blocks/online_users/block_online_users.php @@ -140,16 +140,14 @@ class block_online_users extends block_base { foreach ($users as $user) { $this->content->text .= '
  • '; $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 .= '
    '.$OUTPUT->user_picture($userpic); + $this->content->text .= '
    '.$OUTPUT->user_picture($user, array('size'=>16)); $this->content->text .= get_string('guestuser').'
    '; } else { $this->content->text .= '
    '; - $this->content->text .= '
    '.$OUTPUT->user_picture($userpic); + $this->content->text .= ''; } if ($canshowicon and ($USER->id != $user->id) and $user->username != 'guest') { // Only when logged in and messaging active etc diff --git a/blog/locallib.php b/blog/locallib.php index 565ea9c061..cc5384da20 100644 --- a/blog/locallib.php +++ b/blog/locallib.php @@ -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; diff --git a/grade/report/grader/ajaxlib.php b/grade/report/grader/ajaxlib.php index e9c9b97fea..6f19b73d42 100644 --- a/grade/report/grader/ajaxlib.php +++ b/grade/report/grader/ajaxlib.php @@ -183,7 +183,7 @@ class grade_report_grader_ajax extends grade_report_grader { // Student name and link $user_pic = null; if ($showuserimage) { - $user_pic = '
    ' . $OUTPUT->user_picture(moodle_user_picture::make($user, $this->courseid)) . '
    '; + $user_pic = '
    ' . $OUTPUT->user_picture($user) . '
    '; } $studentrowhtml .= '' diff --git a/grade/report/grader/lib.php b/grade/report/grader/lib.php index 9220246f92..fd9bf018e6 100644 --- a/grade/report/grader/lib.php +++ b/grade/report/grader/lib.php @@ -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))); diff --git a/lib/commentlib.php b/lib/commentlib.php index 47c5a8c70b..f439ef6b5a 100644 --- a/lib/commentlib.php +++ b/lib/commentlib.php @@ -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'); diff --git a/lib/deprecatedlib.php b/lib/deprecatedlib.php index 3a4d47b751..77b18be65a 100644 --- a/lib/deprecatedlib.php +++ b/lib/deprecatedlib.php @@ -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; diff --git a/lib/outputcomponents.php b/lib/outputcomponents.php index 2b246d92da..dcdffabfef 100644 --- a/lib/outputcomponents.php +++ b/lib/outputcomponents.php @@ -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; - } } diff --git a/lib/outputrenderers.php b/lib/outputrenderers.php index 7a3f0967e3..1371364dce 100644 --- a/lib/outputrenderers.php +++ b/lib/outputrenderers.php @@ -1177,58 +1177,61 @@ class core_renderer extends renderer_base { * * This method can be used in two ways: *
    -     * // 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);
          * 
    * - * @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; diff --git a/lib/simpletest/testoutputlib.php b/lib/simpletest/testoutputlib.php index 725ce5169d..9247dc26b6 100644 --- a/lib/simpletest/testoutputlib.php +++ b/lib/simpletest/testoutputlib.php @@ -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; diff --git a/message/discussion.php b/message/discussion.php index 49ebfc3b5f..c285ef4797 100644 --- a/message/discussion.php +++ b/message/discussion.php @@ -166,10 +166,7 @@ echo '
    '; echo '
    '; - $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 '

    '.$userfullname.'

    '; echo '
      '; if ($contact = $DB->get_record('message_contacts', array('userid'=>$USER->id, 'contactid'=>$user->id))) { diff --git a/message/history.php b/message/history.php index 5e13508cb0..79abfaacc6 100644 --- a/message/history.php +++ b/message/history.php @@ -81,10 +81,7 @@ echo $OUTPUT->header(); echo $OUTPUT->box_start('center'); echo ''; echo ''; echo ''; echo ''; echo '
      '; -$userpic = moodle_user_picture::make($user1, SITEID); -$userpic->size = 100; -$userpic->link = true; -echo $OUTPUT->user_picture($userpic).'
      '; +echo $OUTPUT->user_picture($user1, array('size'=>100, 'courseid'=>SITEID)).'
      '; echo fullname($user1); echo '
      '; @@ -92,10 +89,7 @@ echo ''.get_string('from').''; echo ''; -$userpic = moodle_user_picture::make($user2, SITEID); -$userpic->size = 100; -$userpic->link = true; -echo $OUTPUT->user_picture($userpic).'
      '; +echo $OUTPUT->user_picture($user2, array('size'=>100, 'courseid'=>SITEID)).'
      '; echo fullname($user2); echo '
      '; diff --git a/message/lib.php b/message/lib.php index 9ab1f2ad99..779e0566da 100644 --- a/message/lib.php +++ b/message/lib.php @@ -354,10 +354,7 @@ function message_print_search_results($frm) { $strhistory = message_history_link($user->id, 0, true, '', '', 'icon'); echo ''; - $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 ''; echo ''; $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 ' '; 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 ''; - $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 ''; echo ''; diff --git a/message/user.php b/message/user.php index 8fc8048bac..22c9525166 100644 --- a/message/user.php +++ b/message/user.php @@ -90,10 +90,7 @@ $PAGE->set_pagelayout('popup'); echo $OUTPUT->header(); echo ''; echo ''; +echo $OUTPUT->user_picture($user, array('size'=>48, 'courseid'=>SITEID)) .''; echo ''; echo ''; echo ''; echo ''; echo ''; echo '
      '; -$userpic = moodle_user_picture::make($user, SITEID); -$userpic->size = 48; -$userpic->link = true; -echo $OUTPUT->user_picture($userpic) .''; echo '
      '.fullname($user).'
      '; diff --git a/mod/assignment/lib.php b/mod/assignment/lib.php index a3eaf7ddc7..4d53c21847 100644 --- a/mod/assignment/lib.php +++ b/mod/assignment/lib.php @@ -299,7 +299,7 @@ class assignment_base { echo '
      '; if ($teacher) { - echo $OUTPUT->user_picture(moodle_user_picture::make($teacher, $this->course->id)); + echo $OUTPUT->user_picture($teacher); } echo ''; @@ -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 ''; echo '
      '; @@ -1040,7 +1040,7 @@ class assignment_base { ///End of teacher info row, Start of student info row echo '
      '; - echo $OUTPUT->user_picture(moodle_user_picture::make($user, $this->course->id)); + echo $OUTPUT->user_picture($user); echo ''; echo '
      '; @@ -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 ''; echo "'; echo ''; echo '"; echo "'; } echo ''; echo ''; echo ''; diff --git a/mod/feedback/lib.php b/mod/feedback/lib.php index 46c355b688..0a52800a77 100644 --- a/mod/feedback/lib.php +++ b/mod/feedback/lib.php @@ -323,7 +323,7 @@ function feedback_print_recent_mod_activity($activity, $courseid, $detail, $modn echo '
      "; - echo $OUTPUT->user_picture(moodle_user_picture::make($activity->user, $courseid)); + echo $OUTPUT->user_picture($activity->user); echo ""; if ($detail) { diff --git a/mod/assignment/type/upload/assignment.class.php b/mod/assignment/type/upload/assignment.class.php index 1a4b63f650..7bbf5c8ef1 100644 --- a/mod/assignment/type/upload/assignment.class.php +++ b/mod/assignment/type/upload/assignment.class.php @@ -116,7 +116,7 @@ class assignment_upload extends assignment_base { echo '
      '; - echo $OUTPUT->user_picture(moodle_user_picture::make($teacher, $this->course->id)); + echo $OUTPUT->user_picture($teacher); echo ''; echo '
      '; diff --git a/mod/chat/chatd.php b/mod/chat/chatd.php index d6fc4f53d7..d307912a19 100755 --- a/mod/chat/chatd.php +++ b/mod/chat/chatd.php @@ -281,7 +281,7 @@ EOD; $popuppar = '\'/user/view.php?id='.$userinfo['user']->id.'&course='.$userinfo['courseid'].'\',\'user'.$userinfo['chatuser']->id.'\',\'\''; echo '
      '; echo ''; - echo $OUTPUT->user_picture(moodle_user_picture::make($userinfo['user'], 0)); + echo $OUTPUT->user_picture($userinfo['user'], array('courseid'=>$userinfo['courseid'])); echo ""; echo "

      "; echo fullname($userinfo['user'])."
      "; diff --git a/mod/chat/gui_basic/index.php b/mod/chat/gui_basic/index.php index 62a54021f8..1f90c22249 100644 --- a/mod/chat/gui_basic/index.php +++ b/mod/chat/gui_basic/index.php @@ -120,9 +120,7 @@ echo '

      '.get_string('participants').'

      '; echo '
        '; foreach($chatusers as $chu) { echo '
      • '; - $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 '
        '; echo fullname($chu).' '; if ($idle = time() - $chu->lastmessageping) { diff --git a/mod/chat/gui_header_js/users.php b/mod/chat/gui_header_js/users.php index fcb32502f8..8f980a54df 100644 --- a/mod/chat/gui_header_js/users.php +++ b/mod/chat/gui_header_js/users.php @@ -91,7 +91,7 @@ foreach ($chatusers as $chatuser) { $idle = $min.':'.$sec; echo '
      '; echo "id&course=$courseid','user$chatuser->id','');\" href=\"$CFG->wwwroot/user/view.php?id=$chatuser->id&course=$courseid\">"; - echo $OUTPUT->user_picture(moodle_user_picture::make($chatuser, $courseid)); + echo $OUTPUT->user_picture($chatuser, array('courseid'=>$courseid)); echo ''; echo '

      '; echo fullname($chatuser).'
      '; diff --git a/mod/chat/lib.php b/mod/chat/lib.php index b19b74c2b2..a3f786dc54 100644 --- a/mod/chat/lib.php +++ b/mod/chat/lib.php @@ -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 = "wwwroot/user/view.php?id=$sender->id&course=$courseid')\" href=\"$CFG->wwwroot/user/view.php?id=$sender->id&course=$courseid\">$message->picture"; @@ -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 = "wwwroot/user/view.php?id=$sender->id&course=$courseid\">$message->picture"; @@ -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.'&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; } diff --git a/mod/chat/report.php b/mod/chat/report.php index 0462f26c4d..6bfba5e779 100644 --- a/mod/chat/report.php +++ b/mod/chat/report.php @@ -212,7 +212,7 @@ 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 ' '.fullname($user, true); // XXX TODO use capability instead of true echo " ($usermessagecount)
      "; } diff --git a/mod/chat/view.php b/mod/chat/view.php index 7ee891e1a0..772991abce 100644 --- a/mod/chat/view.php +++ b/mod/chat/view.php @@ -178,7 +178,7 @@ $lastping = $timenow - $chatuser->lastmessageping; echo '

      '; echo "wwwroot/user/view.php?id=$chatuser->id&course=$chat->course\">"; - echo $OUTPUT->user_picture(moodle_user_picture::make($chatuser, $COURSE->id)); + echo $OUTPUT->user_picture($chatuser); echo ''; echo '

      '; echo fullname($chatuser).'
      '; diff --git a/mod/choice/lib.php b/mod/choice/lib.php index e3bf7ed478..4fb5888737 100644 --- a/mod/choice/lib.php +++ b/mod/choice/lib.php @@ -477,7 +477,7 @@ function choice_show_results($choice, $course, $cm, $allresponses, $forcepublish foreach ($allresponses[0] as $user) { echo "

      "; - echo $OUTPUT->user_picture(moodle_user_picture::make($user->id, $course->id)); + echo $OUTPUT->user_picture($user, array('courseid'=>$course->id)); echo ""; echo "wwwroot/user/view.php?id=$user->id&course=$course->id\">"; echo fullname($user, $hascapfullnames); @@ -503,7 +503,7 @@ function choice_show_results($choice, $course, $cm, $allresponses, $forcepublish echo ''; } echo ''; - echo $OUTPUT->user_picture(moodle_user_picture::make($user->id, $course->id)); + echo $OUTPUT->user_picture($user, array('courseid'=>$course->id)); echo ''; echo "wwwroot/user/view.php?id=$user->id&course=$course->id\">"; echo fullname($user, $hascapfullnames); diff --git a/mod/data/report.php b/mod/data/report.php index ccdcfd7692..025dd366de 100755 --- a/mod/data/report.php +++ b/mod/data/report.php @@ -73,9 +73,7 @@ if (!$ratings = data_get_ratings($record->id, $sqlsort)) { echo '
      '; - $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 '' . $OUTPUT->link($CFG->wwwroot.'/user/view.php?id='.$rating->id.'&course='.$data->course, fullname($rating)) . ''.$scalemenu[$rating->rating].'
      '; echo "
      "; - echo $OUTPUT->user_picture(moodle_user_picture::make($activity->user, $courseid)); + echo $OUTPUT->user_picture($activity->user, array('courseid'=>$courseid)); echo ""; if ($detail) { diff --git a/mod/feedback/show_entries.php b/mod/feedback/show_entries.php index 75547aa7d5..8b0bac6dc3 100644 --- a/mod/feedback/show_entries.php +++ b/mod/feedback/show_entries.php @@ -145,7 +145,7 @@ if($do_show == 'showentries'){
      - user_picture(moodle_user_picture::make($student, $course->id));?> + user_picture($student, array('courseid'=>$course->id));?> diff --git a/mod/forum/lib.php b/mod/forum/lib.php index 6b2106e433..da9601f69b 100644 --- a/mod/forum/lib.php +++ b/mod/forum/lib.php @@ -3141,7 +3141,7 @@ function forum_make_mail_post($course, $cm, $forum, $discussion, $post, $userfro $output = ''; $output .= ''; if ($post->parent) { @@ -3359,7 +3359,7 @@ function forum_print_post($post, $discussion, $forum, &$cm, $course, $ownpost=fa $postuser->picture = $post->picture; echo ''; if ($post->parent) { @@ -3668,7 +3668,7 @@ function forum_print_discussion_header(&$post, $forum, $group=-1, $datestring="" $postuser->picture = $post->picture; echo '\n"; // User name @@ -6193,7 +6193,7 @@ function forum_print_recent_mod_activity($activity, $courseid, $detail, $modname echo '
      '; - $output .= $OUTPUT->user_picture(moodle_user_picture::make($userfrom, $course->id)); + $output .= $OUTPUT->user_picture($userfrom, array('courseid'=>$course->id)); $output .= '
      '; - echo $OUTPUT->user_picture(moodle_user_picture::make($postuser, $course->id)); + echo $OUTPUT->user_picture($postuser, array('courseid'=>$course->id)); echo ''; - echo $OUTPUT->user_picture(moodle_user_picture::make($postuser, $forum->course)); + echo $OUTPUT->user_picture($postuser, array('courseid'=>$forum->course)); echo "
      '; echo "'; echo "'; echo '"; echo '"; diff --git a/mod/glossary/formats/TEMPLATE/TEMPLATE_format.php b/mod/glossary/formats/TEMPLATE/TEMPLATE_format.php index b223ed32ab..22f27dfa4a 100755 --- a/mod/glossary/formats/TEMPLATE/TEMPLATE_format.php +++ b/mod/glossary/formats/TEMPLATE/TEMPLATE_format.php @@ -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 '
      '; diff --git a/mod/glossary/formats/encyclopedia/encyclopedia_format.php b/mod/glossary/formats/encyclopedia/encyclopedia_format.php index cdf626fc2d..52248483c4 100644 --- a/mod/glossary/formats/encyclopedia/encyclopedia_format.php +++ b/mod/glossary/formats/encyclopedia/encyclopedia_format.php @@ -13,7 +13,7 @@ function glossary_show_entry_encyclopedia($course, $cm, $glossary, $entry, $mode echo ''; echo ''; echo ''; echo ''; echo ''; } echo ''; echo ''; echo ''; diff --git a/mod/glossary/view.php b/mod/glossary/view.php index ca056867f3..390684731a 100644 --- a/mod/glossary/view.php +++ b/mod/glossary/view.php @@ -446,7 +446,7 @@ if ($allentries) { echo '
      "; - echo $OUTPUT->user_picture(moodle_user_picture::make($activity->user, $courseid)); + echo $OUTPUT->user_picture($activity->user, array('courseid'=>$courseid)); echo ""; echo '
      '; diff --git a/mod/forum/renderer.php b/mod/forum/renderer.php index 9ba05285eb..54d74c4c03 100644 --- a/mod/forum/renderer.php +++ b/mod/forum/renderer.php @@ -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); } diff --git a/mod/forum/report.php b/mod/forum/report.php index 289725e140..d5a9d0664a 100644 --- a/mod/forum/report.php +++ b/mod/forum/report.php @@ -99,7 +99,7 @@ if (!$ratings = forum_get_ratings($post->id, $sqlsort)) { foreach ($ratings as $rating) { echo '
      "; - echo $OUTPUT->user_picture(moodle_user_picture::make($rating, $forum->course)); + echo $OUTPUT->user_picture($rating, array('courseid'=>$forum->course)); echo ''.fullname($rating).''.$scalemenu[$rating->rating]."'.userdate($rating->time)."
      '; - echo $OUTPUT->user_picture(moodle_user_picture::make($user, $course->id)); + echo $OUTPUT->user_picture($user, array('courseid'=>$course->id)); echo ''; diff --git a/mod/glossary/formats/fullwithauthor/fullwithauthor_format.php b/mod/glossary/formats/fullwithauthor/fullwithauthor_format.php index b8c249b905..68ba3ae93b 100644 --- a/mod/glossary/formats/fullwithauthor/fullwithauthor_format.php +++ b/mod/glossary/formats/fullwithauthor/fullwithauthor_format.php @@ -13,7 +13,7 @@ function glossary_show_entry_fullwithauthor($course, $cm, $glossary, $entry, $mo echo '
      '; - echo $OUTPUT->user_picture(moodle_user_picture::make($user, $course->id)); + echo $OUTPUT->user_picture($user, array('courseid'=>$course->id)); echo ''; diff --git a/mod/glossary/report.php b/mod/glossary/report.php index 7f1f6dc8fe..7685658598 100644 --- a/mod/glossary/report.php +++ b/mod/glossary/report.php @@ -75,9 +75,7 @@ if (!$ratings = glossary_get_ratings($entry->id, $sqlsort)) { echo '
      '; - $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 ''.fullname($rating).''.$scalemenu[$rating->rating].''; $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 ''; diff --git a/mod/hotpot/lib.php b/mod/hotpot/lib.php index 9094548743..4d9678ff88 100644 --- a/mod/hotpot/lib.php +++ b/mod/hotpot/lib.php @@ -1258,7 +1258,7 @@ function hotpot_print_recent_mod_activity($activity, $course, $detail=false) { print ''; print ''; - echo $OUTPUT->user_picture(moodle_user_picture::make($activity->user, $course)); + echo $OUTPUT->user_picture($activity->user, array('courseid'=>$course)); print '
      '; if ($detail) { diff --git a/mod/hotpot/report/overview/report.php b/mod/hotpot/report/overview/report.php index f69c73072a..310aacab29 100644 --- a/mod/hotpot/report/overview/report.php +++ b/mod/hotpot/report/overview/report.php @@ -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 = ''.$name.''; } $grade = isset($user->grade) && $user->grade<>' ' ? $user->grade : $spacer; diff --git a/mod/hotpot/report/simplestat/report.php b/mod/hotpot/report/simplestat/report.php index d5a64b1298..a64713b549 100644 --- a/mod/hotpot/report/simplestat/report.php +++ b/mod/hotpot/report/simplestat/report.php @@ -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)) { diff --git a/mod/lesson/essay.php b/mod/lesson/essay.php index d8eb0ee7b6..7ba0271fbd 100644 --- a/mod/lesson/essay.php +++ b/mod/lesson/essay.php @@ -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("
      ", $essaylinks), $emaillink); + $table->data[] = array($OUTPUT->user_picture($users[$userid], array('courseid'=>$course->id)).$studentname, implode("
      ", $essaylinks), $emaillink); } // email link for all users diff --git a/mod/lesson/report.php b/mod/lesson/report.php index 22fc5b1a02..82aed70f84 100644 --- a/mod/lesson/report.php +++ b/mod/lesson/report.php @@ -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); diff --git a/mod/quiz/attemptlib.php b/mod/quiz/attemptlib.php index 00209a2440..a69f8db102 100644 --- a/mod/quiz/attemptlib.php +++ b/mod/quiz/attemptlib.php @@ -1062,7 +1062,7 @@ abstract class quiz_nav_panel_base { $user = $DB->get_record('user', array('id' => $this->attemptobj->get_userid())); $output = ''; $output .= '
      '; - $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 .= '
      '; return $output; diff --git a/mod/quiz/lib.php b/mod/quiz/lib.php index 74453ef4be..24b5369780 100644 --- a/mod/quiz/lib.php +++ b/mod/quiz/lib.php @@ -839,7 +839,7 @@ function quiz_print_recent_mod_activity($activity, $courseid, $detail, $modnames echo ''; echo "'; diff --git a/mod/quiz/reviewquestion.php b/mod/quiz/reviewquestion.php index c1aaf41139..a3510fd00b 100644 --- a/mod/quiz/reviewquestion.php +++ b/mod/quiz/reviewquestion.php @@ -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[] = ''; diff --git a/mod/scorm/report.php b/mod/scorm/report.php index 9c5ca6ee6d..f07e02a83d 100755 --- a/mod/scorm/report.php +++ b/mod/scorm/report.php @@ -174,9 +174,9 @@ if (has_capability('mod/scorm:deleteresponses',$contextmodule)) { $row[] = ''; } - $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[] = ''. fullname($userdata).''; $row[] = ''.$a.''; @@ -228,9 +228,7 @@ if (!empty($userdata)) { echo $OUTPUT->box_start('generalbox boxaligncenter'); echo '
      '."\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 "wwwroot/user/view.php?id=$user&course=$course->id\">". "$userdata->firstname $userdata->lastname
      "; echo get_string('attempt','scorm').': '.$attempt; @@ -292,9 +290,7 @@ //print_heading(format_string($sco->title)); echo $OUTPUT->heading(''.format_string($sco->title).''); echo '
      '."\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 "wwwroot/user/view.php?id=$user&course=$course->id\">". "$userdata->firstname $userdata->lastname
      "; $scoreview = ''; diff --git a/mod/survey/lib.php b/mod/survey/lib.php index 53236a1d25..def5a2d9af 100644 --- a/mod/survey/lib.php +++ b/mod/survey/lib.php @@ -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)); } diff --git a/mod/survey/report.php b/mod/survey/report.php index c7b300f0df..0347fc592e 100644 --- a/mod/survey/report.php +++ b/mod/survey/report.php @@ -351,10 +351,8 @@ } else { $answer2 = " "; } - $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)), "userid\">".fullname($a)."", userdate($a->time), $answer1, $answer2); @@ -402,7 +400,7 @@ } echo "

      "; - echo $OUTPUT->user_picture(moodle_user_picture::make($user->id, $course->id)); + echo $OUTPUT->user_picture($user, array('courseid'=>$course->id)); echo "

      "; $questions = $DB->get_records_list("survey_questions", "id", explode(',', $survey->questions)); diff --git a/mod/wiki/ewiki/ewiki.php b/mod/wiki/ewiki/ewiki.php index dffb256bfb..e3e23a9d88 100644 --- a/mod/wiki/ewiki/ewiki.php +++ b/mod/wiki/ewiki/ewiki.php @@ -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; diff --git a/mod/wiki/ewiki/plugins/moodle/downloads.php b/mod/wiki/ewiki/plugins/moodle/downloads.php index edd5a7dc8d..63e35e76a8 100644 --- a/mod/wiki/ewiki/plugins/moodle/downloads.php +++ b/mod/wiki/ewiki/plugins/moodle/downloads.php @@ -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)); } diff --git a/notes/lib.php b/notes/lib.php index d139d5c469..f5a97841ec 100644 --- a/notes/lib.php +++ b/notes/lib.php @@ -189,7 +189,7 @@ function note_print($note, $detail = NOTES_SHOW_FULL) { if ($detail & NOTES_SHOW_HEAD) { echo '
      '; echo '
      '; - echo $OUTPUT->user_picture(moodle_user_picture::make($user, $note->courseid)); + echo $OUTPUT->user_picture($user, array('courseid'=>$note->courseid)); echo fullname($user) . '
      '; echo '
      ' . get_string('bynameondate', 'notes', $authoring) . diff --git a/search/query.php b/search/query.php index 2839ea75f5..e519b9731d 100644 --- a/search/query.php +++ b/search/query.php @@ -343,7 +343,9 @@ 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 = "\"\"/"; diff --git a/user/edit_form.php b/user/edit_form.php index 338743cd52..00358332a3 100644 --- a/user/edit_form.php +++ b/user/edit_form.php @@ -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')); } diff --git a/user/editadvanced_form.php b/user/editadvanced_form.php index 5828d6678a..c6e7ae4e8c 100644 --- a/user/editadvanced_form.php +++ b/user/editadvanced_form.php @@ -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')); } diff --git a/user/index.php b/user/index.php index aa2eb6e812..e9f5a5557a 100644 --- a/user/index.php +++ b/user/index.php @@ -766,7 +766,7 @@ $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'); @@ -913,9 +913,7 @@ $profilelink = ''.fullname($user).''; } - $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; diff --git a/user/view.php b/user/view.php index 5f2ddddc73..5866920d08 100644 --- a/user/view.php +++ b/user/view.php @@ -235,9 +235,7 @@ if (is_mnet_remote_user($user)) { echo '
      "; - echo $OUTPUT->user_picture(moodle_user_picture::make($activity->user, $courseid)); + echo $OUTPUT->user_picture($activity->user, array('courseid'=>$courseid)); echo ""; if ($detail) { diff --git a/mod/quiz/report/grading/report.php b/mod/quiz/report/grading/report.php index 84fab2cba9..1723c3bb59 100644 --- a/mod/quiz/report/grading/report.php +++ b/mod/quiz/report/grading/report.php @@ -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 = "wwwroot/user/view.php?id=$attempt->userid&course=$quiz->course\">". diff --git a/mod/quiz/report/overview/overview_table.php b/mod/quiz/report/overview/overview_table.php index 1bad73b924..db3fe87b19 100644 --- a/mod/quiz/report/overview/overview_table.php +++ b/mod/quiz/report/overview/overview_table.php @@ -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); } diff --git a/mod/quiz/report/responses/responses_table.php b/mod/quiz/report/responses/responses_table.php index 898cad1fbd..310f09601e 100644 --- a/mod/quiz/report/responses/responses_table.php +++ b/mod/quiz/report/responses/responses_table.php @@ -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); } diff --git a/mod/quiz/review.php b/mod/quiz/review.php index 015697d876..a43d60d7b0 100644 --- a/mod/quiz/review.php +++ b/mod/quiz/review.php @@ -148,7 +148,7 @@ 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[] = '
      ' . $picture . '' . fullname($student, true) . '
      ' . $picture . '' . fullname($student, true) . '
      '; echo ''; echo '
      '; -$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 ''; // Print the description -- 2.39.5