From f1dd21a3c776f30f3d9fad8b41bebc19d01ef724 Mon Sep 17 00:00:00 2001 From: Jun Pataleta Date: Fri, 7 Feb 2020 15:10:27 +0800 Subject: [PATCH] MDL-61390 mod_forum: Create template for forum search results --- .../classes/local/factories/renderer.php | 2 +- .../templates/forum_discussion_post.mustache | 12 +-- ...m_post_subject_with_context_links.mustache | 73 +++++++++++++++++++ .../forum_posts_with_context_links.mustache | 31 +------- .../templates/forum_search_results.mustache | 69 ++++++++++++++++++ 5 files changed, 151 insertions(+), 36 deletions(-) create mode 100644 mod/forum/templates/forum_post_subject_with_context_links.mustache create mode 100644 mod/forum/templates/forum_search_results.mustache diff --git a/mod/forum/classes/local/factories/renderer.php b/mod/forum/classes/local/factories/renderer.php index 2db3a45c78d..78c2b35a3ea 100644 --- a/mod/forum/classes/local/factories/renderer.php +++ b/mod/forum/classes/local/factories/renderer.php @@ -318,7 +318,7 @@ class renderer { return new posts_renderer( $this->rendererbase, $this->builderfactory->get_exported_posts_builder(), - 'mod_forum/forum_posts_with_context_links', + 'mod_forum/forum_search_results', // Post process the exported posts to add the highlighting of the search terms to the post // and also the additional context links in the subject. function($exportedposts, $forumsbyid, $discussionsbyid) use ($searchterms, $urlfactory) { diff --git a/mod/forum/templates/forum_discussion_post.mustache b/mod/forum/templates/forum_discussion_post.mustache index 91cdbfde20d..dad785c7538 100644 --- a/mod/forum/templates/forum_discussion_post.mustache +++ b/mod/forum/templates/forum_discussion_post.mustache @@ -68,11 +68,13 @@ {{#parentauthorname}} {{#str}} inreplyto, mod_forum, {{.}} {{/str}} {{/parentauthorname}} -

{{$subject}}{{{subject}}}{{/subject}}

+ {{$subjectheading}} +

{{$subject}}{{{subject}}}{{/subject}}

+ {{/subjectheading}} {{^isdeleted}}
{{#html.authorsubheading}}{{{.}}}{{/html.authorsubheading}} diff --git a/mod/forum/templates/forum_post_subject_with_context_links.mustache b/mod/forum/templates/forum_post_subject_with_context_links.mustache new file mode 100644 index 00000000000..06e60f98774 --- /dev/null +++ b/mod/forum/templates/forum_post_subject_with_context_links.mustache @@ -0,0 +1,73 @@ +{{! + This file is part of Moodle - http://moodle.org/ + + Moodle is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Moodle is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Moodle. If not, see . +}} +{{! + @template mod_forum/forum_post_subject_with_context_links + + Template to render a breadcrumb-style subject. + + Classes required for JS: + * none + + Data attributes required for JS: + * none + + Example context (json): + { + "coursename": "Test course", + "forumname": "Test forum", + "discussionname": "Test discussion", + "subject": "Test post subject", + "urls": { + "viewcourse": "#", + "viewforum": "#", + "viewdiscussion": "#", + "viewparent": "#" + }, + "showdiscussionname": true, + "hasparent": true + } +}} +{{#coursename}} + {{#urls.viewcourse}} + {{{coursename}}} -> + {{/urls.viewcourse}} + {{^urls.viewcourse}} + {{coursename}} -> + {{/urls.viewcourse}} +{{/coursename}} +{{#urls.viewforum}} + {{{forumname}}} +{{/urls.viewforum}} +{{^urls.viewforum}} + {{{forumname}}} +{{/urls.viewforum}} +{{#showdiscussionname}} + {{#urls.viewdiscussion}} + -> {{{discussionname}}} + {{/urls.viewdiscussion}} + {{^urls.viewdiscussion}} + {{{discussionname}}} + {{/urls.viewdiscussion}} + {{#hasparent}} + {{#urls.viewparent}} + -> {{{subject}}} + {{/urls.viewparent}} + {{^urls.viewparent}} + {{{subject}}} + {{/urls.viewparent}} + {{/hasparent}} +{{/showdiscussionname}} diff --git a/mod/forum/templates/forum_posts_with_context_links.mustache b/mod/forum/templates/forum_posts_with_context_links.mustache index fdabc086032..c7c512f0ecb 100644 --- a/mod/forum/templates/forum_posts_with_context_links.mustache +++ b/mod/forum/templates/forum_posts_with_context_links.mustache @@ -33,36 +33,7 @@ {{#posts}} {{< mod_forum/forum_discussion_post }} {{$subject}} - {{#coursename}} - {{#urls.viewcourse}} - {{{coursename}}} -> - {{/urls.viewcourse}} - {{^urls.viewcourse}} - {{coursename}} -> - {{/urls.viewcourse}} - {{/coursename}} - {{#urls.viewforum}} - {{{forumname}}} - {{/urls.viewforum}} - {{^urls.viewforum}} - {{{forumname}}} - {{/urls.viewforum}} - {{#showdiscussionname}} - {{#urls.viewdiscussion}} - -> {{{discussionname}}} - {{/urls.viewdiscussion}} - {{^urls.viewdiscussion}} - {{{discussionname}}} - {{/urls.viewdiscussion}} - {{#hasparent}} - {{#urls.viewparent}} - -> {{{subject}}} - {{/urls.viewparent}} - {{^urls.viewparent}} - {{{subject}}} - {{/urls.viewparent}} - {{/hasparent}} - {{/showdiscussionname}} + {{> mod_forum/forum_post_subject_with_context_links }} {{/subject}} {{$replies}}{{/replies}} {{$footer}} diff --git a/mod/forum/templates/forum_search_results.mustache b/mod/forum/templates/forum_search_results.mustache new file mode 100644 index 00000000000..9e8c85001f4 --- /dev/null +++ b/mod/forum/templates/forum_search_results.mustache @@ -0,0 +1,69 @@ +{{! + This file is part of Moodle - http://moodle.org/ + + Moodle is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Moodle is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Moodle. If not, see . +}} +{{! + @template mod_forum/forum_search_results + + Template to render results for the forum post search. + + Classes required for JS: + * none + + Data attributes required for JS: + * none + + Example context (json): + { + "posts": [ + { + "id": 1, + "subject": "Re: Test discussion", + "message": "Reply to post by Sam Student", + "author": { + "id": 2, + "fullname": "Sam Student" + }, + "discussionid": 3, + "capabilities": { + "view": true, + "edit": true, + "delete": true, + "split": true, + "reply": true + }, + "html": { + "authorsubheading": "by Sam Student<\/a> -