(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(); ?>

Plugin Upload Files v.

 

isResize()) ? '' : '" disabled="disabled'; $stthumb = ('' === $disbl && 1 == $aconf['thumb']) ? '' : '" disabled="disabled'; ?>  
 

getLibVersion()) ?>
 
 *   %
 *   x  
/>     />
 *   
 *   %

1* -

2* -

3* -

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) { if (! isset($cur_group['g_up_ext'])) { $cur_group['g_up_max'] = $cur_group['g_up_limit'] = 0; $cur_group['g_up_ext'] = ''; } ?>
1* 2* 3*

inBlackList(substr(strrchr($file, '.'), 1)) || ! is_file(PUN_ROOT . $dir . $file) ) { continue; } $time = filemtime(PUN_ROOT . $dir . $file) . $file . $f; $af[$time] = $dir . $file; } closedir($open); } unset($ad); if (! empty($af)) { $num_pages = ceil(count($af) / PLUGIN_NF); $p = (empty($_GET['p']) || $_GET['p'] < 1) ? 1 : (int) $_GET['p']; if ($p > $num_pages) { header('Location: ' . PLUGIN_URL . '&p=' . $num_pages . '#gofile'); exit; } $start_from = PLUGIN_NF * ($p - 1); // Generate paging links $paging_links = '' . $lang_common['Pages'] . ' ' . paginate($num_pages, $p, PLUGIN_URL); $paging_links = preg_replace('%href="([^">]+)"%', 'href="$1#gofile"', $paging_links); krsort($af); $files = array_slice($af, $start_from, PLUGIN_NF); unset($af); } } ?>

query('SELECT id, username, group_id FROM ' . $db->prefix . 'users WHERE id IN(' . implode(',', $au) . ')') or error('Unable to fetch user information', __FILE__, __LINE__, $db->error()); $au = $ag = []; while ($u = $db->fetch_assoc($result)) { $au[$u['id']] = $u['username']; $ag[$u['id']] = $u['group_id']; } $db->free_result($result); // данные по группам $extsup = []; $result = $db->query('SELECT * FROM ' . $db->prefix . 'groups') or error('Unable to fetch user group list', __FILE__, __LINE__, $db->error()); while ($g = $db->fetch_assoc($result)) { if (isset($g['g_up_ext'])) { $extsup[$g['g_id']] = explode(',', $g['g_up_ext'] . ',' . strtoupper($g['g_up_ext'])); } else { $extsup[$g['g_id']] = []; } } $db->free_result($result); $upf_img_exts = ['jpg', 'jpeg', 'gif', 'png', 'bmp', 'webp']; foreach ($files as $file) { if (! preg_match($upf_regx, $file, $fi)) { continue; } $fancybox = in_array(strtolower($fi[3]), $upf_img_exts) ? '" class="fancy_zoom" rel="vi001' : ''; $dir = $upf_mem . $fi[1] . '/'; $size_file = file_size(filesize(PUN_ROOT . $file)); $miniature = $dir . 'mini_' . $fi[2] . '.' . $fi[3]; if ( isset($_POST['update_thumb']) && 1 == $aconf['thumb'] && true === $upf_class->loadFile(PUN_ROOT . $file) && true === $upf_class->isImage() && false !== $upf_class->loadImage() ) { $upf_class->setImageQuality($aconf['thumb_perc']); $scaleResize = $upf_class->resizeImage(null, $aconf['thumb_size']); if (false !== $scaleResize) { if ($scaleResize < 1) { $upf_class->saveImage(PUN_ROOT . $miniature, true); } else { copy(PUN_ROOT . $file, PUN_ROOT . $miniature); chmod(PUN_ROOT . $miniature, 0644); } } } ?>
[].[' . pun_htmlspecialchars($fi[3]) . '') ?>] <?= pun_htmlspecialchars($fi[2]) ?>