/** * 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; }
$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)) {