MDL-61390 mod_forum: Create template for forum search results
authorJun Pataleta <jun@moodle.com>
Fri, 7 Feb 2020 07:10:27 +0000 (15:10 +0800)
committerJun Pataleta <jun@moodle.com>
Mon, 17 Feb 2020 07:55:56 +0000 (15:55 +0800)
mod/forum/classes/local/factories/renderer.php
mod/forum/templates/forum_discussion_post.mustache
mod/forum/templates/forum_post_subject_with_context_links.mustache [new file with mode: 0644]
mod/forum/templates/forum_posts_with_context_links.mustache
mod/forum/templates/forum_search_results.mustache [new file with mode: 0644]

index 2db3a45..78c2b35 100644 (file)
@@ -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) {
index 91cdbfd..dad785c 100644 (file)
                     {{#parentauthorname}}
                         <span class="sr-only">{{#str}} inreplyto, mod_forum, {{.}} {{/str}}</span>
                     {{/parentauthorname}}
-                    <h3 {{!
-                        }}class="h6 font-weight-bold mb-0" {{!
-                        }}data-region-content="forum-post-core-subject" {{!
-                        }}data-reply-subject="{{replysubject}}" {{!
-                        }}>{{$subject}}{{{subject}}}{{/subject}}</h3>
+                    {{$subjectheading}}
+                        <h3 {{!
+                            }}class="h6 font-weight-bold mb-0" {{!
+                            }}data-region-content="forum-post-core-subject" {{!
+                            }}data-reply-subject="{{replysubject}}" {{!
+                            }}>{{$subject}}{{{subject}}}{{/subject}}</h3>
+                    {{/subjectheading}}
                     {{^isdeleted}}
                         <address tabindex="-1">
                             {{#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 (file)
index 0000000..06e60f9
--- /dev/null
@@ -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 <http://www.gnu.org/licenses/>.
+}}
+{{!
+    @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}}
+        <a href="{{{urls.viewcourse}}}">{{{coursename}}}</a> ->
+    {{/urls.viewcourse}}
+    {{^urls.viewcourse}}
+        {{coursename}} ->
+    {{/urls.viewcourse}}
+{{/coursename}}
+{{#urls.viewforum}}
+    <a href="{{{urls.viewforum}}}">{{{forumname}}}</a>
+{{/urls.viewforum}}
+{{^urls.viewforum}}
+    {{{forumname}}}
+{{/urls.viewforum}}
+{{#showdiscussionname}}
+    {{#urls.viewdiscussion}}
+        -> <a href="{{{urls.viewdiscussion}}}">{{{discussionname}}}</a>
+    {{/urls.viewdiscussion}}
+    {{^urls.viewdiscussion}}
+        {{{discussionname}}}
+    {{/urls.viewdiscussion}}
+    {{#hasparent}}
+        {{#urls.viewparent}}
+            -> <a href="{{{urls.viewparent}}}">{{{subject}}}</a>
+        {{/urls.viewparent}}
+        {{^urls.viewparent}}
+            {{{subject}}}
+        {{/urls.viewparent}}
+    {{/hasparent}}
+{{/showdiscussionname}}
index fdabc08..c7c512f 100644 (file)
 {{#posts}}
     {{< mod_forum/forum_discussion_post }}
         {{$subject}}
-            {{#coursename}}
-                {{#urls.viewcourse}}
-                    <a href="{{{urls.viewcourse}}}">{{{coursename}}}</a> ->
-                {{/urls.viewcourse}}
-                {{^urls.viewcourse}}
-                    {{coursename}} ->
-                {{/urls.viewcourse}}
-            {{/coursename}}
-            {{#urls.viewforum}}
-                <a href="{{{urls.viewforum}}}">{{{forumname}}}</a>
-            {{/urls.viewforum}}
-            {{^urls.viewforum}}
-                {{{forumname}}}
-            {{/urls.viewforum}}
-            {{#showdiscussionname}}
-                {{#urls.viewdiscussion}}
-                    -> <a href="{{{urls.viewdiscussion}}}">{{{discussionname}}}</a>
-                {{/urls.viewdiscussion}}
-                {{^urls.viewdiscussion}}
-                    {{{discussionname}}}
-                {{/urls.viewdiscussion}}
-                {{#hasparent}}
-                    {{#urls.viewparent}}
-                        -> <a href="{{{urls.viewparent}}}">{{{subject}}}</a>
-                    {{/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 (file)
index 0000000..9e8c850
--- /dev/null
@@ -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 <http://www.gnu.org/licenses/>.
+}}
+{{!
+    @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 <a href=\"#\">Sam Student<\/a> - <time>Friday, 7 February 2020, 11:55 AM<\/time>"
+                },
+                "forumname": "Forum",
+                "discussionname": "<span class=\"highlight\">Test<\/span> discussion",
+                "showdiscussionname": true
+            }
+        ]
+    }
+}}
+{{< mod_forum/forum_posts_with_context_links}}
+    {{$subjectheading}}
+        <h4 {{!
+            }}class="h6 font-weight-bold mb-0" {{!
+            }}data-region-content="forum-post-core-subject" {{!
+            }}data-reply-subject="{{replysubject}}" {{!
+            }}>
+            {{$subject}}
+                {{> mod_forum/forum_post_subject_with_context_links }}
+            {{/subject}}
+        </h4>
+    {{/subjectheading}}
+{{/ mod_forum/forum_posts_with_context_links}}