*/
public function blocks_for_region($region) {
$blockcontents = $this->page->blocks->get_content_for_region($region, $this);
-
+
$output = '';
foreach ($blockcontents as $bc) {
if ($bc instanceof block_contents) {
$output = $this->image($userpic->image);
- if (!empty($userpic->link) && !empty($userpic->url)) {
+ if (!empty($userpic->url)) {
$actions = $userpic->get_actions();
- if (!empty($actions)) {
+ if ($userpic->popup && !empty($actions)) {
$link = new html_link();
$link->url = $userpic->url;
$link->text = fullname($userpic->user);
- $link->add_action($actions[0]);
- $output = $this->link_to_popup($link);
+ $link->title = fullname($userpic->user);
+
+ 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);
}
* @var boolean $alttext add non-blank alt-text to the image. (Default true, set to false for purely
*/
public $alttext = true;
+ /**
+ * @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
$this->user = $DB->get_record('user', array('id' => $this->user), 'id,firstname,lastname,imagealt');
}
- if (!empty($this->link) && empty($this->url)) {
+ if ($this->url === true) {
$this->url = new moodle_url('/user/view.php', array('id' => $this->user->id, 'course' => $this->courseid));
}
+ if (!empty($this->url) && $this->popup) {
+ $this->add_action(new popup_action('click', $this->url));
+ }
+
if (empty($this->size)) {
$file = 'f2';
$this->size = 35;
$this->assert(new ContainsTagWithContents('option', 'value3'), $html);
$this->assert(new ContainsTagWithContents('option', 'value4'), $html);
}
+
+ public function test_userpicture() {
+ global $CFG;
+ // Set up the user with the required fields
+ $user = new stdClass();
+ $user->firstname = 'Test';
+ $user->lastname = 'User';
+ $user->picture = false;
+ $user->imagealt = false;
+ $user->id = 1;
+ $userpic = new user_picture();
+ $userpic->user = $user;
+ $userpic->courseid = 1;
+ $userpic->url = true;
+ // Setting popup to true adds JS for the link to open in a popup
+ $userpic->popup = true;
+ $html = $this->renderer->user_picture($userpic);
+ $this->assert(new ContainsTagWithAttributes('a', array('title' => 'Test User', 'href' => $CFG->wwwroot.'/user/view.php?id=1&course=1')), $html);
+ }
}