/** * Opens table tag and displays header row ready for calling * render_discussion_list_item() a bunch of times. * @param mod_forumng $forum * @param int $groupid Group ID for display; may be NO_GROUPS or ALL_GROUPS * @param string $baseurl Base URL of current page * @param int $sort mod_forumng::SORT_xx constant for sort order * @return string HTML code for start of table */ public function render_discussion_list_start($forum, $groupid, $baseurl, $sort, $sortreverse = false) { global $CFG; $th = "<th scope='col' class='header c"; // Work out sort headers $baseurl = preg_replace('~&sort=[a-z]~', '', $baseurl); $baseurl = preg_replace('~&page=[0-9]+~', '', $baseurl); $sortdata = array(); $reversechar = $sortreverse ? '' : 'r'; foreach (array(mod_forumng::SORT_DATE, mod_forumng::SORT_SUBJECT, mod_forumng::SORT_AUTHOR, mod_forumng::SORT_POSTS, mod_forumng::SORT_UNREAD, mod_forumng::SORT_GROUP) as $possiblesort) { $data = new stdClass(); if ($sort == $possiblesort) { $data->before = '<a ' . 'id="sortlink_' . mod_forumng::get_sort_letter($possiblesort) . '" href="' . s($baseurl) . '&sort=' . mod_forumng::get_sort_letter($possiblesort) . $reversechar . '&sortlink=' . mod_forumng::get_sort_letter($possiblesort) . '" class="forumng-sortlink" ' . 'title="' . mod_forumng::get_sort_title($possiblesort) . ' ' . $this->get_sort_order_text($sort, !$sortreverse) . '">'; $data->after = '</a>' . $this->get_sort_arrow($sort, $sortreverse); } else { $data->before = '<a ' . 'id="sortlink_' . mod_forumng::get_sort_letter($possiblesort) . '" href="' . s($baseurl) . '&sort=' . mod_forumng::get_sort_letter($possiblesort) . '&sortlink=' . mod_forumng::get_sort_letter($possiblesort) . '" title="' . mod_forumng::get_sort_title($possiblesort) . ' ' . $this->get_sort_order_text($possiblesort) . '" class="forumng-sortlink">'; $data->after = '</a>'; } $sortdata[$possiblesort] = $data; } // Check group header if ($groupid == mod_forumng::ALL_GROUPS) { $grouppart = $sortdata[mod_forumng::SORT_GROUP]->before . get_string('group') . $sortdata[mod_forumng::SORT_GROUP]->after . "</th>{$th}3'>"; $nextnum = 4; } else { $grouppart = ''; $nextnum = 3; } $afternum = $nextnum + 1; if ($forum->can_mark_read()) { $unreadpart = "</th>{$th}{$nextnum} forumng-unreadcount'>" . $sortdata[mod_forumng::SORT_UNREAD]->before . get_string('unread', 'forumng') . $sortdata[mod_forumng::SORT_UNREAD]->after . "</th>{$th}{$afternum} lastcol'>"; } else { $unreadpart = "</th>{$th}{$nextnum} lastcol'>"; } return "<table class='generaltable forumng-discussionlist'><tr>" . "{$th}0'>" . $sortdata[mod_forumng::SORT_SUBJECT]->before . get_string('discussion', 'forumng') . $sortdata[mod_forumng::SORT_SUBJECT]->after . "</th>{$th}1'>" . $sortdata[mod_forumng::SORT_AUTHOR]->before . get_string('startedby', 'forumng') . $sortdata[mod_forumng::SORT_AUTHOR]->after . "</th>{$th}2'>" . $grouppart . $sortdata[mod_forumng::SORT_POSTS]->before . get_string('posts', 'forumng') . $sortdata[mod_forumng::SORT_POSTS]->after . $unreadpart . $sortdata[mod_forumng::SORT_DATE]->before . get_string('lastpost', 'forumng') . $sortdata[mod_forumng::SORT_DATE]->after . '</th></tr>'; }