Вход Регистрация
Файл: app/models/DownloadModel.php
Строк: 1460
<?php

class DownloadModel extends Base {

    function 
index($id) {
        if (!
$id) {
            
$count DB::run("SELECT COUNT(*) FROM `category` WHERE `refid`='0'")->fetchColumn();
            if (
$count 0) {
                
$req DB::run("SELECT `category`.*, (SELECT COUNT(1) FROM `files` WHERE `files`.`path` LIKE CONCAT(`category`.`path`, '%') AND `size` > '0' AND `id_file`='0') AS `count`,
                (SELECT COUNT(1) FROM `files` WHERE `files`.`path` LIKE CONCAT(`category`.`path`, '%') AND `size` > '0' AND `time` > '" 
intval(Cms::realtime() - Cms::setup('newfile')) . "' AND `id_file`='0') AS `countnew` FROM `category` WHERE `refid`='0' ORDER BY `realid` ASC LIMIT " $this->page ", " $this->message);
                while (
$row $req->fetch(PDO::FETCH_ASSOC)) {
                    
$arrayrow[] = $row;
                }
            }

            
SmartySingleton::instance()->assign(array(
                
'id' => $id,
                
'count' => $count,
                
'arrayrow' => $arrayrow,
                
'pagenav' => Functions::pagination(Cms::setup('home') . '/download?'$this->page$count$this->message)
            ));
        } else {
            
$count DB::run("SELECT COUNT(*) FROM `category` WHERE `refid`='" $id "'")->fetchColumn();
            if (
$count 0) {
                
$req DB::run("SELECT `category`.*, (SELECT COUNT(1) FROM `files` WHERE `files`.`path` LIKE CONCAT(`category`.`path`, '%') AND `size` > '0' AND `id_file`='0') AS `count`,
                (SELECT COUNT(1) FROM `files` WHERE `files`.`path` LIKE CONCAT(`category`.`path`, '%') AND `size` > '0' AND `time` > '" 
intval(Cms::realtime() - Cms::setup('newfile')) . "' AND `id_file`='0') AS `countnew` FROM `category` WHERE `refid`='" $id "' ORDER BY `realid` ASC LIMIT " $this->page ", " $this->message);
                while (
$row $req->fetch(PDO::FETCH_ASSOC)) {
                    
$arrayrow[] = $row;
                }
            }

            
$cat DB::run("SELECT * FROM `category` WHERE `id`='" $id "'")->fetch(PDO::FETCH_ASSOC);

            
//файлы
            
$count_files DB::run("SELECT COUNT(*) FROM `files` WHERE `refid`='" $id "'")->fetchColumn();
            if (
$count_files 0) {
                
$req_files DB::run("SELECT `files`.*, (SELECT COUNT(1) FROM `files_comments` WHERE `files_comments`.`id_file`=`files`.`id`) AS `comments` FROM `files` WHERE `refid`='" $id "' AND `id_file`='0' ORDER BY `id` DESC LIMIT " $this->page ", " $this->message);
                while (
$row_files $req_files->fetch(PDO::FETCH_ASSOC)) {
                    
$arrayrow_files[] = $row_files;
                }
            }

            
//обработка загрузки файла
            
if ($_POST['upload'] && $this->user['level'] > 40) {

                if (
mb_strlen(Cms::Input($_POST['names'])) > 250) {
                    
$error_file .= 'Недопустимая длина названия файла!<br/>';
                }

                if (
mb_strlen(Cms::Input($_POST['text'])) > 5000) {
                    
$error_file .= 'Недопустимая длина описания файла!<br/>';
                }

                
$do_filefile false;
                
// Проверка загрузки с обычного браузера
                
if ($_FILES['file']['size'] > 0) {
                    
$do_filefile true;
                    
$ifnamefile strtolower($_FILES['file']['name']);
                    
$originalfile $_FILES['file']['name'];
                    
$typ pathinfo($ifnamefilePATHINFO_EXTENSION);
                    
$rand rand(1111199999); //случайное число    
                    //Конечное имя файла для сохранения без расширения
                    
$fnamefile Functions::name_replace($ifnamefile);
                    
//Конечное имя файла для сохранения с расширением
                    
$ftp Functions::name_replace(Functions::truncate($ifnamefile200)) . '_' $rand '_' strtoupper(str_replace('http://'''Cms::setup('home'))) . '.' $typ;
                    
$fsizefile $_FILES['file']['size'];
                }

                if (
$do_filefile == null) {
                    
$error_file .= 'Вы не выбрали файл для загрузки!<br/>';
                }

                
//скриншот
                
$do_filescreen false;
                
// Проверка загрузки с обычного браузера
                
if ($_FILES['screen']['size'] > 0) {
                    
$do_filescreen true;
                    
$ifnamescreen strtolower($_FILES['screen']['name']);
                    
$typs pathinfo($ifnamescreenPATHINFO_EXTENSION);
                    
$fnamescreen Functions::passgen(25) . '.' $typs;
                }
                
//обработка файла
                
if ($do_filescreen) {
                    
// Список допустимых расширений файлов.
                    
$al_ext = array(
                        
'jpg',
                        
'jpeg',
                        
'gif',
                        
'png'
                    
);
                    
$ext explode("."$fnamescreen);
                    
// Проверка файла на наличие только одного расширения
                    
if (count($ext) != 2) {
                        
$error_file .= 'Запрещенный формат картинки скриншота!<br/>';
                    }
                    
// Проверка допустимых расширений файлов
                    
if (!in_array($ext[1], $al_ext)) {
                        
$error_file .= 'Не допустимый формат картинки скриншота!<br/>';
                    }
                }

                
$reg DB::run("select * from `files` where `file`='" $ftp "' AND `path`='" $cat['path'] . "'");
                if (
$reg->fetch(PDO::FETCH_NUM) != 0) {
                    
$error_file .= 'Файл с таким названием уже существует в папке ' $cat['name'] . '!<br/>';
                }

                if (!isset(
$error_file)) {
                    
//загружаем файл
                    
if ((move_uploaded_file($_FILES["file"]["tmp_name"], $cat['path'] . "" $ftp)) == true) {
                        if (
$typ == 'png' || $typ == 'jpg' || $typ == 'gif' || $typ == 'jpeg') {
                            
//создаем превьюшку к картинке и только к картинке
                            
$img = new SimpleImage();
                            
$img->load($cat['path'] . '' $ftp)->fit_to_width(Cms::setup('preview'))->save($cat['path'] . 'view_' $ftp);
                            
$img->load($cat['path'] . '' $ftp)->fit_to_width(Cms::setup('previewsmall'))->save($cat['path'] . 'small_' $ftp);
                            if (
Cms::setup('watermark') == 1) {
                                
Download::watermark($cat['path'] . 'view_' $ftp10);
                                
Download::watermark($cat['path'] . 'small_' $ftp3);
                            }
                        }

                        
//меняем id3-тег в звуковом файле
                        
if ($typ == 'mp3' || $typ == 'wav' || $typ == 'ogg' || $typ == 'amr') {
                            
$id3 = new MP3_Id();
                            
$id3->read($cat['path'] . '' $ftp);
                            
$id3->comment iconv('utf-8''windows-1251'strtoupper(str_replace('http://'''Cms::setup('home'))));
                            
$id3->write();
                        }

                        
//вытаскиваем иконку из jar файла
                        
if ($typ == 'jar') {
                            
$archive2 = new JarInfo($cat['path'] . '' $ftp);
                            
$archive2->getIcon($cat['path'] . '' $ftp '.icon.png');
                        }

                        
//создаем скрин для видео-файла
                        
if ($typ == 'mp4' || $typ == 'avi' || $typ == '3gp' || $typ == 'wmv') {
                            if (
Cms::setup('autoscreen_video') == && class_exists('ffmpeg_movie')) {
                                
Download::autoscreen_video($cat['path'] . '' $ftp$cat['path'] . '' $ftp '.GIF'640480);
                                
Download::autoscreen_video($cat['path'] . '' $ftp$cat['path'] . 'small_' $ftp '.GIF'Cms::setup('previewsmall'), Cms::setup('previewsmall2'));
                                if (
Cms::setup('watermark') == 1) {
                                    
Download::watermark($cat['path'] . '' $ftp '.GIF');
                                    
Download::watermark($cat['path'] . 'small_' $ftp '.GIF');
                                }
                            }
                        }

                        
//скриншот к темам формата nth
                        
if (Cms::setup('autoscreen_nth') == 1) {
                            if (
$typ == 'nth') {
                                
Download::autoscreen_nth($cat['path'] . '' $ftpCms::setup('previewsmall'), Cms::setup('previewsmall2'), $cat['path'] . '' $ftp '.GIF');
                            }
                        }
                        
//скриншот к темам формата thm
                        
if (Cms::setup('autoscreen_thm') == 1) {
                            if (
$typ == 'thm') {
                                
Download::autoscreen_thm($cat['path'] . '' $cat['file'], Cms::setup('previewsmall'), Cms::setup('previewsmall2'), $cat['path'] . '' $ftp '.GIF');
                            }
                        }

                        if (
$_POST['number'] == 1) {
                            
$originalfile preg_replace('/d/'''$originalfile);
                        }

                        if (
$_POST['simvol'] == 1) {
                            
$originalfile preg_replace('/[-`~!#$%^&*()_=+\\|\/\[\]{};:"',<>?]+/', '', $originalfile);
                        }

                        if (!empty($_POST['
names'])) {
                            DB::run("INSERT INTO `files` SET 
                                `id_user` = '" . 
$this->user['id'] . "', 
                                    `refid` = '" . 
$cat['id'] . "', 
                                        `name` = '" . Cms::Input(
$_POST['names']) . "', 
                                            `translate` = '" . Functions::name_replace(Cms::Input(
$_POST['names'])) . "', 
                                                `text` = '" . Cms::Input(
$_POST['text']) . "', 
                                                    `time` = '" . Cms::realtime() . "',
                                                        `file` = '" . 
$ftp . "', 
                                                            `type` = '" . 
$typ . "', 
                                                                `size` = '" . Functions::size(
$fsizefile) . "', 
                                                                    `path` = '" . 
$cat['path'] . "', 
                                                                        `infolder` = '" . 
$cat['infolder'] . "',
                                                                            `keywords` = '" . Cms::Input(
$_POST['keywords']) . "',
                                                                                `description` = '" . Cms::Input(
$_POST['description']) . "'");
                        } else {
                            DB::run("INSERT INTO `files` SET 
                                `id_user` = '" . 
$this->user['id'] . "',
                                    `refid` = '" . 
$cat['id'] . "', 
                                        `name` = '" . substr(Cms::Input(
$originalfile), 0, -4) . "', 
                                            `translate` = '" . substr(Cms::Input(
$fnamefile), 0, -3) . "', 
                                                `text` = '" . Cms::Input(
$_POST['text']) . "', 
                                                    `time` = '" . Cms::realtime() . "',
                                                        `file` = '" . 
