Файл: CMS/core/modules/users_files.inc.php
Строк: 188
<?php
if (!defined('CMS')) { die('Access Denied!'); }
$data = array();
$data = $db->selectRow("SELECT * FROM ?_users WHERE LOWER(`users_login`) = ? LIMIT 1;", cms_tolower($uz));
if (empty($data) || !is_array($data)) {
$inSes->addMessage('Ошибка! Пользователь с данным логином не найден!');
redirect($config['site_url']);
}
if ($data['users_ban'] == 1) {
$inSes->addMessage('Ошибка! Пользователь заблокирован!');
redirect($config['site_url']);
}
if ($config['allow_regkeys'] > 0 && $data['users_confirmreg'] > 0) {
$inSes->addMessage('Ошибка! Пользователя не существует!');
redirect($config['site_url']);
}
$error = '';
$select_files = false;
# Функция вывода обраных ссылок
function show_back_link($arr = '', $user = '', $del = ' -> ') {
global $db;
$rows = $db->select("SELECT `cats_id`, `cats_name`, `cats_parent` FROM ?_downs_category
WHERE `cats_user` = ?
ORDER BY `cats_order` ASC;", $user);
$cats_names = array();
if (!empty($rows) && count($rows) > 0) {
foreach($rows as $row) {
$cats_names[$row['cats_id']] = $row['cats_name'];
}
}
$exp = explode(',', $arr);
$exp = array_unique($exp);
$show = array();
if (!empty($exp) && count($exp) > 0) {
foreach($exp as $key => $val) {
if (!empty($cats_names[$val])) {
$show[] = '<a href="' . gen_uri('files', $val, RND) . '">' .$cats_names[$val] . '</a>';
}
}
}
return icon('return.png') . implode($del, $show);
}
# Функция проверки пароля
function show_auth_form($idk = '', $pass = '') {
if (!empty($_POST['pass']) && $_POST['pass'] == $pass) {
$_SESSION[SP]['hidden'][$idk] = md5($pass);
}
else if (empty($_SESSION[SP]['hidden'][$idk]) || md5($pass) <> $_SESSION[SP]['hidden'][$idk]) {
$form = new cmsForm();
$form->addCode(blink('Внимание!') . ' Доступ только по паролю<br />');
$form->addText('Ваш пароль:','pass');
echo $form->Submit('Ок');
show_footer();
exit();
}
}
# Функция проверки возраста 18+
function show_xxx_form($back_id = '') {
global $id, $config;
if (empty($_SESSION['xxx']) || !isset($_SESSION['xxx'])) {
if (!empty($_POST['xxx_code']) && $_POST['xxx_code'] == $_SESSION['captcha_key']) {
$_SESSION['xxx'] = $_POST['xxx_code'];
}
else {
$config['load_warning'] = str_replace('{SITE_NAME}', $config['site_name'], $config['load_warning']);
$form = new cmsForm();
$form->addCaptcha($config['load_warning'],'xxx_code');
echo $form->Submit('согласен');
echo '<div class="b">';
echo icon('return.png') . ' <a href="' . gen_uri('files', $back_id, RND) . '">Назад</a><br />';
echo '</div>';
show_footer();
die;
}
}
}
# Функция кэширования уменьшенных изображений
function resize_screen($dir, $name, $size = '', $alt = '') {
global $config;
$name = str_replace(' ', '%20', $name);
if ( @file_exists( ROOTPATH . DS . $dir . $name ) ) {
$sign = !empty($alt) ? $alt : $name;
$prename = 'small_';
$imgsize = @getimagesize( ROOTPATH . DS . $dir . $name );
if ($imgsize[0] <= $size && $imgsize[1] <= $size) {
return '<img src="' . $config['site_url'] . DS . $dir . $name . '" alt="' . $sign . '" />';
}
if (!file_exists(ROOTPATH . DS . $dir . $prename) || filesize(ROOTPATH . DS . $dir . $prename) < 18) {
include_once( ENGINE . '/classes/upload.class.php' );
$handle = new upload(ROOTPATH . DS . $dir . $name);
if ($handle -> uploaded) {
$handle -> file_name_body_pre = $prename;
$handle -> image_resize = true;
$handle -> image_ratio = true;
$handle -> image_ratio_no_zoom_in = true;
$handle -> image_y = $size;
$handle -> image_x = $size;
$handle -> file_overwrite = true;
$handle -> process(ROOTPATH . DS . $dir);
}
}
return '<img src="' . $config['site_url'] . DS . $dir . $prename . $name . '" alt="' . $sign . '" />';
}
$param = ($size < 100) ? ' height="' . $size . '" width="' . $size . '"' : '';
return '<img src="' . $config['site_url'] . '/images/no_photos_small.png" alt=""' . $param . ' />';
}
# Функция удаление картинки с проверкой
function unlink_screen($dir, $image = '') {
if (!empty($image)) {
clearstatcache();
$small = 'small_' . $image;
if ( @file_exists( $dir . $image ) ) {
unlink( $dir . $image );
}
if ( @file_exists( $dir . $small ) ) {
unlink( $dir . $small );
}
}
}
# Функция пересчета файлов у юзера
function rest_files($login = '') {
global $db;
$db->query("UPDATE ?_downs_category SET `cats_count` = (SELECT COUNT(*) FROM ?_downs
WHERE ?_downs_category.`cats_id` = ?_downs.`downs_user_cat` AND ?_downs_category.`cats_user` = ?);", $login);
$rows = $db->select("SELECT * FROM ?_downs_category WHERE `cats_user` = ? AND `cats_count` > '0'", $login);
$arrs = array();
foreach($rows as $row) {
if (!empty($row['cats_parent_all'])) {
$exp = explode(',', $row['cats_parent_all']);
if (!empty($exp)) {
for($i = 0; $i < count($exp); $i++) {
if (empty($exp[$i])) continue;
$key = !empty($exp[$i]) ? num($exp[$i]) : 0;
@$arrs[$key] += !empty($row['cats_count']) ? num($row['cats_count']) : 0;
}
}
}
}
if (!empty($arrs)) {
foreach($arrs as $key => $count) {
$db->query("UPDATE ?_downs_category SET `cats_count` = ? WHERE `cats_id` = ?", $count, $key);
}
}
}
# Действия пользователя
if ($is_logged) {
if ($data['users_login'] == $log) {
if (!empty($_REQUEST['act']) && $_REQUEST['act'] == 'mm') {
if (!empty($_REQUEST['move'])) {
$_SESSION[SP][$log]['move'] = intar($_REQUEST['move']);
}
else $select_files = true;
}
if (!empty($_REQUEST['act']) && $_REQUEST['act'] == 'cancel') {
unset($_SESSION[SP][$log]['move']);
}
if (!empty($_REQUEST['act']) && $_REQUEST['act'] == 'selmove') {
if (!empty($_SESSION[SP][$log]['move'])) {
if (!is_array($_SESSION[SP][$log]['move'])) {
$move_id = num($_SESSION[SP][$log]['move']);
if (!empty($_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {
$row = array();
$row = $db->selectRow("SELECT ?_downs.*, ?_downs_category.*
FROM ?_downs LEFT JOIN ?_downs_category
ON ?_downs.`downs_user_cat` = ?_downs_category.`cats_id`
WHERE `downs_user` = ? AND `downs_id` = ? LIMIT 1;", $log, $move_id);
if (!empty($row)) {
$dirs = $db->selectRow("SELECT * FROM ?_downs_category WHERE `cats_user` = ? AND `cats_id` = ? LIMIT 1;", $log, $id);
if (!empty($dirs)) {
$db->query("UPDATE ?_downs SET `downs_user_cat` = ? WHERE `downs_user` = ? AND `downs_id` = ?", $id, $log, $move_id);
rest_files($log);
unset($_SESSION[SP][$log]['move']);
$inSes->addMessage('Файл успешно перемещен!', 'ok');
gen_red('files', $id, RND);
}
else $error = 'Ошибка! Папка для перемещения не найдена!';
}
else $error = 'Ошибка! Запрашиваемый файл не найден!';
}
else $error = 'Ошибка! Неверный идентификатор сессии, повторите действие!';
}
else { // ARRAY
$count = count($_SESSION[SP][$log]['move']);
$arrmove = implode(',',$_SESSION[SP][$log]['move']);
if (!empty($_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {
$row = array();
$row = $db->selectRow("SELECT ?_downs.*, ?_downs_category.*
FROM ?_downs LEFT JOIN ?_downs_category
ON ?_downs.`downs_user_cat` = ?_downs_category.`cats_id`
WHERE `downs_user` = ? AND `downs_id` IN(" . $arrmove . ") LIMIT 1;", $log);
if (!empty($row)) {
$dirs = $db->selectRow("SELECT * FROM ?_downs_category WHERE `cats_user` = ? AND `cats_id` = ? LIMIT 1;", $log, $id);
if (!empty($dirs)) {
$db->query("UPDATE ?_downs SET `downs_user_cat` = ?
WHERE `downs_user` = ? AND `downs_id` IN(" . $arrmove . ");", $id, $log);
rest_files($log);
unset($_SESSION[SP][$log]['move']);
$inSes->addMessage('Файлы успешно перемещены!', 'ok');
gen_red('files', $id, RND);
}
else $error = 'Ошибка! Папка для перемещения не найдена!';
}
else $error = 'Ошибка! Запрашиваемые файлы не найдены!';
}
else $error = 'Ошибка! Неверный идентификатор сессии, повторите действие!';
}
}
else $error = 'Ошибка! Вы не выбрали файл или файлы!';
if (!empty($error)) {
unset($_SESSION[SP][$log]['move']);
$inSes->addMessage($error);
}
}
}
}
?>