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

class GalleryModel extends Base {

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

            
$count DB::run("SELECT COUNT(*) FROM `gallery_photo` WHERE `id_gallery`='" $row['id'] . "'")->fetchColumn();
            if (
$count 0) {
                
$req DB::run("SELECT `gallery_photo`.*, (SELECT `name` FROM `gallery` WHERE `gallery`.`id`=`gallery_photo`.`id_gallery`) AS `namealbum` FROM `gallery_photo` WHERE `id_gallery`='" $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,
                
'count' => $count,
                
'arrayrow' => $arrayrow,
                
'pagenav' => Functions::pagination('/gallery/' $row['id'] . '?'$this->page$count$this->message)
            ));
        } else {
            
$count DB::run("SELECT COUNT(*) FROM `gallery_photo`")->fetchColumn();
            if (
$count 0) {
                
$req DB::run("SELECT `gallery_photo`.*, (SELECT `name` FROM `gallery` WHERE `gallery`.`id`=`gallery_photo`.`id_gallery`) AS `namealbum` FROM `gallery_photo` ORDER BY `id` DESC LIMIT $this->page, " $this->message);
                while (
$rows $req->fetch(PDO::FETCH_ASSOC)) {
                    
$arrayrow[] = $rows;
                }
            }

            
SmartySingleton::instance()->assign(array(
                
'count' => $count,
                
'arrayrow' => $arrayrow,
                
'pagenav' => Functions::pagination('/gallery?'$this->page$count$this->message)
            ));
        }
        
SmartySingleton::instance()->display(SMARTY_TEMPLATE_LOAD '/templates/modules/gallery/index.tpl');
    }

    function 
photo($id$id2) {
        
$row DB::run("SELECT gallery_photo. * , (SELECT `name` FROM `gallery` WHERE `gallery`.`id` = gallery_photo.`id_gallery` ) AS `namealbum`, " User::data('gallery_photo') . " FROM `gallery_photo` WHERE `id`='" $id2 "'")->fetch(PDO::FETCH_ASSOC);

        
Cms::addviews('gallery_photo'$row);

        
SmartySingleton::instance()->assign(array(
            
'row' => $row,
            
'text' => Cms::bbcode($row['text']),
            
'Img' => getimagesize('files/user/' $row['id_user'] . '/gallery/' $row['id_gallery'] . '/' $row['photo']),
            
'back' => DB::run("SELECT * FROM `gallery_photo` WHERE `id`<'" abs(intval($row['id'])) . "' ORDER BY `id` DESC LIMIT 1")->fetch(PDO::FETCH_ASSOC),
            
'next' => DB::run("SELECT * FROM `gallery_photo` WHERE `id`>'" abs(intval($row['id'])) . "' ORDER BY `id` ASC LIMIT 1")->fetch(PDO::FETCH_ASSOC)
        ));
        
SmartySingleton::instance()->display(SMARTY_TEMPLATE_LOAD '/templates/modules/gallery/photo.tpl');
    }

    function 
top() {
        
$count DB::run("SELECT COUNT(*) FROM `gallery_photo`")->fetchColumn();
        if (
$count 0) {
            
$req DB::run("SELECT `gallery_photo`.*, (SELECT `name` FROM `gallery` WHERE `gallery`.`id`=`gallery_photo`.`id_gallery`) AS `namealbum` FROM `gallery_photo` ORDER BY `views` DESC LIMIT $this->page, " $this->message);
            while (
$rows $req->fetch(PDO::FETCH_ASSOC)) {
                
$arrayrow[] = $rows;
            }
        }

        
SmartySingleton::instance()->assign(array(
            
'count' => $count,
            
'arrayrow' => $arrayrow,
            
'pagenav' => Functions::pagination('/gallery/top?'$this->page$count$this->message)
        ));
        
SmartySingleton::instance()->display(SMARTY_TEMPLATE_LOAD '/templates/modules/gallery/top.tpl');
    }

    function 
albums() {
        
$count DB::run("SELECT COUNT(*) FROM `gallery`")->fetchColumn();
        if (
$count 0) {
            
$req DB::run("SELECT gallery. * , (SELECT COUNT(*) FROM `gallery_photo` WHERE `gallery_photo`.`id_gallery` = gallery.`id` ) AS `count` FROM `gallery` ORDER BY `time` DESC LIMIT " $this->page ", " $this->message);
            while (
$row $req->fetch(PDO::FETCH_ASSOC)) {
                
$arrayrow[] = $row;
            }
        }

        
SmartySingleton::instance()->assign(array(
            
'count' => $count,
            
'arrayrow' => $arrayrow,
            
'pagenav' => Functions::pagination('/gallery/albums?'$this->page$count$this->message)
        ));
        
SmartySingleton::instance()->display(SMARTY_TEMPLATE_LOAD '/templates/modules/gallery/albums.tpl');
    }

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

        if (
$_POST['ok']) {

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

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

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

                if (
Cms::setup('adminlogs') == 1) {
                    
Cms::adminlogs('Фотогалерея''Редактирование альбома ' Cms::Input($_POST['name']));
                } 
//пишем лог админа, если включено
                
Functions::redirect(Cms::setup('home') . '/gallery/albums');
            }
        }

        
SmartySingleton::instance()->assign(array(
            
'row' => $row,
            
'error' => $error
        
));
        
