From c939a043bfd0e39ccc9dddb7a6c74cd402e669c9 Mon Sep 17 00:00:00 2001 From: Mathew May Date: Tue, 21 May 2019 13:41:46 +0800 Subject: [PATCH] MDL-65658 mod_forum: Group images links and titles groups After a change in Moodle 3.6 some links & titles went missing. Here I am adding them back & incresing the output image to 100x100px --- lang/en/group.php | 1 + mod/forum/classes/local/exporters/author.php | 17 ++++++++-- .../classes/local/exporters/discussion.php | 2 +- mod/forum/classes/local/factories/url.php | 12 +++++++ mod/forum/styles.css | 3 +- mod/forum/templates/discussion_list.mustache | 19 +++++++++--- .../templates/forum_discussion_post.mustache | 31 ++++++++++++++----- 7 files changed, 67 insertions(+), 18 deletions(-) diff --git a/lang/en/group.php b/lang/en/group.php index 9d448ec385d..9f32f85f890 100644 --- a/lang/en/group.php +++ b/lang/en/group.php @@ -196,3 +196,4 @@ $string['toomanygroups'] = 'Insufficient users to populate this number of groups $string['usercount'] = 'User count'; $string['usercounttotal'] = 'User count ({$a})'; $string['usergroupmembership'] = 'Selected user\'s membership:'; +$string['memberofgroup'] = 'Group member of: {$a}'; diff --git a/mod/forum/classes/local/exporters/author.php b/mod/forum/classes/local/exporters/author.php index 7ac48221d2c..7beb5d56564 100644 --- a/mod/forum/classes/local/exporters/author.php +++ b/mod/forum/classes/local/exporters/author.php @@ -140,15 +140,26 @@ class author extends exporter { $author = $this->author; $authorcontextid = $this->authorcontextid; $urlfactory = $this->related['urlfactory']; + $context = $this->related['context']; if ($this->canview) { - $groups = array_map(function($group) { - $imageurl = get_group_picture_url($group, $group->courseid); + $groups = array_map(function($group) use ($urlfactory, $context) { + $imageurl = null; + $groupurl = null; + if (!$group->hidepicture) { + $imageurl = get_group_picture_url($group, $group->courseid, true); + } + if (course_can_view_participants($context)) { + $groupurl = $urlfactory->get_author_group_url($group); + } + return [ 'id' => $group->id, 'name' => $group->name, 'urls' => [ - 'image' => $imageurl ? $imageurl->out(false) : null + 'image' => $imageurl ? $imageurl->out(false) : null, + 'group' => $groupurl ? $groupurl->out(false) : null + ] ]; }, $this->authorgroups); diff --git a/mod/forum/classes/local/exporters/discussion.php b/mod/forum/classes/local/exporters/discussion.php index 16d682a1619..a008de4a73f 100644 --- a/mod/forum/classes/local/exporters/discussion.php +++ b/mod/forum/classes/local/exporters/discussion.php @@ -179,7 +179,7 @@ class discussion extends exporter { ]; if (!$group->hidepicture) { - $url = get_group_picture_url($group, $forum->get_course_id()); + $url = get_group_picture_url($group, $forum->get_course_id(), true); if (!empty($url)) { $groupdata['urls']['picture'] = $url; } diff --git a/mod/forum/classes/local/factories/url.php b/mod/forum/classes/local/factories/url.php index ab0fc75b056..cfb6b4b083f 100644 --- a/mod/forum/classes/local/factories/url.php +++ b/mod/forum/classes/local/factories/url.php @@ -427,6 +427,18 @@ class url { return $userpicture->get_url($PAGE); } + /** + * Get the url to view an author's group. + * + * @param \stdClass $group The group + * @return moodle_url + */ + public function get_author_group_url(\stdClass $group) : moodle_url { + return new moodle_url('/user/index.php', [ + 'id' => $group->courseid, + 'group' => $group->id + ]); + } /** * Get the url to mark a discussion as read. * diff --git a/mod/forum/styles.css b/mod/forum/styles.css index c7f31dd9a45..6343e1d9192 100644 --- a/mod/forum/styles.css +++ b/mod/forum/styles.css @@ -216,7 +216,8 @@ margin: 5px 0; } -.discussion-list .userpicture { +.discussion-list .userpicture, +.discussion-list .grouppicture { height: 35px; width: 35px; } diff --git a/mod/forum/templates/discussion_list.mustache b/mod/forum/templates/discussion_list.mustache index 60e3704d270..fbb2744a1ae 100644 --- a/mod/forum/templates/discussion_list.mustache +++ b/mod/forum/templates/discussion_list.mustache @@ -155,6 +155,7 @@ class="rounded-circle userpicture" src="{{urls.profileimage}}" alt="{{#str}}pictureof, moodle, {{fullname}}{{/str}}" + title="{{fullname}}" >
@@ -164,21 +165,28 @@ {{/firstpostauthor}} {{#forum.state.groupmode}} - + {{#discussion.group}} {{#urls.picture}} {{#urls.userlist}} - - + + {{/urls.userlist}} {{^urls.userlist}} - + {{#str}} pictureof, core, {{name}} {{/str}} {{/urls.userlist}} {{/urls.picture}} {{^urls.picture}} {{#urls.userlist}} - {{name}} + {{name}} {{/urls.userlist}} {{^urls.userlist}} {{name}} @@ -220,6 +228,7 @@ class="rounded-circle userpicture" src="{{latestpostauthor.urls.profileimage}}" alt="{{#str}}pictureof, moodle, {{latestpostauthor.fullname}}{{/str}}" + title="{{latestpostauthor.fullname}}" >
diff --git a/mod/forum/templates/forum_discussion_post.mustache b/mod/forum/templates/forum_discussion_post.mustache index e5a8e1d1c48..bf8c39f6ae1 100644 --- a/mod/forum/templates/forum_discussion_post.mustache +++ b/mod/forum/templates/forum_discussion_post.mustache @@ -58,6 +58,7 @@ src="{{{.}}}" alt="{{#str}} pictureof, core, {{author.fullname}} {{/str}}" aria-hidden="true" + title="{{author.fullname}}" > {{/urls.profileimage}} @@ -94,14 +95,28 @@ {{#author}}
{{#groups}} - {{#urls.image}} - - {{/urls.image}} + {{#urls.group}} + {{#urls.image}} + + + + {{/urls.image}} + {{/urls.group}} + {{^urls.group}} + {{#urls.image}} + {{#str}} pictureof, core, {{name}} {{/str}} + {{/urls.image}} + {{/urls.group}} {{/groups}}
{{/author}} -- 2.17.1