(true === $upf_class->isResize()) ? 1 : 0, 'thumb_size' => 100, 'thumb_perc' => 75, 'pic_mass' => 300, //килобайт 'pic_perc' => 75, 'pic_w' => 1920, 'pic_h' => 1200, ]; // обновление до версии 2.3.0 if (isset($pun_config['o_uploadile_other'])) { if (! isset($pun_config['o_upload_config'])) { $aconf = unserialize($pun_config['o_uploadile_other']); $aconf['pic_mass'] = (int) ($aconf['pic_mass'] / 1024); $pun_config['o_upload_config'] = serialize($aconf); $db->query('INSERT INTO ' . $db->prefix . 'config (conf_name, conf_value) VALUES(\'o_upload_config\', \'' . $db->escape($pun_config['o_upload_config']) . '\')') or error($lang_up['Error DB ins-up'], __FILE__, __LINE__, $db->error()); } $db->query('DELETE FROM ' . $db->prefix . 'config WHERE conf_name=\'o_uploadile_other\'') or error('Unable to remove config entries', __FILE__, __LINE__, $db->error());; if (! defined('FORUM_CACHE_FUNCTIONS_LOADED')) { require PUN_ROOT . 'include/cache.php'; } generate_config_cache(); $data_grs = []; if (isset($pun_user['g_up_ext'], $pun_user['g_up_limit'], $pun_user['g_up_max'])) { $result = $db->query('SELECT * FROM ' . $db->prefix . 'groups ORDER BY g_id') or error('Unable to fetch user group list', __FILE__, __LINE__, $db->error()); while ($cur_group = $db->fetch_assoc($result)) { if ($cur_group['g_id'] == PUN_GUEST) { continue; } $data_grs[$cur_group['g_id']] = [ 'g_up_ext' => $cur_group['g_up_ext'], 'g_up_max' => (int) ($cur_group['g_up_max'] / 10485.76), 'g_up_limit' => (int) ($cur_group['g_up_limit'] / 1048576), ]; } } $db->drop_field('groups', 'g_up_ext') or error('Unable to drop g_up_ext field', __FILE__, __LINE__, $db->error()); $db->drop_field('groups', 'g_up_max') or error('Unable to drop g_up_max field', __FILE__, __LINE__, $db->error()); $db->drop_field('groups', 'g_up_limit') or error('Unable to drop g_up_limit field', __FILE__, __LINE__, $db->error()); $db->add_field('groups', 'g_up_ext', 'VARCHAR(255)', false, PLUGIN_EXTS) or error(sprintf($lang_up['Error DB'], 'groups'), __FILE__, __LINE__, $db->error()); $db->add_field('groups', 'g_up_max', 'INT(10)', false, 0) or error(sprintf($lang_up['Error DB'], 'groups'), __FILE__, __LINE__, $db->error()); $db->add_field('groups', 'g_up_limit', 'INT(10)', false, 0) or error(sprintf($lang_up['Error DB'], 'groups'), __FILE__, __LINE__, $db->error()); foreach ($data_grs as $g_id => $cur_group) { $db->query('UPDATE ' . $db->prefix . 'groups SET g_up_ext=\'' . $db->escape($cur_group['g_up_ext']) . '\', g_up_limit=' . $cur_group['g_up_limit'] . ', g_up_max=' . $cur_group['g_up_max'] . ' WHERE g_id=' . $g_id) or error('Unable to update user group list', __FILE__, __LINE__, $db->error()); } $db->add_field('users', 'upload_size', 'INT(10)', false, 0) or error(sprintf($lang_up['Error DB'], 'users'), __FILE__, __LINE__, $db->error()); if (isset($pun_user['upload'])) { $db->query('UPDATE ' . $db->prefix . 'users SET upload_size=ROUND(upload/10485.76)') or error('Unable to update upload size of users', __FILE__, __LINE__, $db->error()); } $db->drop_field('users', 'upload') or error('Unable to drop upload field', __FILE__, __LINE__, $db->error()); } // Установка плагина/мода if (isset($_POST['installation'])) { $db->add_field('users', 'upload_size', 'INT(10)', false, 0) or error(sprintf($lang_up['Error DB'], 'users'), __FILE__, __LINE__, $db->error()); $db->add_field('groups', 'g_up_ext', 'VARCHAR(255)', false, PLUGIN_EXTS) or error(sprintf($lang_up['Error DB'], 'groups'), __FILE__, __LINE__, $db->error()); $db->add_field('groups', 'g_up_max', 'INT(10)', false, 0) or error(sprintf($lang_up['Error DB'], 'groups'), __FILE__, __LINE__, $db->error()); $db->add_field('groups', 'g_up_limit', 'INT(10)', false, 0) or error(sprintf($lang_up['Error DB'], 'groups'), __FILE__, __LINE__, $db->error()); $adm_max = (int) (min($upf_class->size(ini_get('upload_max_filesize')), $upf_class->size(ini_get('post_max_size'))) / 10485.76); $db->query('UPDATE ' . $db->prefix . 'groups SET g_up_ext=\'' . $db->escape(PLUGIN_EXTS) . '\', g_up_limit=1024, g_up_max=' . $adm_max . ' WHERE g_id=' . PUN_ADMIN) or error('Unable to update user group list', __FILE__, __LINE__, $db->error()); $db->query('DELETE FROM ' . $db->prefix . 'config WHERE conf_name=\'o_upload_config\'') or error('Unable to remove config entries', __FILE__, __LINE__, $db->error());; $db->query('INSERT INTO ' . $db->prefix . 'config (conf_name, conf_value) VALUES(\'o_upload_config\', \'' . $db->escape(serialize($sconf)) . '\')') or error($lang_up['Error DB ins-up'], __FILE__, __LINE__, $db->error()); if (! defined('FORUM_CACHE_FUNCTIONS_LOADED')) { require PUN_ROOT . 'include/cache.php'; } generate_config_cache(); redirect(PLUGIN_URL, $lang_up['Redirect']); } // Обновления параметров else if (isset($_POST['update'])) { $g_up_ext = isset($_POST['g_up_ext']) ? array_map('pun_trim', $_POST['g_up_ext']) : []; $g_up_max = isset($_POST['g_up_max']) ? array_map('floatval', $_POST['g_up_max']) : []; $g_up_limit = isset($_POST['g_up_limit']) ? array_map('intval', $_POST['g_up_limit']) : []; if (empty($g_up_limit)) { $g_up_limit[PUN_ADMIN] = 1024; $g_up_max[PUN_ADMIN] = 1024; } $result = $db->query('SELECT g_id FROM ' . $db->prefix . 'groups ORDER BY g_id') or error('Unable to fetch user group list', __FILE__, __LINE__, $db->error()); while ($cur_group = $db->fetch_assoc($result)) { if ($cur_group['g_id'] == PUN_GUEST) { continue; } if (isset($g_up_ext[$cur_group['g_id']])) { $g_ext = str_replace(' ', '', $g_up_ext[$cur_group['g_id']]); $g_ext = preg_replace('%[,]+%u', ',', $g_ext); if (preg_match('%^[0-9a-zA-Z][0-9a-zA-Z,]*[0-9a-zA-Z]$%uD', $g_ext) == 0) { $g_ext = PLUGIN_EXTS; } $g_ext = strtolower($g_ext); } else { $g_ext = PLUGIN_EXTS; } $g_max = (! isset($g_up_max[$cur_group['g_id']]) || $g_up_max[$cur_group['g_id']] < 0) ? 0 : $g_up_max[$cur_group['g_id']]; $g_max = (int) (100 * min($g_max, $upf_class->size(ini_get('upload_max_filesize')) / 1048576, $upf_class->size(ini_get('post_max_size')) / 1048576)); $g_lim = (! isset($g_up_limit[$cur_group['g_id']]) || $g_up_limit[$cur_group['g_id']] < 0) ? 0 : $g_up_limit[$cur_group['g_id']]; $g_lim = min($g_lim, 20971520); $db->query('UPDATE ' . $db->prefix . 'groups SET g_up_ext=\'' . $db->escape($g_ext) . '\', g_up_limit=' . $g_lim . ', g_up_max=' . $g_max . ' WHERE g_id=' . $cur_group['g_id']) or error('Unable to update user group list', __FILE__, __LINE__, $db->error()); } if (isset($_POST['thumb'])) { $sconf['thumb'] = $_POST['thumb'] == '1' ? 1 : 0; } if (isset($_POST['thumb_size']) && $_POST['thumb_size'] > 0) { $sconf['thumb_size'] = (int) $_POST['thumb_size']; } if (isset($_POST['thumb_perc']) && $_POST['thumb_perc'] > 0 && $_POST['thumb_perc'] <= 100) { $sconf['thumb_perc'] = (int) $_POST['thumb_perc']; } if (isset($_POST['pic_mass']) && $_POST['pic_mass'] >= 0) { $sconf['pic_mass'] = (int) $_POST['pic_mass']; } if (isset($_POST['pic_perc']) && $_POST['pic_perc'] > 0 && $_POST['pic_perc'] <= 100) { $sconf['pic_perc'] = (int) $_POST['pic_perc']; } if (isset($_POST['pic_w']) && $_POST['pic_w'] >= 100) { $sconf['pic_w'] = (int) $_POST['pic_w']; } if (isset($_POST['pic_h']) && $_POST['pic_h'] >= 100) { $sconf['pic_h'] = (int) $_POST['pic_h']; } $db->query('DELETE FROM ' . $db->prefix . 'config WHERE conf_name=\'o_upload_config\'') or error('Unable to remove config entries', __FILE__, __LINE__, $db->error());; $db->query('INSERT INTO ' . $db->prefix . 'config (conf_name, conf_value) VALUES(\'o_upload_config\', \'' . $db->escape(serialize($sconf)) . '\')') or error($lang_up['Error DB ins-up'], __FILE__, __LINE__, $db->error()); if (! defined('FORUM_CACHE_FUNCTIONS_LOADED')) { require PUN_ROOT . 'include/cache.php'; } generate_config_cache(); redirect(PLUGIN_URL, $lang_up['Redirect']); } // Удаление мода else if (isset($_POST['restore'])) { $db->drop_field('users', 'upload_size') or error('Unable to drop upload field', __FILE__, __LINE__, $db->error()); $db->drop_field('groups', 'g_up_ext') or error('Unable to drop g_up_ext field', __FILE__, __LINE__, $db->error()); $db->drop_field('groups', 'g_up_max') or error('Unable to drop g_up_max field', __FILE__, __LINE__, $db->error()); $db->drop_field('groups', 'g_up_limit') or error('Unable to drop g_up_limit field', __FILE__, __LINE__, $db->error()); $db->query('DELETE FROM ' . $db->prefix . 'config WHERE conf_name=\'o_upload_config\'') or error('Unable to remove config entries', __FILE__, __LINE__, $db->error());; if (! defined('FORUM_CACHE_FUNCTIONS_LOADED')) { require PUN_ROOT . 'include/cache.php'; } generate_config_cache(); redirect(PLUGIN_URL, $lang_up['Redirect']); } if (isset($pun_config['o_upload_config'])) { $aconf = unserialize($pun_config['o_upload_config']); } else { $aconf = $sconf; $aconf['thumb'] = 0; define('PLUGIN_OFF', 1); } $upf_mem = 'img/members/'; $upf_regx = '%^img/members/(\d+)/([\w-]+)\.(\w+)$%iD'; // ############################################################################# // Удаление файлов if (isset($_POST['delete'], $_POST['delete_f']) && is_array($_POST['delete_f'])) { $error = false; if (is_dir(PUN_ROOT . $upf_mem)) { $au = []; foreach ($_POST['delete_f'] as $file) { if ( preg_match($upf_regx, $file, $matches) && false === $upf_class->inBlackList($matches[3]) && 'mini_' !== substr($matches[2], 0, 5) && is_file(PUN_ROOT . $file) ) { if (unlink(PUN_ROOT . $file)) { $id = (int) $matches[1]; $au[$id] = $id; if (is_file(PUN_ROOT . $upf_mem . $matches[1] . '/mini_' . $matches[2] . '.' . $matches[3])) { unlink(PUN_ROOT . $upf_mem . $matches[1] . '/mini_' . $matches[2] . '.' . $matches[3]); } } else { $error = true; } } else { $error = true; } } if (! defined('PLUGIN_OFF')) { foreach ($au as $user) { // Считаем общий размер файлов юзера $upload = (int) ($upf_class->dirSize(PUN_ROOT . $upf_mem . $user . '/') / 10485.76); $db->query('UPDATE ' . $db->prefix . 'users SET upload_size=\'' . $upload . '\' WHERE id=' . $user) or error($lang_up['Error DB ins-up'], __FILE__, __LINE__, $db->error()); } } } $p = empty($_GET['p']) || $_GET['p'] < 1 ? 1 : (int) $_GET['p']; if ($error) { if ($pun_config['o_redirect_delay'] < 5) { $pun_config['o_redirect_delay'] = 5; } redirect(PLUGIN_URL . ($p > 1 ? '&p=' . $p : ''), $lang_up['Error'] . $lang_up['Error delete']); } else { redirect(PLUGIN_URL . ($p > 1 ? '&p=' . $p : ''), $lang_up['Redirect delete']); } } if (file_exists(PUN_ROOT . 'style/' . $pun_user['style'] . '/upfiles.css')) { $s = ''; } else { $s = ''; } $tpl_main = str_replace('', $s . "\n", $tpl_main); // Display the admin navigation menu generate_admin_menu($plugin); $tabindex = 1; $upf_token = function_exists('csrf_hash') ? csrf_hash('AP_Upload.php') : pun_csrf_token(); ?>
= $lang_up['plugin_desc'] ?>
= $lang_up['No upfiles'] ?>
= $paging_links ?>
= $paging_links ?>