Ejemplo n.º 1
0
/**
 * Pull together chat variables for the save form
 *
 * @param ElggChat $chat
 * @return array
 */
function chat_prepare_form_vars($chat = NULL)
{
    $user = elgg_get_logged_in_user_entity();
    // input names => defaults
    $values = array('title' => NULL, 'description' => NULL, 'access_id' => ACCESS_LOGGED_IN, 'container_guid' => NULL, 'guid' => NULL, 'members' => NULL);
    if ($chat) {
        foreach (array_keys($values) as $field) {
            if (isset($chat->{$field})) {
                $values[$field] = $chat->{$field};
            }
        }
        $values['members'] = $chat->getMemberGuids();
    }
    if (elgg_is_sticky_form('chat')) {
        $sticky_values = elgg_get_sticky_values('chat');
        foreach ($sticky_values as $key => $value) {
            $values[$key] = $value;
        }
        // This is not a property of chat so add separately
        $values['description'] = $sticky_values['message'];
    }
    elgg_clear_sticky_form('chat');
    return $values;
}
Ejemplo n.º 2
0
    $entity->subtype = 'chat';
    $entity->access_id = ACCESS_LOGGED_IN;
}
$entity->title = $title;
if ($entity->save()) {
    elgg_clear_sticky_form('chat');
} else {
    register_error(elgg_echo('chat:error:cannot_save'));
    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)) {