$ftp . "', 
                                                            `type` = '" . 
$typ . "', 
                                                                `size` = '" . Functions::size(
$fsizefile) . "', 
                                                                    `path` = '" . 
$cat['path'] . "', 
                                                                        `infolder` = '" . 
$cat['infolder'] . "',
                                                                            `keywords` = '" . Cms::Input(
$_POST['keywords']) . "',
                                                                                `description` = '" . Cms::Input(
$_POST['description']) . "'");
                        }
                        $fid = DB::$pdo->lastInsertId();
                    }

                    //загружаем и обрабатываем скриншот
                    if ((move_uploaded_file($_FILES["screen"]["tmp_name"], $cat['
path'] . "" . $fnamescreen)) == true) {
                        $img = new SimpleImage();
                        $img->load($cat['
path'] . '' . $fnamescreen)->fit_to_width(Cms::setup('preview'))->save($cat['path'] . '' . $fnamescreen);
                        $img->load($cat['
path'] . '' . $fnamescreen)->fit_to_width(Cms::setup('previewsmall'))->save($cat['path'] . 'small_' . $fnamescreen);

                        if (Cms::setup('
watermark') == 1) {
                            Download::watermark($cat['
path'] . '' . $fnamescreen, 10);
                            Download::watermark($cat['
path'] . 'small_' . $fnamescreen, 3);
                        }

                        DB::run("UPDATE `files` SET `screen` = '" . 
$fnamescreen . "' WHERE `id` = '" . $fid . "'");
                    }

                    if (Cms::setup('
adminlogs') == 1) {
                        Cms::adminlogs('
ЗЦ', 'Добавление файла ' . Cms::Input($originalfile));
                    } //пишем лог админа, если включено
                    Functions::redirect('
/download/' . $id);
                }
            }

            //массовая загрузка файлов
            if ($_POST['
mass'] && $this->user['level'] > 40) {

                for ($i = 0; $i < count($_FILES['
file']['name']); $i++) {
                    $do_file = false;
                    // Проверка загрузки с обычного браузера
                    if ($_FILES['
file']['size'][$i] > 0) {
                        $do_file = true;
                        $ifnamefile = strtolower($_FILES['
file']['name'][$i]);
                        $typ = pathinfo($ifnamefile, PATHINFO_EXTENSION);
                        $rand = rand(11111, 99999); //случайное число    
                        //Конечное имя файла для сохранения без расширения
                        $fnamefile = Functions::name_replace($ifnamefile);
                        //Конечное имя файла для сохранения с расширением
                        $ftp = Functions::name_replace(Functions::truncate($ifnamefile, 200)) . '
_' . $rand . '_' . strtoupper(str_replace('http://', '', Cms::setup('home'))) . '.' . $typ;
                        
$fsizefile $_FILES['file']['size'][$i];
                    }

                    if (empty(
$do_file)) {
                        
$error_mass 'Вы должны выбрать минимум один файл!';
                    }

                    
$reg DB::run("select * from `files` where `file`='" $ftp "' AND `path`='" $cat['path'] . "'");
                    if (
$reg->fetch(PDO::FETCH_NUM) != 0) {
                        
$error_file 'Файл с таким названием уже существует в папке ' Functions::esc($cat['name']) . '!';
                    }
                }

                if (!isset(
$error_mass)) {
                    for (
$i 0$i count($_FILES['file']['name']); $i++) {
                        
$do_file false;
                        
// Проверка загрузки с обычного браузера
                        
if ($_FILES['file']['size'][$i] > 0) {
                            
$do_file true;
                            
$ifnamefile strtolower($_FILES['file']['name'][$i]);
                            
$originalfile $_FILES['file']['name'][$i];
                            
$typ pathinfo($ifnamefilePATHINFO_EXTENSION);
                            
$rand rand(1111199999); //случайное число    
                            //Конечное имя файла для сохранения без расширения
                            
$fnamefile Functions::name_replace($ifnamefile);
                            
//Конечное имя файла для сохранения с расширением
                            //$ftp = str_replace($typ, '', $ifnamefile);
                            
$ftp Functions::name_replace(Functions::truncate($ifnamefile200)) . '_' $rand '_' strtoupper(str_replace('http://'''Cms::setup('home'))) . '.' $typ;
                            
$fsizefile $_FILES['file']['size'][$i];
                        }
                        
//загружаем файл
                        
if ((move_uploaded_file($_FILES["file"]["tmp_name"][$i], $cat['path'] . "" $ftp)) == true) {
                            if (
$typ == 'png' || $typ == 'jpg' || $typ == 'gif' || $typ == 'jpeg') {
                                
//создаем превьюшку к картинке и только к картинке
                                
$img = new SimpleImage();
                                
$img->load($cat['path'] . '' $ftp)->fit_to_width(Cms::setup('preview'))->save($cat['path'] . 'view_' $ftp);
                                
$img->load($cat['path'] . '' $ftp)->fit_to_width(Cms::setup('previewsmall'))->save($cat['path'] . 'small_' $ftp);
                                if (
Cms::setup('watermark') == 1) {
                                    
Download::watermark($cat['path'] . 'view_' $ftp10);
                                    
Download::watermark($cat['path'] . 'small_' $ftp3);
                                }
                            }

                            
//меняем id3-тег в звуковом файле
                            
if ($typ == 'mp3' || $typ == 'wav' || $typ == 'ogg' || $typ == 'amr') {
                                
$id3 = new MP3_Id();
                                
$id3->read($cat['path'] . '' $ftp);
                                
$id3->comment iconv('utf-8''windows-1251'strtoupper(str_replace('http://'''Cms::setup('home'))));
                                
$id3->write();
                            }

                            
//вытаскиваем иконку из jar файла
                            
if ($typ == 'jar') {
                                
$archive2 = new JarInfo($cat['path'] . '' $ftp);
                                
$archive2->getIcon($cat['path'] . '' $ftp '.icon.png');
                            }

                            
//создаем скрин для видео-файла
                            
if ($typ == 'mp4' || $typ == 'avi' || $typ == '3gp' || $typ == 'wmv') {
                                if (
Cms::setup('autoscreen_video') == && class_exists('ffmpeg_movie')) {
                                    
Download::autoscreen_video($cat['path'] . '' $ftp$cat['path'] . '' $ftp '.GIF'640480);
                                    
Download::autoscreen_video($cat['path'] . '' $ftp$cat['path'] . 'small_' $ftp '.GIF'Cms::setup('previewsmall'), Cms::setup('previewsmall2'));
                                    if (
Cms::setup('watermark') == 1) {
                                        
Download::watermark($cat['path'] . '' $ftp '.GIF');
                                        
Download::watermark($cat['path'] . 'small_' $ftp '.GIF');
                                    }
                                }
                            }

                            
//скриншот к темам формата nth
                            
if (Cms::setup('autoscreen_nth') == 1) {
                                if (
$typ == 'nth') {
                                    
Download::autoscreen_nth($cat['path'] . '' $ftpCms::setup('previewsmall'), Cms::setup('previewsmall2'), $cat['path'] . '' $ftp '.GIF');
                                }
                            }
                            
//скриншот к темам формата thm
                            
if (Cms::setup('autoscreen_thm') == 1) {
                                if (
$typ == 'thm') {
                                    
Download::autoscreen_thm($cat['path'] . '' $cat['file'], Cms::setup('previewsmall'), Cms::setup('previewsmall2'), $cat['path'] . '' $ftp '.GIF');
                                }
                            }

                            if (
$_POST['number'] == 1) {
                                
$originalfile preg_replace('/d/'''$originalfile);
                            }

                            if (
$_POST['simvol'] == 1) {
                                
$originalfile preg_replace('/[-`~!#$%^&*()_=+\\|\/\[\]{};:"',<>?]+/', '', $originalfile);
                            }

                            DB::run("INSERT INTO `files` SET 
                                `id_user` = '" . 
$this->user['id'] . "',
                                    `refid` = '" . 
$cat['id'] . "', 
                                        `name` = '" . substr(Cms::Input(
$originalfile), 0, -4) . "', 
                                            `translate` = '" . substr(Cms::Input(
$fnamefile), 0, -3) . "', 
                                                `text` = '" . Cms::Input(
$_POST['text']) . "', 
                                                    `time` = '" . Cms::realtime() . "',
                                                        `file` = '" . 
$ftp . "', 
                                                            `type` = '" . 
$typ . "', 
                                                                `size` = '" . Functions::size(
$fsizefile) . "', 
                                                                    `path` = '" . 
$cat['path'] . "', 
                                                                        `infolder` = '" . 
$cat['infolder'] . "'");
                        }

                        if (Cms::setup('
adminlogs') == 1) {
                            Cms::adminlogs('
ЗЦ', 'Добавление файла ' . Cms::Input($originalfile));
                        } //пишем лог админа, если включено
                    }
                    Functions::redirect('
/download/' . $id);
                }
            }

            SmartySingleton::instance()->assign(array(
                '
id' => $id,
                '
cat' => $cat,
                '
error_file' => $error_file,
                '
error_mass' => $error_mass,
                '
pagenav' => Functions::pagination(Cms::setup('home') . '/download/' . $id . '?', $this->page, $count_files, $this->message)
            ));
        }

        if ($_POST['
ok'] && $this->user['level'] > 40) {

            if (mb_strlen(Cms::Input($_POST['
name'])) < 2 || mb_strlen(Cms::Input($_POST['name'])) > 250) {
                $error .= '
Недопустимая длина названия категории!<br/>';
            }

            if (mb_strlen(Cms::Input($_POST['
text'])) > 250) {
                $error .= '
Недопустимая длина описания категории!<br/>';
            }

            //иконка к категории
            $do_filefile = false;
            // Проверка загрузки с обычного браузера
            if ($_FILES['
icon']['size'] > 0) {
                $do_filefile = true;
                $ifnamefile = strtolower($_FILES['
icon']['name']);
                $ifnamefile = str_replace(' ', '
_', $ifnamefile);
                $typ = pathinfo($ifnamefile, PATHINFO_EXTENSION);
                $fnamefiles = pathinfo($ifnamefile, PATHINFO_FILENAME);
                //Конечное имя файла для сохранения без расширения
                $fnamefile = Functions::name_replace($fnamefiles);
                //Конечное имя файла для сохранения с расширением
                $ftp = $fnamefile . '
.' . $typ;
                $fsizefile = $_FILES['
icon']['size'];
            }
            //обработка файла
            if ($do_filefile) {
                // Список недопустимых расширений файлов.
                $al_ext = explode(", ", "png, jpg, jpeg, gif");
                $ext = explode(".", $ftp);
                // Проверка на допустимый размер файла
                if ($fsizefile >= 5 * 1024 * 1024) {
                    $error .= '
Недопустимый вес файла!<br/>';
                }
                // Проверка файла на наличие только одного расширения
                if (count($ext) != 2) {
                    $error .= '
Файл имеет двойное расширение!<br/>';
                }

                // Проверка недопустимых расширений файлов
                if (!in_array($typ, $al_ext)) {
                    $error .= '
Запрещенный тип файла!<br/>';
                }

                if ($typ == null) {
                    $error .= '
Файл не имеет расширения!<br/>';
                }
            }

            if (!isset($error)) {
                DB::run("INSERT INTO `category` SET 
                    `refid` = '" . 
$id . "', 
                        `name` = '" . Cms::Input(
$_POST['name']) . "', 
                            `translate` = '" . Functions::name_replace(Cms::Input(
$_POST['name'])) . "', 
                                `text` = '" . Cms::Input(
$_POST['text']) . "',
                                    `keywords` = '" . Cms::Input(
$_POST['keywords']) . "',
                                        `description` = '" . Cms::Input(
$_POST['description']) . "'");

                $fid = DB::$pdo->lastInsertId();

                DB::run("UPDATE `category` SET `realid` = '" . 
$fid . "' WHERE `id`='" . $fid . "'");

                //создаем категорию, расставляем права на запись и т.д.
                $dirnew = Functions::name_replace(Cms::Input($_POST['
name']));

                if (!$id) {
                    $d['
path'] = 'files/download/';
                } else {
                    $d = DB::run("SELECT * FROM `category` WHERE `id` = " . $id)->fetch(PDO::FETCH_ASSOC);
                }

                chmod($d['
path'], 0777);
                $dirnew = trim($d['
path']) . trim($dirnew) . '/';
                mkdir($dirnew, 0777);
                chmod($dirnew, 0777);

                //загружаем и обрабатываем иконку
                if ((move_uploaded_file($_FILES["icon"]["tmp_name"], $dirnew . "" . $ftp)) == true) {
                    DB::run("UPDATE `category` SET `icon` = '" . 
$ftp . "' WHERE `id` = '" . $fid . "'");
                }

                DB::run("UPDATE `category` SET `path` = '" . 
$dirnew . "', `infolder` = '" . $d['path'] . "' WHERE `id`='" . $fid . "'");
                DB::run("OPTIMIZE TABLE `category`");

                if (Cms::setup('
adminlogs') == 1) {
                    Cms::adminlogs('
ЗЦ', 'Создание категории ' . Cms::Input($_POST['name']));
                } //пишем лог админа, если включено

                if (!$id) {
                    Functions::redirect('
/download');
                } else {
                    Functions::redirect('
/download/' . $fid);
                }
            }
        }

        SmartySingleton::instance()->assign(array(
            '
id' => $id,
            '
pat' => Cms::BreadcrumbDownload($id),
            '
error' => $error,
            '
count' => $count,
            '
arrayrow' => $arrayrow,
            '
count_files' => $count_files,
            '
arrayrow_files' => $arrayrow_files,
            '
pagenav_category' => Functions::pagination(Cms::setup('home') . '/download/' . $id . '?', $this->page, $count, $this->message)
        ));
        SmartySingleton::instance()->display(SMARTY_TEMPLATE_LOAD . '
/templates/modules/download/index.tpl');
    }

    function setup($id) {
        $row = DB::run("SELECT * FROM `category` WHERE `id`='" . 
$id . "'")->fetch(PDO::FETCH_ASSOC);

        if ($_POST['
ok'] && $this->user['level'] > 40) {

            if (mb_strlen(Cms::Input($_POST['
name'])) < 2 || mb_strlen(Cms::Input($_POST['name'])) > 250) {
                $error .= '
Недопустимая длина названия категории!<br/>';
            }

            if (mb_strlen(Cms::Input($_POST['
text'])) < 0 || mb_strlen(Cms::Input($_POST['text'])) > 250) {
                $error .= '
Недопустимая длина описания категории!<br/>';
            }

            //иконка к категории
            $do_filefile = false;
            // Проверка загрузки с обычного браузера
            if ($_FILES['
icon']['size'] > 0) {
                $do_filefile = true;
                $ifnamefile = strtolower($_FILES['
icon']['name']);
                $ifnamefile = str_replace(' ', '
_', $ifnamefile);
                $typ = pathinfo($ifnamefile, PATHINFO_EXTENSION);
                $fnamefiles = pathinfo($ifnamefile, PATHINFO_FILENAME);
                //Конечное имя файла для сохранения без расширения
                $fnamefile = Functions::name_replace($fnamefiles);
                //Конечное имя файла для сохранения с расширением
                $ftp = $fnamefile . '
.' . $typ;
                $fsizefile = $_FILES['
icon']['size'];
            }
            //обработка файла
            if ($do_filefile) {
                // Список недопустимых расширений файлов.
                $al_ext = explode(", ", "png, jpg, jpeg, gif");
                $ext = explode(".", $ftp);
                // Проверка на допустимый размер файла
                if ($fsizefile >= 5 * 1024 * 1024) {
                    $error .= '
Недопустимый вес файла!<br/>';
                }
                // Проверка файла на наличие только одного расширения
                if (count($ext) != 2) {
                    $error .= '
Файл имеет двойное расширение!<br/>';
                }

                // Проверка недопустимых расширений файлов
                if (!in_array($typ, $al_ext)) {
                    $error .= '
Запрещенный тип файла!<br/>';
                }

                if ($typ == null) {
                    $error .= '
Файл не имеет расширения!<br/>';
                }
            }

            if (!isset($error)) {
                DB::run("UPDATE `category` SET 
                        `name` = '" . Cms::Input(
$_POST['name']) . "', 
                            `translate` = '" . Functions::name_replace(Cms::Input(
$_POST['name'])) . "', 
                                `text` = '" . Cms::Input(
$_POST['text']) . "',
                                    `keywords` = '" . Cms::Input(
$_POST['keywords']) . "',
                                        `description` = '" . Cms::Input(
$_POST['description']) . "' WHERE `id`='" . $row['id'] . "'");

                //загружаем и обрабатываем иконку
                if ((move_uploaded_file($_FILES["icon"]["tmp_name"], $row['
path'] . "/" . $ftp)) == true) {
                    Cms::DelFile($row['
path'] . "/" . $row['icon']);
                    DB::run("UPDATE `category` SET `icon` = '" . 
$ftp . "' WHERE `id` = '" . $row['id'] . "'");
                }

                DB::run("OPTIMIZE TABLE `category`");

                if (Cms::setup('
adminlogs') == 1) {
                    Cms::adminlogs('
ЗЦ', 'Редактирование категории ' . Cms::Input($_POST['name']));
                } //пишем лог админа, если включено
                Functions::redirect('
/download/' . $row['id']);
            }
        }

        SmartySingleton::instance()->assign(array(
            '
row' => $row,
            '
pat' => Cms::BreadcrumbDownload($id),
            '
error' => $error
        ));
        SmartySingleton::instance()->display(SMARTY_TEMPLATE_LOAD . '
/templates/modules/download/setup.tpl');
    }

    function del_category($id) {
        $row = DB::run("SELECT * FROM `category` WHERE `id`='" . 
$id . "'")->fetch(PDO::FETCH_ASSOC);

        if ($_POST['
ok']) {
            Cms::DelDir($row['
path']); // сносим папку
            DB::run("DELETE FROM `category` WHERE `path` LIKE '" . 
$row['path'] . "%'"); //// Сносим папки принадлежащие удаляемой папке

            $file = DB::run("SELECT * FROM `files` WHERE `path` LIKE '" . 
$row['path'] . "%'"); //// Сносим файлы принадлежащие удаляемой папке
            while ($file2 = $file->fetch(PDO::FETCH_ASSOC)) {
                DB::run("DELETE FROM `files` WHERE `id` = '" . 
$file2['id'] . "'");
                DB::run("DELETE FROM `files_comments` WHERE `id_file` = '" . 
$file2['id'] . "'");
            }
            DB::run("OPTIMIZE TABLE `category`");
            DB::run("OPTIMIZE TABLE `files`");
            DB::run("OPTIMIZE TABLE `files_comments`");

            if (Cms::setup('
adminlogs') == 1) {
                Cms::adminlogs('
ЗЦ', 'Удаление категории ' . Functions::esc($row['name']));
            } //пишем лог админа, если включено
            Functions::redirect(Cms::setup('
home') . '/download/' . $row['refid']);
        }

        if ($_POST['
close']) {
            Functions::redirect(Cms::setup('
home') . '/download/' . $row['id']);
        }

        SmartySingleton::instance()->assign(array(
            '
row' => $row,
            '
pat' => Cms::BreadcrumbDownload($id)
        ));
        SmartySingleton::instance()->display(SMARTY_TEMPLATE_LOAD . '
/templates/modules/download/del_category.tpl');
    }

    function edit($id) {
        $row = DB::run("SELECT * FROM `files` WHERE `id`='" . 
$id . "'")->fetch(PDO::FETCH_ASSOC);

        if ($_POST['
ok']) {

            if (mb_strlen(Cms::Input($_POST['
name'])) < 3 || mb_strlen(Cms::Input($_POST['name'])) > 250) {
                $error .= '
Недопустимая длина названия файла!<br/>';
            }

            if (mb_strlen(Cms::Input($_POST['
text'])) > 5000) {
                $error .= '
Недопустимая длина описания файла!<br/>';
            }

            $do_filefile = false;
            // Проверка загрузки с обычного браузера
            if ($_FILES['
file']['size'] > 0) {
                $do_filefile = true;
                $ifnamefile = strtolower($_FILES['
file']['name']);
                $typ = pathinfo($ifnamefile, PATHINFO_EXTENSION);
                $rand = rand(11111, 99999); //случайное число    
                //Конечное имя файла для сохранения без расширения
                $fnamefile = Functions::name_replace($ifnamefile);
                //Конечное имя файла для сохранения с расширением
                $ftp = Functions::name_replace(Functions::truncate($ifnamefile, 200)) . '
_' . $rand . '_' . strtoupper(str_replace('http://', '', Cms::setup('home'))) . '.' . $typ;
                
$fsizefile $_FILES['file']['size'];
            }

            
//скриншот
            
$do_filescreen false;
            
// Проверка загрузки с обычного браузера
            
if ($_FILES['screen']['size'] > 0) {
                
$do_filescreen true;
                
$ifnamescreen strtolower($_FILES['screen']['name']);
                
$typs pathinfo($ifnamescreenPATHINFO_EXTENSION);
                
$fnamescreen Functions::passgen(25) . '.' $typs;
            }
            
//обработка файла
            
if ($do_filescreen) {
                
// Список допустимых расширений файлов.
                
$al_ext = array(
                    
'jpg',
                    
'jpeg',
                    
'gif',
                    
'png'
                
);
                
$ext explode("."$fnamescreen);
                
// Проверка файла на наличие только одного расширения
                
if (count($ext) != 2) {
                    
$error .= 'Запрещенный формат картинки скриншота!<br/>';
                }
                
// Проверка допустимых расширений файлов
                
if (!in_array($ext[1], $al_ext)) {
                    
$error .= 'Не допустимый формат картинки скриншота!<br/>';
                }
            }

            
$reg DB::run("SELECT * FROM `files` WHERE `file`='" $ftp "' AND `path`='" $row['path'] . "'");
            if (
$reg->fetch(PDO::FETCH_NUM) != 0) {
                
$error .= 'Файл с таким названием уже существует в папке ' $row['name'] . '!';
            }

            if (!isset(
$error)) {
                
//загружаем файл
                
if ((move_uploaded_file($_FILES["file"]["tmp_name"], $row['path'] . "" $ftp)) == true) {
                    
//удаляем картинки
                    
if ($row['type'] == 'jpg' || $row['type'] == 'png' || $row['type'] == 'jpeg' || $row['type'] == 'gif' || $row['type'] == 'bmp') {
                        
Cms::DelFile($row['path'] . "small_" $row['file']);
                        
Cms::DelFile($row['path'] . "view_" $row['file']);
                    }
                    
//удаляем скрины к видео
                    
if ($row['type'] == 'mp4' || $row['type'] == 'avi' || $row['type'] == '3gp') {
                        
Cms::DelFile($row['path'] . "small_" $row['file'] . ".GIF");
                        
Cms::DelFile($row['path'] . "" $row['file'] . ".GIF");
                    }
                    
//темам
                    
if ($row['type'] == 'nth' || $row['type'] == 'thm') {
                        
Cms::DelFile($row['path'] . "" $row['file'] . ".GIF");
                    }
                    
//jar файлам
                    
if ($row['type'] == 'jar') {
                        
Cms::DelFile($row['path'] . "" $row['file'] . ".icon.png");
                    }

                    
//и сам основной файл
                    
Cms::DelFile($row['path'] . "" $row['file']);

                    if (
$typ == 'png' || $typ == 'jpg' || $typ == 'gif' || $typ == 'jpeg') {
                        
//создаем превьюшку к картинке и только к картинке
                        
$img = new SimpleImage();
                        
$img->load($row['path'] . '' $ftp)->fit_to_width(Cms::setup('preview'))->save($row['path'] . 'view_' $ftp);
                        
$img->load($row['path'] . '' $ftp)->fit_to_width(Cms::setup('previewsmall'))->save($row['path'] . 'small_' $ftp);
                        if (
Cms::setup('watermark') == 1) {
                            
Download::watermark($row['path'] . 'view_' $ftp10);
                            
Download::watermark($row['path'] . 'small_' $ftp3);
                        }
                    }

                    
//меняем id3-тег в звуковом файле
                    
if ($typ == 'mp3' || $typ == 'wav' || $typ == 'ogg' || $typ == 'amr') {
                        
$id3 = new MP3_Id();
                        
$id3->read($row['path'] . '' $ftp);
                        
$id3->comment iconv('utf-8''windows-1251'strtoupper(str_replace('http://'''Cms::setup('home'))));
                        
$id3->write();
                    }

                    
//вытаскиваем иконку из jar файла
                    
if ($typ == 'jar') {
                        
$archive2 = new JarInfo($row['path'] . '' $ftp);
                        
$archive2->getIcon($row['path'] . '' $ftp '.icon.png');
                    }

                    
//создаем скрин для видео-файла
                    
if ($typ == 'mp4' || $typ == 'avi' || $typ == '3gp' || $typ == 'wmv') {
                        if (
Cms::setup('autoscreen_video') == && class_exists('ffmpeg_movie')) {
                            
Download::autoscreen_video($row['path'] . '' $ftp$row['path'] . '' $ftp '.GIF'640480);
                            
Download::autoscreen_video($row['path'] . '' $ftp$row['path'] . 'small_' $ftp '.GIF'Cms::setup('previewsmall'), Cms::setup('previewsmall2'));
                            if (
Cms::setup('watermark') == 1) {
                                
Download::watermark($row['path'] . '' $ftp '.GIF');
                                
Download::watermark($row['path'] . 'small_' $ftp '.GIF');
                            }
                        }
                    }

                    
//скриншот к темам формата nth
                    
if (Cms::setup('autoscreen_nth') == 1) {
                        if (
$typ == 'nth') {
                            
Download::autoscreen_nth($row['path'] . '' $ftpCms::setup('previewsmall'), Cms::setup('previewsmall2'), $row['path'] . '' $ftp '.GIF');
                        }
                    }
                    
//скриншот к темам формата thm
                    
if (Cms::setup('autoscreen_thm') == 1) {
                        if (
$typ == 'thm') {
                            
Download::autoscreen_thm($row['path'] . '' $row['file'], Cms::setup('previewsmall'), Cms::setup('previewsmall2'), $row['path'] . '' $ftp '.GIF');
                        }
                    }

                    
DB::run("UPDATE `files` SET `file` = '" $ftp "', `type` = '" $typ "', `size` = '" Functions::size($fsizefile) . "' WHERE `id`='" $row['id'] . "'");
                }

                
//загружаем и обрабатываем скриншот
                
if ((move_uploaded_file($_FILES["screen"]["tmp_name"], $row['path'] . "" $fnamescreen)) == true) {
                    
//удаляем скриншот
                    
Cms::DelFile($row['path'] . "" $row['screen']);
                    
$img = new SimpleImage();
                    
$img->load($row['path'] . '' $fnamescreen)->fit_to_width(Cms::setup('preview'))->save($row['path'] . '' $fnamescreen);
                    
$img->load($row['path'] . '' $fnamescreen)->fit_to_width(Cms::setup('previewsmall'))->save($row['path'] . 'small_' $fnamescreen);
                    if (
Cms::setup('watermark') == 1) {
                        
Download::watermark($row['path'] . '' $fnamescreen10);
                        
Download::watermark($row['path'] . 'small_' $fnamescreen3);
                    }
                    
DB::run("UPDATE `files` SET `screen` = '" $fnamescreen "' WHERE `id` = '" $row['id'] . "'");
                }

                
//удаляем скриншот
                
if ($_POST['del'] == 1) {
                    
Cms::DelFile($row['path'] . "" $row['screen']);
                    
DB::run("UPDATE `files` SET `screen` = '' WHERE `id` = '" $row['id'] . "'");
                }

                
DB::run("UPDATE `files` SET 
                `name` = '" 
Cms::Input($_POST['name']) . "', 
                    `translate` = '" 
Functions::name_replace(Cms::Input($_POST['name'])) . "', 
                        `text` = '" 
Cms::Input($_POST['text']) . "',
                            `loadcounts` = '" 
Cms::Input($_POST['loadcounts']) . "',
                                `views` = '" 
Cms::Input($_POST['views']) . "',
                                    `keywords` = '" 
Cms::Input($_POST['keywords']) . "',
                                        `description` = '" 
Cms::Input($_POST['description']) . "' WHERE `id`='" $row['id'] . "'");

                if (
Cms::setup('adminlogs') == 1) {
                    
Cms::adminlogs('ЗЦ''Редактирование файла ' Functions::esc($row['name']));
                } 
//пишем лог админа, если включено

                
if ($row['id_file'] > 0) {
                    
Functions::redirect('/download/file/' $row['id_file']);
                } else {
                    
Functions::redirect('/download/' $row['id'] . '-' $row['translate']);
                }
            }
        }

        
SmartySingleton::instance()->assign(array(
            
'row' => $row,
            
'error' => $error,
            
'pat' => Cms::BreadcrumbDownload($row['refid'])
        ));
        
SmartySingleton::instance()->display(SMARTY_TEMPLATE_LOAD '/templates/modules/download/edit.tpl');
    }

    function 
del($id) {
        
$row DB::run("SELECT * FROM `files` WHERE `id`='" $id "'")->fetch(PDO::FETCH_ASSOC);

        if (
$_POST['ok']) {
            
//удаляем скриншот
            
Cms::DelFile($row['path'] . "" $row['screen']);
            
//удалем картинки
            
if ($row['type'] == 'jpg' || $row['type'] == 'png' || $row['type'] == 'jpeg' || $row['type'] == 'gif') {
                
Cms::DelFile($row['path'] . "small_" $row['file']);
                
Cms::DelFile($row['path'] . "view_" $row['file']);
                
Cms::DelFile($row['path'] . "240x320_" $row['file']);
                
Cms::DelFile($row['path'] . "360x640_" $row['file']);
                
Cms::DelFile($row['path'] . "480x800_" $row['file']);
                
Cms::DelFile($row['path'] . "480x854_" $row['file']);
                
Cms::DelFile($row['path'] . "540x960_" $row['file']);
            }
            
//удаляем скрины к видео
            
if ($row['type'] == 'mp4' || $row['type'] == 'avi' || $row['type'] == '3gp' || $row['type'] == 'wmv') {
                
Cms::DelFile($row['path'] . "small_" $row['file'] . ".GIF");
                
Cms::DelFile($row['path'] . "" $row['file'] . ".GIF");
            }
            
//темам
            
if ($row['type'] == 'nth' || $row['type'] == 'thm') {
                
Cms::DelFile($row['path'] . "" $row['file'] . ".GIF");
            }
            
//и сам основной файл
            
Cms::DelFile($row['path'] . "" $row['file']);
            
DB::run("DELETE FROM `files` WHERE `id` = '" $row['id'] . "' LIMIT 1");
            
DB::run("DELETE FROM `files_comments` WHERE `id_file` = '" $row['id'] . "'");
            
DB::run("OPTIMIZE TABLE `files`");
            
DB::run("OPTIMIZE TABLE `files_comments`");

            if (
Cms::setup('adminlogs') == 1) {
                
Cms::adminlogs('ЗЦ''Удаление файла ' Functions::esc($row['name']));
            } 
//пишем лог админа, если включено

            
if ($row['id_file'] > 0) {
                
Functions::redirect('/download/file/' $row['id_file']);
            } else
                
Functions::redirect('/download/' $row['refid']);
        }

        if (
$_POST['close']) {
            
Functions::redirect(Cms::setup('home') . '/download/' $row['refid']);
        }

        
SmartySingleton::instance()->assign(array(
            
'row' => $row,
            
'error' => $error,
            
'pat' => Cms::BreadcrumbDownload($row['refid'])
        ));
        
SmartySingleton::instance()->display(SMARTY_TEMPLATE_LOAD '/templates/modules/download/del.tpl');
    }

    function 
file($id) {
        
$row DB::run("SELECT * FROM `files` WHERE `id`='" $id "'")->fetch(PDO::FETCH_ASSOC);

        
//обработка загрузки файла
        
if ($_POST['upload']) {

            if (
mb_strlen(Cms::Input($_POST['names'])) > 250) {
                
$error_file .= 'Недопустимая длина названия файла!<br/>';
            }

            if (
mb_strlen(Cms::Input($_POST['text'])) > 5000) {
                
$error_file .= 'Недопустимая длина описания файла!<br/>';
            }

            
$do_filefile false;
            
// Проверка загрузки с обычного браузера
            
if ($_FILES['file']['size'] > 0) {
                
$do_filefile true;
                
$ifnamefile strtolower($_FILES['file']['name']);
                
$originalfile $_FILES['file']['name'];
                
$typ pathinfo($ifnamefilePATHINFO_EXTENSION);
                
$rand rand(1111199999); //случайное число    
                //Конечное имя файла для сохранения без расширения
                
$fnamefile Functions::name_replace($ifnamefile);
                
//Конечное имя файла для сохранения с расширением
                
$ftp Functions::name_replace(Functions::truncate($ifnamefile200)) . '_' $rand '_' strtoupper(str_replace('http://'''Cms::setup('home'))) . '.' $typ;
                
$fsizefile $_FILES['file']['size'];
            }

            if (
$do_filefile == null) {
                
$error_file .= 'Вы не выбрали файл для загрузки!<br/>';
            }

            
//скриншот
            
$do_filescreen false;
            
// Проверка загрузки с обычного браузера
            
if ($_FILES['screen']['size'] > 0) {
                
$do_filescreen true;
                
$ifnamescreen strtolower($_FILES['screen']['name']);
                
$rand rand(111111111111999999999999); //случайное число
                
$ifname explode("."$ifnamescreen);
                
$fnamescreen $rand '.' $ifname[1];
            }
            
//обработка файла
            
if ($do_filescreen) {
                
// Список допустимых расширений файлов.
                
$al_ext = array(
                    
'jpg',
                    
'jpeg',
                    
'gif',
                    
'png'
                
);
                
$ext explode("."$fnamescreen);
                
// Проверка файла на наличие только одного расширения
                
if (count($ext) != 2) {
                    
$error_file .= 'Запрещенный формат картинки скриншота!<br/>';
                }
                
// Проверка допустимых расширений файлов
                
if (!in_array($ext[1], $al_ext)) {
                    
$error_file .= 'Не допустимый формат картинки скриншота!<br/>';
                }
            }

            
$reg DB::run("select * from `files` where `file`='" $ftp "' AND `path`='" $row['path'] . "'");
            if (
$reg->fetch(PDO::FETCH_NUM) != 0) {
                
$error_file .= 'Файл с таким названием уже существует в папке ' $row['name'] . '!<br/>';
            }

            if (!isset(
$error_file)) {
                
//загружаем файл
                
if ((move_uploaded_file($_FILES["file"]["tmp_name"], $row['path'] . "" $ftp)) == true) {
                    if (
$typ == 'png' || $typ == 'jpg' || $typ == 'gif' || $typ == 'jpeg') {
                        
//создаем превьюшку к картинке и только к картинке
                        
$img = new SimpleImage();
                        
$img->load($row['path'] . '' $ftp)->fit_to_width(Cms::setup('preview'))->save($row['path'] . 'view_' $ftp);
                        
$img->load($row['path'] . '' $ftp)->fit_to_width(Cms::setup('previewsmall'))->save($row['path'] . 'small_' $ftp);
                        if (
Cms::setup('watermark') == 1) {
                            
Download::watermark($row['path'] . 'view_' $ftp10);
                            
Download::watermark($row['path'] . 'small_' $ftp3);
                        }
                    }

                    
//меняем id3-тег в звуковом файле
                    
if ($typ == 'mp3' || $typ == 'wav' || $typ == 'ogg' || $typ == 'amr') {
                        
$id3 = new MP3_Id();
                        
$id3->read($row['path'] . '' $ftp);
                        
$id3->comment iconv('utf-8''windows-1251'strtoupper(str_replace('http://'''Cms::setup('home'))));
                        
$id3->write();
                    }

                    
//вытаскиваем иконку из jar файла
                    
if ($typ == 'jar') {
                        
$archive2 = new JarInfo($row['path'] . '' $ftp);
                        
$archive2->getIcon($row['path'] . '' $ftp '.icon.png');
                    }

                    
//создаем скрин для видео-файла
                    
if ($typ == 'mp4' || $typ == 'avi' || $typ == '3gp' || $typ == 'wmv') {
                        if (
Cms::setup('autoscreen_video') == && class_exists('ffmpeg_movie')) {
                            
Download::autoscreen_video($row['path'] . '' $ftp$row['path'] . '' $ftp '.GIF'640480);
                            
Download::autoscreen_video($row['path'] . '' $ftp$row['path'] . 'small_' $ftp '.GIF'Cms::setup('previewsmall'), Cms::setup('previewsmall2'));
                            if (
Cms::setup('watermark') == 1) {
                                
Download::watermark($row['path'] . '' $ftp '.GIF');
                                
Download::watermark($row['path'] . 'small_' $ftp '.GIF');
                            }
                        }
                    }

                    
//скриншот к темам формата nth
                    
if (Cms::setup('autoscreen_nth') == 1) {
                        if (
$typ == 'nth') {
                            
Download::autoscreen_nth($row['path'] . '' $ftpCms::setup('previewsmall'), Cms::setup('previewsmall2'), $row['path'] . '' $ftp '.GIF');
                        }
                    }
                    
//скриншот к темам формата thm
                    
if (Cms::setup('autoscreen_thm') == 1) {
                        if (
$typ == 'thm') {
                            
Download::autoscreen_thm($row['path'] . '' $row['file'], Cms::setup('previewsmall'), Cms::setup('previewsmall2'), $row['path'] . '' $ftp '.GIF');
                        }
                    }

                    if (
$_POST['number'] == 1) {
                        
$originalfile preg_replace('/d/'''$originalfile);
                    }

                    if (
$_POST['simvol'] == 1) {
                        
$originalfile preg_replace('/[-`~!#$%^&*()_=+\\|\/\[\]{};:"',<>?]+/', '', $originalfile);
                    }

                    if (!empty($_POST['
names'])) {
                        DB::run("INSERT INTO `files` SET 
                                `refid` = '" . 
$row['refid'] . "', 
                                    `id_file` = '" . 
$row['id'] . "', 
                                        `name` = '" . Cms::Input(
$_POST['names']) . "', 
                                            `translate` = '" . Functions::name_replace(Cms::Input(
$_POST['names'])) . "', 
                                                `text` = '" . Cms::Input(
$_POST['text']) . "', 
                                                    `time` = '" . Cms::realtime() . "',
                                                        `file` = '" . 
$ftp . "', 
                                                            `type` = '" . 
$typ . "', 
                                                                `size` = '" . Functions::size(
$fsizefile) . "', 
                                                                    `path` = '" . 
$row['path'] . "', 
                                                                        `infolder` = '" . 
$row['infolder'] . "',
                                                                            `keywords` = '" . Cms::Input(
$_POST['keywords']) . "',
                                                                                `description` = '" . Cms::Input(
$_POST['description']) . "'");
                    } else {
                        DB::run("INSERT INTO `files` SET 
                                `refid` = '" . 
$row['refid'] . "', 
                                    `id_file` = '" . 
$row['id'] . "',
                                        `name` = '" . substr(Cms::Input(
$originalfile), 0, -4) . "', 
                                            `translate` = '" . substr(Cms::Input(
$fnamefile), 0, -3) . "', 
                                                `text` = '" . Cms::Input(
$_POST['text']) . "', 
                                                    `time` = '" . Cms::realtime() . "',
                                                        `file` = '" . 
$ftp . "', 
                                                            `type` = '" . 
$typ . "', 
                                                                `size` = '" . Functions::size(
$fsizefile) . "', 
                                                                    `path` = '" . 
$row['path'] . "', 
                                                                        `infolder` = '" . 
$row['infolder'] . "',
                                                                            `keywords` = '" . Cms::Input(
$_POST['keywords']) . "',
                                                                                `description` = '" . Cms::Input(
$_POST['description']) . "'");
                    }
                    $fid = DB::$pdo->lastInsertId();
                }

                //загружаем и обрабатываем скриншот
                if ((move_uploaded_file($_FILES["screen"]["tmp_name"], $row['
path'] . "" . $fnamescreen)) == true) {
                    $img = new SimpleImage();
                    $img->load($row['
path'] . '' . $fnamescreen)->fit_to_width(Cms::setup('preview'))->save($row['path'] . '' . $fnamescreen);
                    $img->load($row['
path'] . '' . $fnamescreen)->fit_to_width(Cms::setup('previewsmall'))->save($row['path'] . 'small_' . $fnamescreen);

                    if (Cms::setup('
watermark') == 1) {
                        Download::watermark($row['
path'] . '' . $fnamescreen, 10);
                        Download::watermark($row['
path'] . 'small_' . $fnamescreen, 3);
                    }

                    DB::run("UPDATE `files` SET `screen` = '" . 
$fnamescreen . "' WHERE `id` = '" . $fid . "'");
                }

                if (Cms::setup('
adminlogs') == 1) {
                    Cms::adminlogs('
ЗЦ', 'Добавление файла ' . Cms::Input($originalfile));
                } //пишем лог админа, если включено
                Functions::redirect('
/download/file/' . $row['id']);
            }
        }

        //массовая загрузка файлов
        if ($_POST['
mass']) {

            for ($i = 0; $i < count($_FILES['
file']['name']); $i++) {
                $do_file = false;
                // Проверка загрузки с обычного браузера
                if ($_FILES['
file']['size'][$i] > 0) {
                    $do_file = true;
                    $ifnamefile = strtolower($_FILES['
file']['name'][$i]);
                    $typ = pathinfo($ifnamefile, PATHINFO_EXTENSION);
                    $rand = rand(11111, 99999); //случайное число    
                    //Конечное имя файла для сохранения без расширения
                    $fnamefile = Functions::name_replace($ifnamefile);
                    //Конечное имя файла для сохранения с расширением
                    $ftp = Functions::name_replace(Functions::truncate($ifnamefile, 200)) . '
_' . $rand . '_' . strtoupper(str_replace('http://', '', Cms::setup('home'))) . '.' . $typ;
                    
$fsizefile $_FILES['file']['size'][$i];
                }

                if (empty(
$do_file)) {
                    
$error_mass .= 'Вы должны выбрать минимум один файл!<br/>';
                }

                
$reg DB::run("select * from `files` where `file`='" $ftp "' AND `path`='" $row['path'] . "'");
                if (
$reg->fetch(PDO::FETCH_NUM) != 0) {
                    
$error_file .= 'Файл с таким названием уже существует в папке ' Functions::esc($row['name']) . '!<br/>';
                }
            }

            if (!isset(
$error_mass)) {
                for (
$i 0$i count($_FILES['file']['name']); $i++) {
                    
$do_file false;
                    
// Проверка загрузки с обычного браузера
                    
if ($_FILES['file']['size'][$i] > 0) {
                        
$do_file true;
                        
$ifnamefile strtolower($_FILES['file']['name'][$i]);
                        
$originalfile $_FILES['file']['name'][$i];
                        
$typ pathinfo($ifnamefilePATHINFO_EXTENSION);
                        
$rand rand(1111199999); //случайное число    
                        //Конечное имя файла для сохранения без расширения
                        
$fnamefile Functions::name_replace($ifnamefile);
                        
//Конечное имя файла для сохранения с расширением
                        //$ftp = str_replace($typ, '', $ifnamefile);
                        
$ftp Functions::name_replace(Functions::truncate($ifnamefile200)) . '_' $rand '_' strtoupper(str_replace('http://'''Cms::setup('home'))) . '.' $typ;
                        
$fsizefile $_FILES['file']['size'][$i];
                    }
                    
//загружаем файл
                    
if ((move_uploaded_file($_FILES["file"]["tmp_name"][$i], $row['path'] . "" $ftp)) == true) {
                        if (
$typ == 'png' || $typ == 'jpg' || $typ == 'gif' || $typ == 'jpeg') {
                            
//создаем превьюшку к картинке и только к картинке
                            
$img = new SimpleImage();
                            
$img->load($row['path'] . '' $ftp)->fit_to_width(Cms::setup('preview'))->save($row['path'] . 'view_' $ftp);
                            
$img->load($row['path'] . '' $ftp)->fit_to_width(Cms::setup('previewsmall'))->save($row['path'] . 'small_' $ftp);
                            if (
Cms::setup('watermark') == 1) {
                                
Download::watermark($row['path'] . 'view_' $ftp10);
                                
Download::watermark($row['path'] . 'small_' $ftp3);
                            }
                        }

                        
//меняем id3-тег в звуковом файле
                        
if ($typ == 'mp3' || $typ == 'wav' || $typ == 'ogg' || $typ == 'amr') {
                            
$id3 = new MP3_Id();
                            
$id3->read($row['path'] . '' $ftp);
                            
$id3->comment iconv('utf-8''windows-1251'strtoupper(str_replace('http://'''Cms::setup('home'))));
                            
$id3->write();
                        }

                        
//вытаскиваем иконку из jar файла
                        
if ($typ == 'jar') {
                            
$archive2 = new JarInfo($row['path'] . '' $ftp);
                            
$archive2->getIcon($row['path'] . '' $ftp '.icon.png');
                        }

                        
//создаем скрин для видео-файла
                        
if ($typ == 'mp4' || $typ == 'avi' || $typ == '3gp' || $typ == 'wmv') {
                            if (
Cms::setup('autoscreen_video') == && class_exists('ffmpeg_movie')) {
                                
Download::autoscreen_video($row['path'] . '' $ftp$row['path'] . '' $ftp '.GIF'640480);
                                
Download::autoscreen_video($row['path'] . '' $ftp$row['path'] . 'small_' $ftp '.GIF'Cms::setup('previewsmall'), Cms::setup('previewsmall2'));
                                if (
Cms::setup('watermark') == 1) {
                                    
Download::watermark($row['path'] . '' $ftp '.GIF');
                                    
Download::watermark($row['path'] . 'small_' $ftp '.GIF');
                                }
                            }
                        }

                        
//скриншот к темам формата nth
                        
if (Cms::setup('autoscreen_nth') == 1) {
                            if (
$typ == 'nth') {
                                
Download::autoscreen_nth($row['path'] . '' $ftpCms::setup('previewsmall'), Cms::setup('previewsmall2'), $row['path'] . '' $ftp '.GIF');
                            }
                        }
                        
//скриншот к темам формата thm
                        
if (Cms::setup('autoscreen_thm') == 1) {
                            if (
$typ == 'thm') {
                                
Download::autoscreen_thm($row['path'] . '' $row['file'], Cms::setup('previewsmall'), Cms::setup('previewsmall2'), $row['path'] . '' $ftp '.GIF');
                            }
                        }

                        if (
$_POST['number'] == 1) {
                            
$originalfile preg_replace('/d/'''$originalfile);
                        }
                        if (
$_POST['simvol'] == 1) {
                            
$originalfile preg_replace('/[-`~!#$%^&*()_=+\\|\/\[\]{};:"',<>?]+/', '', $originalfile);
                        }
                        DB::run("INSERT INTO `files` SET 
                                `refid` = '" . 
$row['refid'] . "', 
                                    `id_file` = '" . 
$row['id'] . "', 
                                        `name` = '" . substr(Cms::Input(
$originalfile), 0, -4) . "', 
                                            `translate` = '" . substr(Cms::Input(
$fnamefile), 0, -3) . "', 
                                                `text` = '" . Cms::Input(
$_POST['text']) . "', 
                                                    `time` = '" . Cms::realtime() . "',
                                                        `file` = '" . 
$ftp . "', 
                                                            `type` = '" . 
$typ . "', 
                                                                `size` = '" . Functions::size(
$fsizefile) . "', 
                                                                    `path` = '" . 
$row['path'] . "', 
                                                                        `infolder` = '" . 
$row['infolder'] . "'");
                    }

                    if (Cms::setup('
adminlogs') == 1) {
                        Cms::adminlogs('
ЗЦ', 'Добавление файла ' . Cms::Input($originalfile));
                    } //пишем лог админа, если включено
                }
                Functions::redirect('
/download/file/' . $row['id']);
            }
        }

        //доп файлы
        $count = DB::run("SELECT COUNT(*) FROM `files` WHERE `id_file`='" . 
$row['id'] . "'")->fetchColumn();
        if ($count > 0) {
            $req = DB::run("SELECT `files`.*, (SELECT COUNT(1) FROM `files_comments` WHERE `files_comments`.`id_file`=`files`.`id`) AS `comments` FROM `files` WHERE `id_file`='" . 
$row['id'] . "' ORDER BY `id` DESC LIMIT " . $this->page . ", " . $this->message);
            while ($rows = $req->fetch(PDO::FETCH_ASSOC)) {
                $arrayrow[] = $rows;
            }
        }

        SmartySingleton::instance()->assign(array(
            '
row' => $row,
            '
error_file' => $error_file,
            '
error_mass' => $error_mass,
            '
count' => $count,
            '
arrayrow' => $arrayrow,
            '
pat' => Cms::BreadcrumbDownload($row['refid']),
            '
pagenav' => Functions::pagination(Cms::setup('home') . '/download/file/' . $row['id'] . '?', $this->page, $count, $this->message)
        ));
        SmartySingleton::instance()->display(SMARTY_TEMPLATE_LOAD . '
/templates/modules/download/file.tpl');
    }

    function view($id) {
        $row = DB::run("SELECT `files`.*, (SELECT COUNT(*) FROM `files_comments` WHERE `id_file`='" . 
$id . "') AS `count` FROM `files` WHERE `id`='" . $id . "'")->fetch(PDO::FETCH_ASSOC);
        $onefile = DB::run("SELECT * FROM `files` WHERE `id`='" . 
$row['id_file'] . "'")->fetch(PDO::FETCH_ASSOC);

        DB::run("UPDATE `files` SET `views` = '" . intval(
$row['views'] + 1) . "' WHERE `id` = '" . $row['id'] . "'");

        if ($row['
type'] == 'jpg' || $row['type'] == 'jpeg' || $row['type'] == 'png' || $row['type'] == 'gif') {
            SmartySingleton::instance()->assign('
Img', getimagesize(str_replace('../', './', $row['path'] . '' . $row['file'])));
        }
        //вытаскиваем инфу из видео-файла, на хостинге должен быть установлен ffmpeg
        if ($row['
type'] == 'mp4' || $row['type'] == 'avi' || $row['type'] == '3gp' || $row['type'] == 'wmv') {
            if (class_exists('
ffmpeg_movie')) {
                $media = new ffmpeg_movie(str_replace('
../', './', $row['path'] . '' . $row['file']));
                SmartySingleton::instance()->assign('
ffmpeg', class_exists('ffmpeg_movie'));
                SmartySingleton::instance()->assign('
GetFrameWidth', $media->GetFrameWidth());
                SmartySingleton::instance()->assign('
GetFrameHeight', $media->GetFrameHeight());
                SmartySingleton::instance()->assign('
getFrameRate', $media->getFrameRate());
                SmartySingleton::instance()->assign('
getVideoCodec', $media->getVideoCodec());
                SmartySingleton::instance()->assign('
getBitRate', ceil(($media->getBitRate()) / 1024));
                if (intval($media->getDuration()) > 3599) {
                    $time = intval($media->getDuration() / 3600) . ":" . date('
s', fmod($media->getDuration() / 60, 60)) . ":" . date('s', fmod($media->getDuration(), 3600));
                } elseif (intval($media->getDuration()) > 59) {
                    $time = intval($media->getDuration() / 60) . ":" . date('
s', fmod($media->getDuration(), 60));
                } else {
                    $time = intval($media->getDuration()) . " сек.";
                }
                SmartySingleton::instance()->assign('
time', $time);
            }
        }

        //для аудио-файлов
        if ($row['
type'] == 'mp3' || $row['type'] == 'wav' || $row['type'] == 'amr' || $row['type'] == 'ogg') {
            // Создаем объект, читаем файл  
            $id3 = new MP3_Id();
            $result = $id3->read($row['
path'] . '' . $row['file']);
            if (PEAR::isError($result) && $result->getCode() !== PEAR_MP3_ID_TNF) {
                die($result->getMessage() . "n");
            }
            SmartySingleton::instance()->assign('
bitrate', $id3->getTag('bitrate'));
            SmartySingleton::instance()->assign('
length', $id3->getTag('length'));
            SmartySingleton::instance()->assign('
artists', Functions::clearstr($id3->getTag('artists')));
            SmartySingleton::instance()->assign('
album', $id3->getTag('album'));
            SmartySingleton::instance()->assign('
year', $id3->getTag('year'));
            SmartySingleton::instance()->assign('
comment', $id3->getTag('comment'));
            SmartySingleton::instance()->assign('
genre', $id3->getTag('genre'));
        }

        //для jar файлов
        if ($row['
type'] == 'jar') {
            $archive2 = new JarInfo(str_replace('
../', './', $row['path'] . '' . $row['file']));
            if ($archive2->getVersion()) {
                SmartySingleton::instance()->assign('
versionjar', $archive2->getVersion());
            }
            if ($archive2->getName()) {
                SmartySingleton::instance()->assign('
namejar', $archive2->getName());
            }
            if ($archive2->getVendor()) {
                SmartySingleton::instance()->assign('
vendorjar', $archive2->getVendor());
            }
            if ($archive2->getProfile()) {
                SmartySingleton::instance()->assign('
profilejar', $archive2->getProfile());
            }
        }

        //доп файлы
        $count = DB::run("SELECT COUNT(*) FROM `files` WHERE `id_file`='" . 
$row['id'] . "'")->fetchColumn();
        if ($count > 0) {
            $req = DB::run("SELECT `files`.*, (SELECT COUNT(1) FROM `files_comments` WHERE `files_comments`.`id_file`=`files`.`id`) AS `comments` FROM `files` WHERE `id_file`='" . 
$row['id'] . "' ORDER BY `id` DESC LIMIT " . $this->page . ", " . $this->message);
            while ($rows = $req->fetch(PDO::FETCH_ASSOC)) {
                $arrayrow[] = $rows;
            }
        }

        SmartySingleton::instance()->assign(array(
            '
row' => $row,
            '
text' => Cms::bbcode($row['text']),
            '
onefile' => $onefile,
            '
count' => $count,
            '
arrayrow' => $arrayrow,
            '
pat' => Cms::BreadcrumbDownload($row['refid']),
            '
pagenav' => Functions::pagination(Cms::setup('home') . '/download/' . $row['id'] . '-' . $row['translate'] . '?', $this->page, $count, $this->message)
        ));
        SmartySingleton::instance()->display(SMARTY_TEMPLATE_LOAD . '
/templates/modules/download/view.tpl');
    }

    function comments($id) {
        $row = DB::run("SELECT * FROM `files` WHERE `id`='" . 
$id . "'")->fetch(PDO::FETCH_ASSOC);

        Cms::comments('
files_comments', 'id_file', $row['id'], $this->user['id'], 'captcha_comments_file', 'download/comments/'.$row['id']);

        $count = DB::run("SELECT COUNT(*) FROM `files_comments` WHERE `id_file`='" . 
$row['id'] . "'")->fetchColumn();
        if ($count > 0) {
            $req = DB::run("SELECT `files_comments`.*, ".User::data('
files_comments')." FROM `files_comments` WHERE `id_file`='" . $row['id'] . "' ORDER BY `id` DESC LIMIT " . $this->page . ", " . $this->message);
            while ($rows = $req->fetch(PDO::FETCH_ASSOC)) {
                $arrayrow[] = $rows;
                $text[] = Cms::bbcode($rows['
text']);
            }
        }

        SmartySingleton::instance()->assign(array(
            '
row' => $row,
            '
text' => $text,
            '
count' => $count,
            '
arrayrow' => $arrayrow,
            '
pat' => Cms::BreadcrumbDownload($row['refid']),
            '
pagenav' => Functions::pagination(Cms::setup('home') . '/download/comments/' . $row['id'] . '?', $this->page, $count, $this->message)
        ));
        SmartySingleton::instance()->display(SMARTY_TEMPLATE_LOAD . '
/templates/modules/download/comments.tpl');
    }

    function edit_comments($id) {
        $row = DB::run("SELECT `files_comments`.*, (SELECT `refid` FROM `files` WHERE `files`.`id`=`files_comments`.`id_file`) AS `refid`,
            (SELECT `name` FROM `files` WHERE `files`.`id`=`files_comments`.`id_file`) AS `name`,
            (SELECT `translate` FROM `files` WHERE `files`.`id`=`files_comments`.`id_file`) AS `translate` FROM `files_comments` WHERE `id`='" . 
$id . "'")->fetch(PDO::FETCH_ASSOC);

        if ($_POST['
ok']) {

            if (mb_strlen(Cms::Input($_POST['
text'])) < 2 || mb_strlen(Cms::Input($_POST['text'])) > 5000) {
                $error .= '
Недопустимая длина текста комментария!';
            }

            if (!isset($error)) {
                DB::run("UPDATE `files_comments` SET `text`='" . Cms::Input(
$_POST['text']) . "' WHERE `id`='" . $row['id'] . "'");
                if (Cms::setup('
adminlogs') == 1) {
                    Cms::adminlogs('
ЗЦ', 'Редактирование комментария к файлу ' . Functions::esc($row['name']));
                } //пишем лог админа, если включено
                Functions::redirect(Cms::setup('
home') . '/download/comments/' . $row['id_file']);
            }
        }

        SmartySingleton::instance()->assign(array(
            '
row' => $row,
            '
error' => $error,
            '
pat' => Cms::BreadcrumbDownload($row['refid'])
        ));
        SmartySingleton::instance()->display(SMARTY_TEMPLATE_LOAD . '
/templates/modules/download/edit_comments.tpl');
    }

    function del_comments($id) {
        $row = DB::run("SELECT `files_comments`.*, (SELECT `refid` FROM `files` WHERE `files`.`id`=`files_comments`.`id_file`) AS `refid`,
                        (SELECT `name` FROM `files` WHERE `files`.`id`=`files_comments`.`id_file`) AS `name`,
                        (SELECT `translate` FROM `files` WHERE `files`.`id`=`files_comments`.`id_file`) AS `translate` FROM `files_comments` WHERE `id`='" . 
$id . "'")->fetch(PDO::FETCH_ASSOC);

        if ($_POST['
ok']) {
            DB::run("DELETE FROM `files_comments` WHERE `id` = '" . 
$row['id'] . "' LIMIT 1");
            DB::run("OPTIMIZE TABLE `files_comments`");

            if (Cms::setup('
adminlogs') == 1) {
                Cms::adminlogs('
ЗЦ', 'Удалил комментарий к файлу ' . Functions::esc($row['name']));
            } //пишем лог админа, если включено
            Functions::redirect(Cms::setup('
home') . '/download/comments/' . $row['id_file']);
        }

        if ($_POST['
close']) {
            Functions::redirect(Cms::setup('
home') . '/download/comments/' . $row['id_file']);
        }

        SmartySingleton::instance()->assign(array(
            '
row' => $row,
            '
text' => Cms::bbcode($row['text']),
            '
error' => $error,
            '
pat' => Cms::BreadcrumbDownload($row['refid'])
        ));
        SmartySingleton::instance()->display(SMARTY_TEMPLATE_LOAD . '
/templates/modules/download/del_comments.tpl');
    }

    function load($id) {
        $row = DB::run("SELECT * FROM `files` WHERE `id`='" . 
$id . "'")->fetch(PDO::FETCH_ASSOC);
        DB::run("UPDATE `files` SET `loadcounts` = '" . intval(
$row['loadcounts'] + 1) . "', `timeload` = '" . Cms::realtime() . "' WHERE `id` = '" . $row['id'] . "'");
        if (isset($_POST['
ok'])) {
            if ($row['
type'] == 'jpg' || $row['type'] == 'jpeg' || $row['type'] == 'png' || $row['type'] == 'gif') {
                $pic = Cms::Input($_POST['
pic']);
                $pics = explode('
x', $pic);
                $newfile = $pic . '
_' . $row['file'];

                $img = new SimpleImage();
                if ($_POST['
pr'] == 1) {
                    $img->load($row['
path'] . '' . $row['file'])->fit_to_width($pics[0])->save($row['path'] . '' . $newfile);
                } else {
                    $img->load($row['
path'] . '' . $row['file'])->resize($pics[0], $pics[1])->save($row['path'] . '' . $newfile);
                }
                Download::load($row['
path'] . $newfile);
            }
        } else {
            Download::load($row['
path'] . $row['file']);
        }
    }

    function newfile() {
        $count_files = DB::run("SELECT COUNT(*) FROM `files` WHERE `size` > '
0' AND `time` > '" . intval(Cms::realtime() - Cms::setup('newfile')) . "' AND `id_file`='0'")->fetchColumn();
        if ($count_files > 0) {
            $req_files = DB::run("SELECT `files`.*, (SELECT COUNT(1) FROM `files_comments` WHERE `files_comments`.`id_file`=`files`.`id`) AS `comments` FROM `files` WHERE `size` > '
0' AND `time` > '" . intval(Cms::realtime() - Cms::setup('newfile')) . "' AND `id_file`='0' ORDER BY `id` DESC LIMIT " . $this->page . ", " . $this->message);
            while ($row_files = $req_files->fetch(PDO::FETCH_ASSOC)) {
                $arrayrow_files[] = $row_files;
            }
        }

        SmartySingleton::instance()->assign(array(
            '
count_files' => $count_files,
            '
arrayrow_files' => $arrayrow_files,
            '
pagenav' => Functions::pagination(Cms::setup('home') . '/download/new?', $this->page, $count_files, $this->message)
        ));
        SmartySingleton::instance()->display(SMARTY_TEMPLATE_LOAD . '
/templates/modules/download/new.tpl');
    }

    function top() {
        $count_files = DB::run("SELECT COUNT(*) FROM `files` WHERE `id_file`='
0'")->fetchColumn();
        if ($count_files > 0) {
            $req_files = DB::run("SELECT `files`.*, (SELECT COUNT(1) FROM `files_comments` WHERE `files_comments`.`id_file`=`files`.`id`) AS `comments` FROM `files` WHERE `id_file`='
0' ORDER BY `views` DESC, `loadcounts` DESC LIMIT " . $this->page . ", 100");
            while ($row_files = $req_files->fetch(PDO::FETCH_ASSOC)) {
                $arrayrow_files[] = $row_files;
            }
        }

        SmartySingleton::instance()->assign(array(
            '
count_files' => $count_files,
            '
arrayrow_files' => $arrayrow_files,
            '
pagenav' => Functions::pagination(Cms::setup('home') . '/download/top?', $this->page, $count_files, $this->message)
        ));
        SmartySingleton::instance()->display(SMARTY_TEMPLATE_LOAD . '
/templates/modules/download/top.tpl');
    }

    function search($search) {
        $search = $search ? $search : Cms::Input($_POST['
search']);

        if (empty($search) && isset($_POST['
ok'])) {
            $error = '
Задан пустой поисковый запрос!';
        }

        if (isset($_POST['
ok'])) {
            Functions::redirect('
/download/search/' . Functions::replace($search));
        }

        if ($search) {
            $search = mb_strtolower(urldecode($search), '
UTF-8');

            if ($search && mb_strlen($search) < 3) {
                $error = '
Общая длина поискового запроса должна быть не менее 3 букв.';
            }

            if (!isset($error)) {
                $count_files = DB::run("SELECT COUNT(*) FROM `files` WHERE `id_file`='
0' AND MATCH (name) AGAINST ('*" . $search . "*' IN BOOLEAN MODE)")->fetchColumn();
                if ($count_files > 0) {
                    $req_files = DB::run("SELECT `files`.*, (SELECT COUNT(1) FROM `files_comments` WHERE `files_comments`.`id_file`=`files`.`id`) AS `comments` FROM `files` WHERE `id_file`='
0' AND MATCH (name) AGAINST ('*" . $search . "*' IN BOOLEAN MODE) ORDER BY `id` DESC LIMIT " . $this->page . ", " . $this->message);
                    while ($row_files = $req_files->fetch(PDO::FETCH_ASSOC)) {
                        $arrayrow_files[] = $row_files;
                    }
                }
            }
        }

        SmartySingleton::instance()->assign(array(
            '
error' => $error,
            '
search' => $search,
            '
count_files' => $count_files,
            '
arrayrow_files' => $arrayrow_files,
            '
pagenav' => Functions::pagination(Cms::setup('home') . '/download/search/' . $search . '?', $this->page, $count_files, $this->message)
        ));
        SmartySingleton::instance()->display(SMARTY_TEMPLATE_LOAD . '
/templates/modules/download/search.tpl');
    }

    function down($refid, $id) {
        $req = DB::run("SELECT * FROM `category` WHERE `id` = '" . abs(intval(
$id)) . "' AND `refid` = '" . abs(intval($refid)) . "' LIMIT 1");
        if ($req) {
            $res1 = $req->fetch(PDO::FETCH_ASSOC);
            $sort = $res1['
realid'];
            $req = DB::run("SELECT * FROM `category` WHERE `realid` > '" . abs(intval(
$sort)) . "' ORDER BY `realid` ASC LIMIT 1");
            if ($req) {
                $res = $req->fetch(PDO::FETCH_ASSOC);
                $id2 = $res['
id'];
                $sort2 = $res['
realid'];
                DB::run("UPDATE `category` SET `realid` = '" . abs(intval(
$sort2)) . "' WHERE `id` = '" . abs(intval($id)) . "' AND `refid` = '" . abs(intval($refid)) . "'");
                DB::run("UPDATE `category` SET `realid` = '" . abs(intval(
$sort)) . "' WHERE `id` = '" . abs(intval($id2)) . "' AND `refid` = '" . abs(intval($refid)) . "'");
            }
        }
        Functions::redirect(Recipe::getReferer());
    }

    function up($refid, $id) {
        $req = DB::run("SELECT * FROM `category` WHERE `id` = '" . abs(intval(
$id)) . "' AND `refid` = '" . abs(intval($refid)) . "' LIMIT 1");
        if ($req) {
            $res1 = $req->fetch(PDO::FETCH_ASSOC);
            $sort = $res1['
realid'];
            $req = DB::run("SELECT * FROM `category` WHERE `realid` < '" . abs(intval(
$sort)) . "' ORDER BY `realid` DESC LIMIT 1");
            if ($req) {
                $res = $req->fetch(PDO::FETCH_ASSOC);
                $id2 = $res['
id'];
                $sort2 = $res['
realid'];
                DB::run("UPDATE `category` SET `realid` = '" . abs(intval(
$sort2)) . "' WHERE `id` = '" . abs(intval($id)) . "' AND `refid` = '" . abs(intval($refid)) . "'");
                DB::run("UPDATE `category` SET `realid` = '" . abs(intval(
$sort)) . "' WHERE `id` = '" . abs(intval($id2)) . "' AND `refid` = '" . abs(intval($refid)) . "'");
            }
        }
        Functions::redirect(Recipe::getReferer());
    }

}
Онлайн: 0
Реклама