Exemple #1
0
 /**
  * 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);
 }
Exemple #2
0
 /**
  * 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'));
 }