register_error(elgg_echo("chat:error:cannot_add_member", array($member->name))); } } // Remove users that were deselected foreach ($old_member_guids as $old_member_guid) { if (!in_array($old_member_guid, $members)) { $old_member = get_entity($old_member_guid); $entity->removeMember($old_member); } } // Save the first chat message if ($description) { $message = new ElggObject(); $message->subtype = 'chat_message'; $message->access_id = ACCESS_LOGGED_IN; $message->container_guid = $entity->getGUID(); $message->description = $description; if ($message->save()) { $members = $entity->getMemberEntities(); foreach ($members as $member) { // No unread annotation for user's own message if ($member->getGUID() === $user->getGUID()) { continue; } // Mark the message as unread $message->addRelationship($member->getGUID(), 'unread'); // Add number of unread messages also to the chat object $entity->increaseUnreadMessageCount($member); } } else { register_error(elgg_echo('chat:error:cannot_save_message'));