/** * Standard aed_module edit actualiser. * * @param ID_TEXT The entry being edited */ function edit_actualisation($id) { $_room_owner = post_param('room_owner', STRING_MAGIC_NULL); $room_owner = $_room_owner == STRING_MAGIC_NULL ? INTEGER_MAGIC_NULL : $GLOBALS['FORUM_DRIVER']->get_member_from_username($_room_owner); if ($_room_owner != STRING_MAGIC_NULL) { list($allow2, $allow2_groups, $disallow2, $disallow2_groups) = read_in_chat_perm_fields(); } else { $allow2 = STRING_MAGIC_NULL; $allow2_groups = STRING_MAGIC_NULL; $disallow2 = STRING_MAGIC_NULL; $disallow2_groups = STRING_MAGIC_NULL; } edit_chatroom(intval($id), post_param('c_welcome', STRING_MAGIC_NULL), post_param('room_name'), $room_owner, $allow2, $allow2_groups, $disallow2, $disallow2_groups, post_param('room_lang', STRING_MAGIC_NULL)); $this->set_permissions($id); }
/** * The actualiser to add a chat room. * * @return tempcode The UI to choose a chat room (probably what was just added, but...) */ function _chat_private() { $title = get_page_title('CREATE_PRIVATE_ROOM'); require_code('chat2'); if (is_guest()) { access_denied('NOT_AS_GUEST'); } check_specific_permission('create_private_room'); // Check the input $room_name = post_param('room_name', do_lang('CHAT_PRIVATE_DEFAULT_ROOM_NAME', $GLOBALS['FORUM_DRIVER']->get_username(get_member()))); $room_lang = post_param('room_lang', user_lang()); list($allow2, $allow2_groups, $disallow2, $disallow2_groups) = read_in_chat_perm_fields(); $allow = explode(',', $allow2); $new_room_id = add_chatroom(post_param('c_welcome'), $room_name, get_member(), $allow2, $allow2_groups, $disallow2, $disallow2_groups, $room_lang); $rooms = chat_get_all_rooms(); // For each person in the allow list, insert a private message into every room (except the new one) asking them to join the new room foreach ($allow as $person) { $person = trim($person); if ($person != '' && $person != $GLOBALS['FORUM_DRIVER']->get_username(get_member()) && $person != do_lang('GUEST')) { foreach ($rooms as $room) { if ($room['id'] != $new_room_id) { chat_post_message($room['id'], '[invite="' . $person . '"]' . $room_name . '[/invite]', get_option('chat_default_post_font'), get_option('chat_default_post_colour')); } } } } // Set access $admin_groups = $GLOBALS['FORUM_DRIVER']->get_super_admin_groups(); $groups = $GLOBALS['FORUM_DRIVER']->get_usergroup_list(false, true); $GLOBALS['SITE_DB']->query_delete('group_category_access', array('module_the_name' => 'chat', 'category_name' => strval($new_room_id))); foreach (array_keys($groups) as $group_id) { if (in_array($group_id, $admin_groups)) { continue; } $GLOBALS['SITE_DB']->query_insert('group_category_access', array('module_the_name' => 'chat', 'category_name' => strval($new_room_id), 'group_id' => $group_id)); } $url = build_url(array('page' => '_SELF', 'type' => 'room', 'id' => $new_room_id), '_SELF'); return redirect_screen($title, $url, do_lang_tempcode('SUCCESS')); }