[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 <?php 2 // This file is part of Moodle - http://moodle.org/ 3 // 4 // Moodle is free software: you can redistribute it and/or modify 5 // it under the terms of the GNU General Public License as published by 6 // the Free Software Foundation, either version 3 of the License, or 7 // (at your option) any later version. 8 // 9 // Moodle is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU General Public License for more details. 13 // 14 // You should have received a copy of the GNU General Public License 15 // along with Moodle. If not, see <http://www.gnu.org/licenses/>. 16 17 /** 18 * This file contains the news item block class, based upon block_base. 19 * 20 * @package block_news_items 21 * @copyright 1999 onwards Martin Dougiamas (http://dougiamas.com) 22 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 23 */ 24 25 /** 26 * Class block_news_items 27 * 28 * @package block_news_items 29 * @copyright 1999 onwards Martin Dougiamas (http://dougiamas.com) 30 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 31 */ 32 class block_news_items extends block_base { 33 function init() { 34 $this->title = get_string('pluginname', 'block_news_items'); 35 } 36 37 function get_content() { 38 global $CFG, $USER; 39 40 if ($this->content !== NULL) { 41 return $this->content; 42 } 43 44 $this->content = new stdClass; 45 $this->content->text = ''; 46 $this->content->footer = ''; 47 48 if (empty($this->instance)) { 49 return $this->content; 50 } 51 52 53 if ($this->page->course->newsitems) { // Create a nice listing of recent postings 54 55 require_once($CFG->dirroot.'/mod/forum/lib.php'); // We'll need this 56 57 $text = ''; 58 59 if (!$forum = forum_get_course_forum($this->page->course->id, 'news')) { 60 return ''; 61 } 62 63 $modinfo = get_fast_modinfo($this->page->course); 64 if (empty($modinfo->instances['forum'][$forum->id])) { 65 return ''; 66 } 67 $cm = $modinfo->instances['forum'][$forum->id]; 68 69 if (!$cm->uservisible) { 70 return ''; 71 } 72 73 $context = context_module::instance($cm->id); 74 75 /// User must have perms to view discussions in that forum 76 if (!has_capability('mod/forum:viewdiscussion', $context)) { 77 return ''; 78 } 79 80 /// First work out whether we can post to this group and if so, include a link 81 $groupmode = groups_get_activity_groupmode($cm); 82 $currentgroup = groups_get_activity_group($cm, true); 83 84 if (forum_user_can_post_discussion($forum, $currentgroup, $groupmode, $cm, $context)) { 85 $text .= '<div class="newlink"><a href="'.$CFG->wwwroot.'/mod/forum/post.php?forum='.$forum->id.'">'. 86 get_string('addanewtopic', 'forum').'</a>...</div>'; 87 } 88 89 /// Get all the recent discussions we're allowed to see 90 91 // This block displays the most recent posts in a forum in 92 // descending order. The call to default sort order here will use 93 // that unless the discussion that post is in has a timestart set 94 // in the future. 95 // This sort will ignore pinned posts as we want the most recent. 96 $sort = forum_get_default_sort_order(true, 'p.modified', 'd', false); 97 if (! $discussions = forum_get_discussions($cm, $sort, false, 98 -1, $this->page->course->newsitems, 99 false, -1, 0, FORUM_POSTS_ALL_USER_GROUPS) ) { 100 $text .= '('.get_string('nonews', 'forum').')'; 101 $this->content->text = $text; 102 return $this->content; 103 } 104 105 /// Actually create the listing now 106 107 $strftimerecent = get_string('strftimerecent'); 108 $strmore = get_string('more', 'forum'); 109 110 /// Accessibility: markup as a list. 111 $text .= "\n<ul class='unlist'>\n"; 112 foreach ($discussions as $discussion) { 113 114 $discussion->subject = $discussion->name; 115 116 $discussion->subject = format_string($discussion->subject, true, $forum->course); 117 118 $text .= '<li class="post">'. 119 '<div class="head clearfix">'. 120 '<div class="date">'.userdate($discussion->modified, $strftimerecent).'</div>'. 121 '<div class="name">'.fullname($discussion).'</div></div>'. 122 '<div class="info"><a href="'.$CFG->wwwroot.'/mod/forum/discuss.php?d='.$discussion->discussion.'">'.$discussion->subject.'</a></div>'. 123 "</li>\n"; 124 } 125 $text .= "</ul>\n"; 126 127 $this->content->text = $text; 128 129 $this->content->footer = '<a href="'.$CFG->wwwroot.'/mod/forum/view.php?f='.$forum->id.'">'. 130 get_string('oldertopics', 'forum').'</a> ...'; 131 132 /// If RSS is activated at site and forum level and this forum has rss defined, show link 133 if (isset($CFG->enablerssfeeds) && isset($CFG->forum_enablerssfeeds) && 134 $CFG->enablerssfeeds && $CFG->forum_enablerssfeeds && $forum->rsstype && $forum->rssarticles) { 135 require_once($CFG->dirroot.'/lib/rsslib.php'); // We'll need this 136 if ($forum->rsstype == 1) { 137 $tooltiptext = get_string('rsssubscriberssdiscussions','forum'); 138 } else { 139 $tooltiptext = get_string('rsssubscriberssposts','forum'); 140 } 141 if (!isloggedin()) { 142 $userid = $CFG->siteguest; 143 } else { 144 $userid = $USER->id; 145 } 146 147 $this->content->footer .= '<br />'.rss_get_link($context->id, $userid, 'mod_forum', $forum->id, $tooltiptext); 148 } 149 150 } 151 152 return $this->content; 153 } 154 } 155 156
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Thu Aug 11 10:00:09 2016 | Cross-referenced by PHPXref 0.7.1 |