SmartySingleton::instance()->display(SMARTY_TEMPLATE_LOAD '/templates/modules/gallery/edit_album.tpl');
    }

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

        if (
$_POST['ok']) {
            
Cms::DelDir('files/user/' $row['id_user'] . '/gallery/' $row['id']);

            
DB::run("DELETE FROM `gallery` WHERE `id` = '" $row['id'] . "' LIMIT 1");
            
DB::run("DELETE FROM `gallery_photo` WHERE `id_gallery` = '" $row['id'] . "'");
            
DB::run("OPTIMIZE TABLE `gallery`");
            
DB::run("OPTIMIZE TABLE `gallery_photo`");

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

        if (
$_POST['close']) {

            
Functions::redirect(Cms::setup('home') . '/gallery/albums');
        }

        
SmartySingleton::instance()->assign(array(
            
'row' => $row
        
));
        
SmartySingleton::instance()->display(SMARTY_TEMPLATE_LOAD '/templates/modules/gallery/del_album.tpl');
    }

    function 
edit($id) {
        
$row DB::run("SELECT gallery_photo. * , (SELECT `name` FROM `gallery` WHERE `gallery`.`id` = gallery_photo.`id_gallery` ) AS `namealbum` FROM `gallery_photo` WHERE `id`='" $id "'")->fetch(PDO::FETCH_ASSOC);

        if (
$_POST['ok']) {

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

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

            
$do_filephoto false;
            
// Проверка загрузки с обычного браузера
            
if ($_FILES['file']['size'] > 0) {
                
$do_filephoto true;
                
$ifname strtolower($_FILES['file']['name']);
                
$type pathinfo($ifnamePATHINFO_EXTENSION);
                
//Конечное имя файла для сохранения с расширением
                
$fnamephoto Functions::passgen(25) . '.' $type;
                
$fsize $_FILES['file']['size'];
            }

            
//обработка файла
            
if ($do_filephoto) {
                
// Список допустимых расширений файлов.
                
$al_ext = array(
                    
'jpg',
                    
'jpeg',
                    
'gif',
                    
'png'
                
);
                
$ext explode("."$fnamephoto);
                
// Проверка файла на наличие только одного расширения
                
if (count($ext) != 2) {
                    
$error .= 'Запрещенный формат картинки!<br/>';
                }
                
// Проверка допустимых расширений файлов
                
if (!in_array($ext[1], $al_ext)) {
                    
$error .= 'Не допустимый формат картинки!<br/>';
                }
                
// Проверка на допустимый размер файла
                
if ($fsize >= Cms::setup('filesize_photo') * 1024 1024) {
                    
$error .= 'Недопустимый вес файла! Максимум ' Cms::setup('filesize_photo') . ' Mb!<br/>';
                }

                
$img getimagesize($_FILES["file"]["tmp_name"]);
                if (
$img[0] < Cms::setup('gallerypreview')) {
                    
$error .= 'Ваша фотография слишком маленькая! Минимальный допустимый размер для загрузки составляет 250 пикселей по ширине!<br/>';
                }
            }

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

                if ((
move_uploaded_file($_FILES["file"]["tmp_name"], HOME '/files/user/' $row['id_user'] . '/gallery/' $row['id_gallery'] . '/' $fnamephoto)) == true) {
                    
Cms::DelFile(HOME '/files/user/' $row['id_user'] . '/gallery/' $row['id_gallery'] . '/small-' $row['photo']);
                    
Cms::DelFile(HOME '/files/user/' $row['id_user'] . '/gallery/' $row['id_gallery'] . '/' $row['photo']);

                    
$img = new SimpleImage();
                    
$img->load(HOME '/files/user/' $row['id_user'] . '/gallery/' $row['id_gallery'] . '/' $fnamephoto)->fit_to_width(Cms::setup('gallerypreview'))->save(HOME '/files/user/' $row['id_user'] . '/gallery/' $row['id_gallery'] . '/small-' $fnamephoto);

                    
DB::run("UPDATE `gallery_photo` SET `photo` = '" $fnamephoto "', `size`='" Functions::size($fsize) . "' WHERE `id`= '" $row['id'] . "'");
                }

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

        
SmartySingleton::instance()->assign(array(
            
'row' => $row
        
));
        
SmartySingleton::instance()->display(SMARTY_TEMPLATE_LOAD '/templates/modules/gallery/edit.tpl');
    }

    function 
del($id) {
        
$row DB::run("SELECT gallery_photo. * , (SELECT `name` FROM `gallery` WHERE `gallery`.`id` = gallery_photo.`id_gallery` ) AS `namealbum` FROM `gallery_photo` WHERE `id`='" $id "'")->fetch(PDO::FETCH_ASSOC);

        if (
$_POST['ok']) {
            
Cms::DelFile('files/user/' $row['id_user'] . '/gallery/' $row['id_gallery'] . '/small-' $row['photo']);
            
Cms::DelFile('files/user/' $row['id_user'] . '/gallery/' $row['id_gallery'] . '/' $row['photo']);

            
DB::run("DELETE FROM `gallery_photo` WHERE `id` = '" $row['id'] . "' LIMIT 1");
            
DB::run("OPTIMIZE TABLE `gallery_photo`");

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

        if (
$_POST['close']) {

            
Functions::redirect(Cms::setup('home') . '/gallery/' $row['id_gallery']);
        }

        
SmartySingleton::instance()->assign(array(
            
'row' => $row
        
));
        
SmartySingleton::instance()->display(SMARTY_TEMPLATE_LOAD '/templates/modules/gallery/del.tpl');
    }

    function 
load($id) {
        
$row DB::run("SELECT * FROM `gallery_photo` WHERE `id`='" $id "'")->fetch(PDO::FETCH_ASSOC);
        
Download::load('files/user/' $row['id_user'] . '/gallery/' $row['id_gallery'] . '/' $row['photo']);
    }

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