public function get_content() { global $CFG, $DB; if (empty($this->instance)) { $this->content = ''; return $this->content; } if ($this->content !== null) { return $this->content; } // Only for logged and non guest users if (!isloggedin() or isguestuser()) { return ''; } require_once dirname(__FILE__) . '/block_jmail_mailbox.class.php'; $this->content = new stdClass(); $this->content->items = array(); $this->content->icons = array(); $this->content->footer = ''; $currentcontext = $this->page->context; $renderer = $this->page->get_renderer('block_jmail'); $newmailicon = $renderer->plugin_icon('new'); $mycourses = array(); if ($this->page->course->id == SITEID) { if (!empty($CFG->block_jmail_enable_globalinbox)) { $this->content->footer = $renderer->global_inbox(); } if ($mycourses = block_jmail_mailbox::get_my_mailboxes()) { foreach ($mycourses as $course) { if ($mailbox = new block_jmail_mailbox($course)) { if ($unreadmails = $mailbox->count_unread_messages()) { $this->content->items[] = $renderer->unread_messages($mailbox); $this->content->icons[] = $newmailicon; } } } } } else { $this->content->footer = $renderer->course_inbox($this->page->course); $context = block_jmail_get_context(CONTEXT_COURSE, $this->page->course->id); if ($mailbox = new block_jmail_mailbox($this->page->course, $context)) { if ($unreadmails = $mailbox->count_unread_messages()) { $mailbox->pagesize = 5; if ($messages = $mailbox->get_message_headers('unread', 0, 'date', 'desc', '')) { foreach ($messages[1] as $m) { $strfrom = get_string('from', 'block_jmail'); $messagetext = shorten_text($m->subject, 25) . " (<i>{$strfrom}: " . shorten_text($m->from, 15) . ")</i>"; $this->content->items[] = $messagetext; $this->content->icons[] = ''; } } $this->content->items[] = get_string('unreadmessages', 'block_jmail', $unreadmails); $this->content->icons[] = $newmailicon; } } } if (!count($this->content->items)) { $this->content->items[] = get_string('nonewmessages', 'block_jmail'); } return $this->content; }
// TODO, check block disabled or instance not visible? if (isguestuser()) { $err->error = get_string('noguest'); die(json_encode($err)); } $data = null; echo $OUTPUT->header(); // send headers switch ($action) { case 'get_message_headers': $label = optional_param('label', 'inbox', PARAM_ALPHANUM); $start = optional_param('start', 0, PARAM_INT); $sort = optional_param('sort', 'date', PARAM_ALPHA); $direction = optional_param('direction', 'DESC', PARAM_ALPHA); $searchtext = optional_param('searchtext', '', PARAM_NOTAGS); list($totalmessages, $messages) = $mailbox->get_message_headers($label, $start, $sort, $direction, $searchtext); $data = new stdClass(); $data->pagesize = $mailbox->pagesize; $data->total = $totalmessages; $data->start = $start; $data->sort = $sort; $data->direction = $direction; $data->messages = $messages; break; case 'get_message': case 'get_message_sent': $messageid = required_param('messageid', PARAM_INT); if ($action == 'get_message') { $data = $mailbox->get_message($messageid); } else { $data = $mailbox->get_message_sent($messageid);