Вход Регистрация
Файл: CMS/core/admin/loads.inc.php
Строк: 297
<?php

if (!defined('CMS')) { die('Access Denied!'); }

    if (!empty(
$_POST['add_dir_one'])) { // Создание папки

      
if (is_admin(array(101))) {

        if (!empty(
$_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {

          
$name   = !empty($_POST['name'])   ? check($_POST['name'])  : '';
          
$about  = !empty($_POST['about'])  ? check($_POST['about']) : '';
          
$types  = !empty($_POST['types'])  ? str_replace(' '''check(trim($types))) : '';
          
$upload = !empty($_POST['upload']) ? 1  0;

          
$parrent     = !empty($_POST['parrent']) ? num($_POST['parrent'])  : 0;
          
$parrent_all = !empty($_POST['parrent_all']) ? check($_POST['parrent_all']) : '0';


          if (
cms_strlen($name) >= && cms_strlen($name) < 100) {

              
$maxorder = (int) $db->selectCell("SELECT IFNULL(MAX(`cats_order`),0)+1 FROM ?_downs_category;");

              
$last_id  = (int) $db->query("INSERT INTO ?_downs_category SET `cats_order` = ?, `cats_parent` = ?, `cats_name` = ?, `cats_about` = ?, `cats_ext` = ?, `cats_upload` = ?"$maxorder$parrent$name$about$types$upload);

              if (
$last_id 0) {

                  if (
$parrent_all == 0) {

                      
$db->query("UPDATE ?_downs_category SET `cats_parent_all` = ? WHERE `cats_id` = ?"$last_id$last_id);
                  }
                  else {

                      
$db->query("UPDATE ?_downs_category SET `cats_parent_all` = ? WHERE `cats_id` = ?"$parrent_all ',' $last_id$last_id);
                  }

                  
del_vars('loads_categories');
                  
del_vars('loads_cats_names');

                  
$inSes->addMessage('Папка успешно добавлена!''ok');
              }
              else 
$inSes->addMessage('Ошибка! Не удалось создать папку!');

              
redirect($_SERVER['REQUEST_URI']);

          }
          else 
$inSes->addMessage('Ошибка! Слишком длинное или короткое название раздела!');
        }
        else 
$inSes->addMessage('Неверный идентификатор сессии, повторите действие!');
      }
      else 
$inSes->addMessage('Ошибка! Добавлять разделы могут только суперадмины!');
    }

    if (!empty(
$_POST['edit_dir_one'])) { // Редактирование папки

      
if (is_admin(array(101))) {

        if (!empty(
$_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {

          
$name   = !empty($_POST['name'])   ? check($_POST['name'])  : '';
          
$about  = !empty($_POST['about'])  ? check($_POST['about']) : '';
          
$types  = !empty($_POST['types'])  ? check($_POST['types']) : '';
          
$upload = !empty($_POST['upload']) ? 1  0;

          if (
cms_strlen($name) >= && cms_strlen($name) < 100) {

            
$row '';
            
$row $db->selectRow("SELECT * FROM ?_downs_category WHERE `cats_id` = ?"$id);

            if (!empty(
$row)) {

                
$db->query("UPDATE ?_downs_category SET `cats_name` = ?, `cats_about` = ?, `cats_ext` = ?, `cats_upload` = ? 
                            WHERE `cats_id` = ?"
$name$about$types$upload$id);

                
del_vars('loads_categories');
                
del_vars('loads_cats_names');

                
$inSes->addMessage('Раздел успешно отредактирован!''ok');
            }
            else 
$inSes->addMessage('Ошибка! Категория не найдена!');
          }
          else 
$inSes->addMessage('Ошибка! Слишком длинное или короткое название раздела!');
        }
        else 
$inSes->addMessage('Неверный идентификатор сессии, повторите действие!');
      }
      else 
$inSes->addMessage('Ошибка! Редактировать разделы могут только суперадмины!');

      
redirect($_SERVER['REQUEST_URI']);
    }

    if (!empty(
$_GET['restatement'])) { // Пересчёт

      
if (is_admin(array(101))) {

        if (!empty(
$_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {

            
$db->query("UPDATE ?_downs SET `downs_comments` = (SELECT COUNT(*) FROM ?_comments 
                        WHERE ?_downs.`downs_id` = ?_comments.`comm_post` AND ?_comments.`comm_type` = 'load');"
);

            
$db->query("UPDATE ?_downs_category SET `cats_count` = (SELECT COUNT(*) FROM ?_downs 
                        WHERE ?_downs_category.`cats_id` = ?_downs.`downs_cats_id`);"
);

            
$rows $db->select("SELECT * FROM ?_downs_category WHERE `cats_upload` = '1' AND `cats_count` > '0'");
            
$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);
                }
            }

            
del_vars('loads_categories');
            
del_vars('loads_cats_names');

            
$inSes->addMessage('Все данные успешно пересчитаны!''ok');

            
redirect('?m=load&' RND);
        }
        else 
$inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
      }
      else 
$inSes->addMessage('Ошибка! Пересчитывать сообщения могут только суперадмины!');
    }

    if (!empty(
$_GET['up'])) { // Перемещение на одну позицию вверх

        
$up num($_GET['up']);

        
$row $db->selectRow("SELECT * FROM ?_downs_category WHERE `cats_id` = ?"$up);

        if (!empty(
$row)) {

            
$rows $db->selectRow("SELECT * FROM ?_downs_category 
                                    WHERE `cats_parent` = ? AND `cats_order` < ?
                                    ORDER BY `cats_order` DESC LIMIT 1"
$row['cats_parent'], $row['cats_order']);
            if (!empty(
$rows)) {

                
$db->query("UPDATE ?_downs_category SET `cats_order` = ? WHERE `cats_id` = ?"$rows['cats_order'], $up);
                
$db->query("UPDATE ?_downs_category SET `cats_order` = ? WHERE `cats_id` = ?"$row['cats_order'], $rows['cats_id']);

            }
            else 
$inSes->addMessage('Выше некуда!''info');

            unset(
$up,$row,$rows);
        }
    }


    if (!empty(
$_GET['down'])) { // Перемещение на одну позицию вниз

        
$down num($_GET['down']);

        
$row  $db->selectRow("SELECT * FROM ?_downs_category WHERE `cats_id` = ?"$down);

        if (!empty(
$row)) {

            
$rows $db->selectRow("SELECT * FROM ?_downs_category 
                                    WHERE `cats_parent` = ? AND `cats_order` > ?
                                    ORDER BY `cats_order` ASC LIMIT 1"
$row['cats_parent'], $row['cats_order']);
            if (!empty(
$rows)) {

                
$db->query("UPDATE ?_downs_category SET `cats_order` = ? WHERE `cats_id` = ?"$rows['cats_order'], $down);
                
$db->query("UPDATE ?_downs_category SET `cats_order` = ? WHERE `cats_id` = ?"$row['cats_order'], $rows['cats_id']);

            }
            else 
$inSes->addMessage('Ниже некуда!''info');

            unset(
$down,$row,$rows);
        }
    }

    
$select_files false// Перемещение файлов

    
if (!empty($_REQUEST['act']) && $_REQUEST['act'] == 'mm') {

      if (!empty(
$_REQUEST['move'])) {

        
$_SESSION[SP]['move'] = intar($_REQUEST['move']);
      }
      else 
$select_files true;
    }

    if (!empty(
$_REQUEST['act']) && $_REQUEST['act'] == 'cancel') {

        unset(
$_SESSION[SP]['move']);
    }

    if (!empty(
$_REQUEST['act']) && $_REQUEST['act'] == 'selmove') {

        if (!empty(
$_SESSION[SP]['move'])) {

            if (!
is_array($_SESSION[SP]['move'])) {

                
$move_id num($_SESSION[SP]['move']);

                if (!empty(
$_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {

                    
$row '';
                    
$row $db->selectRow("SELECT ?_downs.*, ?_downs_category.*
                                           FROM ?_downs LEFT JOIN ?_downs_category 
                                           ON ?_downs.`downs_cats_id` = ?_downs_category.`cats_id` 
                                           WHERE `downs_id` = ? LIMIT 1;"
$move_id);

                    if (!empty(
$row)) {

                        
$dirs $db->selectRow("SELECT * FROM ?_downs_category WHERE `cats_id` = ? LIMIT 1;"$id);

                        if (!empty(
$dirs)) {

                            
$row['cats_parent_all'] = !empty($row['cats_parent_all']) ? $row['cats_parent_all'] : '';

                            
$db->query("UPDATE ?_downs_category SET `cats_count` = (`cats_count` - 1) 
                                        WHERE `cats_id` IN(" 
$row['cats_parent_all'] . ");");

                            
$db->query("UPDATE ?_downs_category SET `cats_count` = (`cats_count` + 1) 
                                        WHERE `cats_id` IN(" 
$dirs['cats_parent_all'] . ");");

                            
$db->query("UPDATE ?_downs SET `downs_cats_id` = ? WHERE `downs_id` = ?"$id$move_id);

                            unset(
$_SESSION[SP]['move']);

                            
$inSes->addMessage('Файл успешно перемещен!''ok');

                            
//gen_red('files', $id, RND);
                        
}
                        else 
$error 'Ошибка! Папка для перемещения не найдена!';
                    }
                    else 
$error 'Ошибка! Запрашиваемый файл не найден!';
                }
                else 
$error 'Ошибка! Неверный идентификатор сессии, повторите действие!';

            }
            else { 
// ARRAY

                
$arrmove implode(',',$_SESSION[SP]['move']);

                
$count   count($_SESSION[SP]['move']);

                if (!empty(
$_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {

                    
$row '';
                    
$row $db->selectRow("SELECT ?_downs.*, ?_downs_category.*
                                           FROM ?_downs LEFT JOIN ?_downs_category 
                                           ON ?_downs.`downs_cats_id` = ?_downs_category.`cats_id` 
                                           WHERE `downs_id` IN(" 
$arrmove ") LIMIT 1;");
                    if (!empty(
$row)) {

                        
$dirs $db->selectRow("SELECT * FROM ?_downs_category WHERE `cats_id` = ? LIMIT 1;"$id);

                        if (!empty(
$dirs)) {

                            
$db->query("UPDATE ?_downs_category SET `cats_count` = (`cats_count` - ?) 
                                        WHERE `cats_id` IN(" 
$row['cats_parent_all'] . ");"$count);

                            
$db->query("UPDATE ?_downs_category SET `cats_count` = (`cats_count` + ?) 
                                        WHERE `cats_id` IN(" 
$dirs['cats_parent_all'] . ");"$count);

                            
$db->query("UPDATE ?_downs SET `downs_cats_id` = ? 
                                        WHERE `downs_id` IN(" 
$arrmove ");"$id);

                            unset(
$_SESSION[SP]['move']);

                            
$inSes->addMessage('Файлы успешно перемещены!''ok');

                            
//gen_red('files', $id, RND);
                        
}
                        else 
$error 'Ошибка! Папка для перемещения не найдена!';
                    }
                    else 
$error 'Ошибка! Запрашиваемые файлы не найдены!';
                }
                else 
$error 'Ошибка! Неверный идентификатор сессии, повторите действие!';
            }
        }
        else 
$error 'Ошибка! Вы не выбрали файл или файлы!';

        if (!empty(
$error)) {

            unset(
$_SESSION[SP]['move']);
            
$inSes->addMessage($error);
        }
    }

    if (!empty(
$_GET['del_file'])) { // Удаление файла у усера

        
if (!empty($_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {

            
$row '';
            
$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;"
request('uz'), request('del_file'));


            if (!empty(
$row) && is_array($row)) {

                if (!empty(
$row['cats_parent_all'])) {

                    
$db->query("UPDATE ?_downs_category SET `cats_count` = (`cats_count` - 1) 
                                WHERE `cats_user` = ? 
                                AND `cats_id` IN(" 
$row['cats_parent_all'] . ");"$row['downs_user']);

                    
$db->query("DELETE FROM ?_downs WHERE `downs_user` = ? AND `downs_id` = ?"$row['downs_user'], $row['downs_id']);

                    
$db->query("OPTIMIZE TABLE ?_downs, ?_downs_category;");

                    
deldir(ROOTPATH DS $config['files_folder'] . DS $row['downs_id'], 1);

                    
$inSes->addMessage('Файл успешно удалён!''ok');
                }
                else 
$inSes->addMessage('Ошибка! Подкатегория не найдена!');
            }
            else 
$inSes->addMessage('Ошибка! Файл не найден или ссылка неверна!');
        }
        else 
$inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
    }


    
# Кеширование категорий для обратных ссылок
    
$cats_names get_vars('loads_cats_names');

    if (!
$cats_names) {

        
$rows $db->select("SELECT `cats_id`, `cats_name`, `cats_parent` FROM ?_downs_category 
                             ORDER BY `cats_order` ASC;"
);

        
$cats_names = array();

        if (!empty(
$rows) && count($rows) > 0) {

            foreach(
$rows as $row) {
               
$cats_names[$row['cats_id']] = $row['cats_name'];
            }

            
set_vars('loads_cats_names'$cats_names);
        }
    }

# Функция кэширования уменьшенных изображений
function resize_screen($dir$name$size ''$alt '') {

    global 
$config;

    
$name str_replace(' ''%20'$name);

    if ( @
file_existsROOTPATH DS $dir $name ) ) {

        
$sign    = !empty($alt) ? $alt $name;
        
$prename 'small_';
        
$imgsize = @getimagesizeROOTPATH 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/img/photo.jpg" alt="nophoto"' $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 show_back_link($arr ''$del ' -&gt; ') {

    global 
$cats_names;

    
$exp explode(','$arr);

    
$show = array();

    
$show[] = '<a href="?m=load&amp;' RND '">Загрузки</a>';

    if (!empty(
$exp) && count($exp) > 0) {

        foreach(
$exp as $key => $val) {

            if (!empty(
$cats_names[$val])) {

                
$show[] = '<a href="?m=cats&amp;id=' $val '">' .$cats_names[$val] . '</a>';
            }
        }
    }

    return 
implode($del$show);
}
?>
Онлайн: 0
Реклама