* Avatar (edit) */ /** * Avatar (edit) */ case 'avatar_ext_id': if ($submit && !bf($pr_data['user_opt'], 'user_opt', 'dis_avatar')) { if (isset($_POST['delete_avatar'])) { delete_avatar($pr_data['user_id'], $pr_data['avatar_ext_id']); $pr_data['avatar_ext_id'] = 0; $db_data['avatar_ext_id'] = 0; } else { if (!empty($_FILES['avatar']['name']) && $bb_cfg['avatars']['up_allowed']) { require INC_DIR . 'functions_upload.php'; $upload = new upload_common(); if ($upload->init($bb_cfg['avatars'], $_FILES['avatar']) and $upload->store('avatar', $pr_data)) { $pr_data['avatar_ext_id'] = $upload->file_ext_id; $db_data['avatar_ext_id'] = (int) $upload->file_ext_id; } else { $errors = array_merge($errors, $upload->errors); } } } } $tp_data['AVATARS_MAX_SIZE'] = humn_size($bb_cfg['avatars']['max_size']); break; /** * ICQ (edit) */ /** * ICQ (edit)
if ($confirm) { DB()->query("ALTER TABLE " . BB_USERS . " ADD `avatar_ext_id` TINYINT( 4 ) NOT NULL AFTER `user_rank`"); $rows_per_cycle = 10000; $row = DB()->fetch_row("SELECT MAX(user_id) AS end_id FROM " . BB_USERS); $end_id = (int) $row['end_id']; $start = $avatars_ok = $avatars_err = 0; echo "<pre>\n"; while (true) { set_time_limit(600); echo "{$start} [ {$avatars_ok} / {$avatars_err} ]\n"; $end = $start + $rows_per_cycle - 1; $sql = "\n\t\t\tSELECT user_id, avatar_ext_id, user_avatar\n\t\t\tFROM " . BB_USERS . "\n\t\t\tWHERE user_avatar != ''\n\t\t\t\tAND avatar_ext_id = 0\n\t\t\t\tAND user_id BETWEEN {$start} AND {$end}\n\t\t\tORDER BY NULL\n\t\t"; foreach (DB()->fetch_rowset($sql) as $row) { $FILE = array('name' => '', 'type' => '', 'size' => 0, 'tmp_name' => BB_ROOT . $bb_cfg['avatar_path'] . '/' . basename($row['user_avatar']), 'error' => 0); $upload = new upload_common(); if ($upload->init($bb_cfg['avatars'], $FILE, false) and $upload->store('avatar', $row)) { DB()->query("UPDATE " . BB_USERS . " SET avatar_ext_id = {$upload->file_ext_id} WHERE user_id = {$row['user_id']} LIMIT 1"); $avatars_ok++; } else { echo "{$row['user_id']}: ", join("\n{$row['user_id']}: ", $upload->errors), "\n"; $avatars_err++; } } if ($end > $end_id) { break; } $start += $rows_per_cycle; sleep(1); } echo "---------- База данных успешно обновлена. Аватары указанных выше пользователей перенесены не были. ----------\n"; DB()->query("ALTER TABLE " . BB_USERS . " DROP `user_avatar`");
if (!($group_info = get_group_data($group_id))) { bb_die($lang['GROUP_NOT_EXIST']); } if (!$group_info['group_id'] || !$group_info['group_moderator'] || !$group_info['moderator_name']) { bb_die("Invalid group data [group_id: {$group_id}]"); } $is_moderator = $userdata['user_id'] == $group_info['group_moderator'] || IS_ADMIN; } if ($is_moderator) { // TODO Admin panel, some tasty features // Avatar if ($submit) { if (!empty($_FILES['avatar']['name']) && $bb_cfg['group_avatars']['up_allowed']) { require INC_DIR . 'functions_upload.php'; $upload = new upload_common(); if ($upload->init($bb_cfg['group_avatars'], $_FILES['avatar']) and $upload->store('avatar', array("user_id" => GROUP_AVATAR_MASK . $group_id, "avatar_ext_id" => $group_info['avatar_ext_id']))) { $avatar_ext_id = (int) $upload->file_ext_id; } else { bb_die(implode($upload->errors)); } DB()->query("UPDATE " . BB_GROUPS . " SET avatar_ext_id = {$avatar_ext_id} WHERE group_id = {$group_id} LIMIT 1"); } } $group_type = ''; if ($group_info['group_type'] == GROUP_OPEN) { $group_type = $lang['GROUP_OPEN']; } elseif ($group_info['group_type'] == GROUP_CLOSED) { $group_type = $lang['GROUP_CLOSED']; } elseif ($group_info['group_type'] == GROUP_HIDDEN) { $group_type = $lang['GROUP_HIDDEN']; }