} else { $mailpagesize = get_user_preferences('local_mail_mailsperpage', MAIL_PAGESIZE, $USER->id); if ($prevpage or $nextpage) { if ($prevpage) { $offset = max(0, $offset - $mailpagesize); } else { if ($nextpage) { $offset = $offset + $mailpagesize; } } $url->param('offset', $offset); redirect($url); } // Set up messages $itemid = $labelid ?: $courseid; $totalcount = local_mail_message::count_index($USER->id, $type, $itemid); $messages = local_mail_message::fetch_index($USER->id, $type, $itemid, $offset, $mailpagesize); // Display page $courseid = $courseid ?: $SITE->id; if (!($course = $DB->get_record('course', array('id' => $courseid)))) { print_error('invalidcourse', 'error'); } // Check whether user can use mail in that course if ($course->id != $SITE->id) { $context = context_course::instance($course->id); require_capability('local/mail:usemail', $context); } local_mail_setup_page($course, $url); $url->param('offset', $offset); // Remove if ($delete) {
public function test_count_index() { $message1 = local_mail_message::create(201, 101); $message1->add_recipient('to', 202); $message1->send(); $message2 = local_mail_message::create(201, 102); $message2->add_recipient('to', 202); $message2->send(); $other = local_mail_message::create(202, 101); $result = local_mail_message::count_index(202, 'inbox'); $this->assertEquals(2, $result); }
function local_mail_setperpage($itemid, $type, $offset, $mailpagesize, $search) { global $USER; $totalcount = local_mail_message::count_index($USER->id, $type, $itemid); if (in_array($mailpagesize, array(5, 10, 20, 50, 100))) { set_user_preference('local_mail_mailsperpage', $mailpagesize); if (!empty($search)) { $search['limit'] = $mailpagesize; return local_mail_searchmessages($type, $itemid, $search, $offset, true); } else { $messages = local_mail_message::fetch_index($USER->id, $type, $itemid, $offset, $mailpagesize); return array('info' => '', 'html' => local_mail_print_messages($itemid, $type, $offset, $messages, $totalcount)); } } return array('info' => '', 'html' => ''); }