/** * deletes a users messages, when a user is deleted * * @param type $event * @param type $user */ public static function eventlistener_on_deleteuser($event, $user) { if ('deleteuser' !== $event) { return; } $userid = $user['id']; db_begin(); $recievedmessageids = get_message_ids_mr($userid, 'recipient', null, null, null); if (count($recievedmessageids) > 0) { delete_messages_mr($recievedmessageids, $userid); } $sentmessageids = get_message_ids_mr($userid, 'sender', null, null, 100); if (count($sentmessageids) > 0) { delete_messages_mr($sentmessageids, $userid); } db_commit(); }
/** * * retrieves the messages for user $usr (or logged in user as default). To * view the messages the user has sent, use $role='sender'. Type should always * be 2 (usermessage). Limit and offset can be used for paginated views * <br/> * example result: <br/> * array ( <br/> * 0 => <br/> * stdClass::__set_state(array( <br/> * 'id' => '23', <br/> * 'type' => '2', <br/> * 'ctime' => '2013-09-12 10:12:26', <br/> * 'subject' => 'some subject', <br/> * 'message' => 'some body', <br/> * 'parent' => NULL, <br/> * 'userids' => <br/> * array ( <br/> * 0 => '1', <br/> * 1 => '2', <br/> * ), <br/> * 'fromid' => '1', <br/> * )) <br/> * ) <br/> * * @param int $usr the id of the user * @param string $role the role can be <b>sender</b> or <b>recipient</b> * @param int $type so far it's always <b>2</b> for usermessage * @param string $sortby should be <b>null</b> or <b>ctime ASC</b> or <b>ctime DESC</b> * @param int $limit limits the number of results - for paginations for example * @param int $offset offset of the first row to return * @return array */ function get_messages_mr($usr = null, $role = 'recipient', $type = null, $sortby = null, $limit = 20, $offset = 0) { $messageids = get_message_ids_mr($usr, $role, $type, $sortby, $limit, $offset); if (null === $usr) { global $USER; $usr = $USER->get('id'); } foreach ($messageids as $msgid) { $msg = get_message_mr($usr, $msgid); if (null !== $msg) { $messages[] = $msg; } } return $messages; }