Пример #1
0
$site = elgg_get_site_entity();
$dbprefix = elgg_get_config('dbprefix');
$users = array((int) $user_guid, (int) $owner->guid);
sort($users);
$chat_id = json_encode($users);
$chats = elgg_get_entities_from_metadata(array('type' => 'object', 'subtype' => 'chat', 'owner_guid' => $site->guid, 'metadata_name_value_pairs' => array('name' => 'chat_id', 'value' => $chat_id)));
$json = array();
if (empty($chats)) {
    $chat = new ElggChat();
    $chat->owner_guid = $site->guid;
    $chat->container_guid = $site->guid;
    $chat->access_id = ACCESS_LOGGED_IN;
    $chat->title = 'Test';
    $chat->chat_id = $chat_id;
    if ($chat->save()) {
        $chat->addMember($owner->guid);
        $chat->addMember($user_guid);
    } else {
        register_error(elgg_echo('chat:error:cannot_save'));
        return;
    }
} else {
    $chat = $chats[0];
    /**
     * Get messages ascending to get latest messages and then reverse
     * them to make the order chronological (latest messages at bottom).
     */
    $messages = elgg_get_entities(array('type' => 'object', 'subtype' => 'chat_message', 'container_guid' => $chat->guid, 'limit' => 6, 'order_by' => 'e.time_created desc', 'pagination' => false));
    $messages = array_reverse($messages);
    foreach ($messages as $message) {
        $owner = $message->getOwnerEntity();
Пример #2
0
    forward(REFERER);
}
$user = elgg_get_logged_in_user_entity();
// Add user itself if missing
if (!in_array($user->getGUID(), $members)) {
    $members[] = $user->getGUID();
}
$old_member_guids = $entity->getMemberGuids();
// Add selected users to the chat
foreach ($members as $member_guid) {
    // Skip users that are already members
    if (in_array($member_guid, $old_member_guids)) {
        continue;
    }
    // Add relationship "user is a member of this chat".
    if (!$entity->addMember($member_guid)) {
        $member = get_entity($member_guid);
        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';