/** * Displays a flagged item. * @param forum_post $post * @param bool $last * @return string HTML code for table row */ public function display_flagged_list_item($post, $last) { global $CFG; // Classes for Moodle table styles static $rownum = 0; $classes = ' r' . $rownum; $rownum = 1 - $rownum; if ($last) { $classes .= ' lastrow'; } $result = '<tr class="' . $classes . '">'; // Post cell $result .= '<td class="cell c0">'; // Get post URL $discussion = $post->get_discussion(); $link = '<a href="discuss.php?' . $discussion->get_link_params(forum::PARAM_HTML) . '#p' . $post->get_id() . '">'; // Get post summary $summary = self::get_post_summary($post->get_subject(), $post->get_message(), $post->get_format()); $result .= $link . $summary . '</a>'; $result .= '<small> ' . get_string('postby', 'forumng', $post->get_forum()->display_user_link($post->get_user())) . '</small>'; // Show flag icon. (Note: I tried to use before this so the // icon never ends up on a line of its own, but it does not work.) $result .= ' <form class="forumng-flag" action="flagpost.php" method="post"><div>' . '<input type="hidden" name="p" value="' . $post->get_id() . '" />' . '<input type="hidden" name="back" value="view" />' . '<input type="hidden" name="flag" value="0" />' . '<input type="image" title="' . get_string('clearflag', 'forumng') . '" src="' . $CFG->modpixpath . '/forumng/flag.on.png" alt="' . get_string('flagon', 'forumng') . '" /></div></form></td>'; // Discussion cell $result .= '<td class="cell c1"><a href="discuss.php?' . $discussion->get_link_params(forum::PARAM_HTML) . $discussion->get_id() . '">' . format_string($discussion->get_subject()) . '</a></td>'; // Date cell $result .= '<td class="cell c2 lastcol">' . forum_utils::display_date($post->get_created()) . '</td></tr>'; return $result; }
/** * Displays the view page (usually showing a list of discussions). * @param forum $forum Forum * @param int $groupid Group ID */ public function print_view_page($forum, $groupid) { global $SESSION; $forumid = $forum->get_id(); $baseurl = 'view.php?' . $forum->get_link_params(forum::PARAM_PLAIN); if (isset($SESSION->forumng_discussionlist[$forumid]) && property_exists($SESSION->forumng_discussionlist[$forumid], 'groupid') && $SESSION->forumng_discussionlist[$forumid]->groupid != $groupid) { unset($SESSION->forumng_discussionlist[$forumid]->page); unset($SESSION->forumng_discussionlist[$forumid]->groupid); } //Remember the sort order and page number in session variables //Unset the page session variable when the sort links are clicked // or groupid has been changed (using the group dropdown box) $sortorder = optional_param('sort', '', PARAM_ALPHA); if (!$sortorder) { if (isset($SESSION->forumng_discussionlist[$forumid]->sort)) { $sortorder = $SESSION->forumng_discussionlist[$forumid]->sort; } else { $sortorder = 'd'; } } else { if (optional_param('sortlink', '', PARAM_ALPHA)) { $SESSION->forumng_discussionlist[$forumid]->sort = $sortorder; unset($SESSION->forumng_discussionlist[$forumid]->page); } } $page = optional_param('page', 0, PARAM_INT); if (!$page) { if (isset($SESSION->forumng_discussionlist[$forumid]->page)) { $page = $SESSION->forumng_discussionlist[$forumid]->page; } else { $page = 1; } } else { $SESSION->forumng_discussionlist[$forumid]->page = $page; $SESSION->forumng_discussionlist[$forumid]->groupid = $groupid; } $baseurl .= '&page=' . $page; $sortchar = substr($sortorder, 0, 1); if (strlen($sortorder) == 2) { $sortreverse = substr($sortorder, 1, 1) == 'r' ? true : false; } else { $sortreverse = false; } $baseurl .= '&sort=' . $sortchar; $baseurl .= $sortreverse ? 'r' : ''; $sort = forum::get_sort_code($sortchar); $list = $forum->get_discussion_list($groupid, $forum->can_view_hidden(), $forum->can_manage_discussions(), $page, $sort, $sortreverse); $sticky = $list->get_sticky_discussions(); $normal = $list->get_normal_discussions(); // Remove discussions from list if the forumtype thinks we can't see // them foreach ($sticky as $key => $value) { if (!$this->can_view_discussion($value)) { unset($sticky[$key]); } } foreach ($normal as $key => $value) { if (!$this->can_view_discussion($value)) { unset($normal[$key]); } } // Intro print $forum->display_intro(); // Draft posts $drafts = $forum->get_drafts(); if (count($drafts) > 0) { print $forum->display_draft_list_start(); foreach ($drafts as $draft) { print $draft->display_draft_list_item($forum, $draft == end($drafts)); } print $forum->display_draft_list_end(); } //print info about the start and end dtates of the forum from the form setting; $stringend = has_capability('mod/forumng:ignorepostlimits', $forum->get_context()) ? 'capable' : ''; $startdate = $forum->get_postingfrom(); $enddate = $forum->get_postinguntil(); // Before start date if (time() < $startdate) { $message = get_string('beforestartdate' . $stringend, 'forumng', forum_utils::display_date($startdate)); print "<div class='forumng-show-dates'>{$message}</div>"; } else { if (time() < $enddate) { $message = get_string('beforeenddate' . $stringend, 'forumng', forum_utils::display_date($enddate)); print "<div class='forumng-show-dates'>{$message}</div>"; } } // After end date if ($enddate && time() >= $enddate) { $message = get_string('afterenddate' . $stringend, 'forumng', forum_utils::display_date($enddate)); print "<div class='forumng-show-dates'>{$message}</div>"; } // Post button - temporarily disabled when in all-groups mode print $groupid == NULL ? '' : $forum->display_post_button($groupid); print $list->display_paging_bar($baseurl); if (count($sticky) + count($normal) > 0) { print $forum->display_discussion_list_start($groupid, $baseurl, $sort, $sortreverse); foreach ($sticky as $discussion) { print $discussion->display_discussion_list_item($groupid); } if (count($sticky) > 0 && count($normal) > 0) { print $forum->display_discussion_list_divider($groupid); } foreach ($normal as $discussion) { print $discussion->display_discussion_list_item($groupid, $discussion == end($normal)); } print $forum->display_discussion_list_end($groupid); } else { print '<p class="forumng-nodiscussions">' . $this->get_string($forum, 'nodiscussions') . '</p>'; } print $list->display_paging_bar($baseurl); print $forum->display_discussion_list_features($groupid); // Flagged posts $flagged = $forum->get_flagged_posts(); if (count($flagged) > 0) { print $forum->display_flagged_list_start(); foreach ($flagged as $post) { print $post->display_flagged_list_item($post === end($flagged)); } print $forum->display_flagged_list_end(); } // Subscribe and view subscribers links print $forum->display_subscribe_options(); // Atom/RSS links print $forum->display_feed_links($groupid); // display the warning message for invalid archive setting print $forum->display_archive_warning(); // Display sharing information print $forum->display_sharing_info(); }
$navigation[] = array('name' => $pagename, 'type' => 'forumng'); $buttontext = ''; if (class_exists('ouflags') && ou_get_is_mobile()) { ou_mobile_configure_theme(); } $PAGEWILLCALLSKIPMAINDESTINATION = true; print_header_simple(format_string($forum->get_name()) . ': ' . $pagename, "", build_navigation($navigation, $cm), "", "", true, $buttontext, navmenu($course, $cm)); $forum->print_js(); print skip_main_destination(); // If replying, print original post here if (!$isdiscussion && !$edit && !$islock) { print '<div class="forumng-replyto">' . $replyto->display(true, array(forum_post::OPTION_NO_COMMANDS => true, forum_post::OPTION_FIRST_UNREAD => false)) . '</div>'; } // If draft has been saved, print that here if ($draft) { print '<div class="forumng-draftexists">' . get_string('draftexists', 'forumng', forum_utils::display_date($draft->get_saved())) . '</div>'; } // Set up initial data $initialvalues = new stdClass(); if ($edit) { // Work out initial values for all form fields if ($isdiscussion) { $initialvalues->timestart = $discussion->get_time_start(); $initialvalues->timeend = $discussion->get_time_end(); $initialvalues->sticky = $discussion->is_sticky() ? 1 : 0; $initialvalues->groupid = $discussion->get_group_id(); } $initialvalues->subject = $post->get_subject(); $initialvalues->message = $post->get_message(); $initialvalues->format = $post->get_format(); $initialvalues->setimportant = $post->is_important();