diff --git a/message/classes/output/messagearea/message_search_results.php b/message/classes/output/messagearea/message_search_results.php deleted file mode 100644 index 85c47c04f80..00000000000 --- a/message/classes/output/messagearea/message_search_results.php +++ /dev/null @@ -1,65 +0,0 @@ -. - -/** - * Contains class used to display message search results. - * - * @package core_message - * @copyright 2016 Mark Nelson - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ - -namespace core_message\output\messagearea; - -defined('MOODLE_INTERNAL') || die(); - -use renderable; -use templatable; - -/** - * Class used to display message search results. - * - * @package core_message - * @copyright 2016 Mark Nelson - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ -class message_search_results implements templatable, renderable { - - /** - * @var array The list of contacts. - */ - public $contacts; - - /** - * Constructor. - * - * @param array $contacts - */ - public function __construct($contacts) { - $this->contacts = $contacts; - } - - public function export_for_template(\renderer_base $output) { - $data = new \stdClass(); - $data->contacts = array(); - foreach ($this->contacts as $contact) { - $contact = new contact($contact); - $data->contacts[] = $contact->export_for_template($output); - } - - return $data; - } -} \ No newline at end of file diff --git a/message/externallib.php b/message/externallib.php index 588a4d4c2ba..253cd52c282 100644 --- a/message/externallib.php +++ b/message/externallib.php @@ -1538,7 +1538,7 @@ class core_message_external extends external_api { * @since 3.2 */ public static function data_for_messagearea_search_messages($userid, $search, $limitfrom = 0, $limitnum = 0) { - global $CFG, $PAGE, $USER; + global $CFG, $USER; // Check if messaging is enabled. if (empty($CFG->messaging)) { @@ -1567,10 +1567,38 @@ class core_message_external extends external_api { $params['limitfrom'], $params['limitnum'] ); - $results = new \core_message\output\messagearea\message_search_results($messages); - $renderer = $PAGE->get_renderer('core_message'); - return $results->export_for_template($renderer); + $data = new \stdClass(); + $data->contacts = []; + foreach ($messages as $message) { + $contact = new \stdClass(); + $contact->userid = $message->userid; + $contact->fullname = $message->fullname; + $contact->profileimageurl = $message->profileimageurl; + $contact->profileimageurlsmall = $message->profileimageurlsmall; + $contact->messageid = $message->messageid; + $contact->ismessaging = $message->ismessaging; + $contact->sentfromcurrentuser = false; + if ($message->lastmessage) { + if ($message->userid !== $message->useridfrom) { + $contact->sentfromcurrentuser = true; + } + $contact->lastmessage = shorten_text($message->lastmessage, 60); + } else { + $contact->lastmessage = null; + } + $contact->lastmessagedate = $message->lastmessagedate; + $contact->showonlinestatus = is_null($message->isonline) ? false : true; + $contact->isonline = $message->isonline; + $contact->isblocked = $message->isblocked; + $contact->isread = $message->isread; + $contact->unreadcount = $message->unreadcount; + $contact->conversationid = $message->conversationid; + + $data->contacts[] = $contact; + } + + return $data; } /**