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

class MainModel extends Base {

    function 
index() {
        
$news DB::run("SELECT `news`.*, (SELECT COUNT(1) FROM `news_comments` WHERE `news_comments`.`id_news`=`news`.`id`) AS `count` FROM `news` WHERE `status`='1' ORDER BY `id` DESC LIMIT 1")->fetch(PDO::FETCH_ASSOC);
        
SmartySingleton::instance()->assign(array(
            
'news' => $news,
            
'text' => BBcode::delete($news['text'])
        ));
        
SmartySingleton::instance()->display(SMARTY_TEMPLATE_LOAD '/templates/index.tpl');
    }

    function 
online() {
        
$count DB::run("SELECT COUNT(*) FROM `online` WHERE `type`='1'")->fetchColumn();
        if (
$count 0) {
            
$req DB::run("SELECT `online`.*, ".User::data('online')." FROM `online` WHERE `type`='1' 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('/online?'$this->page$count$this->message)
        ));
        
SmartySingleton::instance()->display(SMARTY_TEMPLATE_LOAD '/templates/modules/online/index.tpl');
    }

    function 
guest() {
        
$count DB::run("SELECT COUNT(*) FROM `online` WHERE `type`='2'")->fetchColumn();
        if (
$count 0) {
            
$req DB::run("SELECT * FROM `online` WHERE `type`='2' 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('/online/guest?'$this->page$count$this->message)
        ));
        
SmartySingleton::instance()->display(SMARTY_TEMPLATE_LOAD '/templates/modules/online/guest.tpl');
    }

    function 
smiles() {
        if (empty(
$_SESSION['referer'])) {
            
$_SESSION['referer'] = Recipe::getReferer();
        }

        if (
$_POST['ok']) {
            for (
$i 0$i count($_POST['select']); $i++) {
                if (
DB::run("SELECT COUNT(*) FROM `smiles_user` WHERE `id_user`='" $this->user['id'] . "' AND `id_smile` = '" intval($_POST['select'][$i]) . "'")->fetchColumn() == 0) {
                    
DB::run("INSERT INTO `smiles_user` SET 
                            `id_user` = '" 
$this->user['id'] . "', 
                                `id_smile` = '" 
intval($_POST['select'][$i]) . "'");
                }
            }
            
Functions::redirect(Recipe::getReferer());
        }

        
$count DB::run("SELECT COUNT(*) FROM `smiles`")->fetchColumn();
        if (
$count 0) {
            
$req DB::run("SELECT `smiles`.*, (SELECT `id_smile` FROM `smiles_user` WHERE `smiles_user`.`id_smile`=`smiles`.`id` AND `id_user`='" $this->user['id'] . "') AS `idsmile` FROM `smiles` ORDER BY `id` ASC 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('/smiles?'$this->page$count$this->message)
        ));
        
SmartySingleton::instance()->display(SMARTY_TEMPLATE_LOAD '/templates/modules/user/smiles.tpl');
    }

    function 
smiles_my() {
        if (empty(
$_SESSION['referer'])) {
            
$_SESSION['referer'] = Recipe::getReferer();
        }

        if (
$_POST['ok']) {
            for (
$i 0$i count($_POST['select']); $i++) {
                if (
DB::run("SELECT COUNT(*) FROM `smiles_user` WHERE `id_user`='" $this->user['id'] . "' AND `id` = '" intval($_POST['select'][$i]) . "'")->fetchColumn() > 0) {
                    
DB::run("DELETE FROM `smiles_user` WHERE `id` = '" intval($_POST['select'][$i]) . "' AND `id_user` = '" $this->user['id'] . "' LIMIT 1");
                }
            }
            
Functions::redirect(Recipe::getReferer());
        }

        
$count DB::run("SELECT COUNT(*) FROM `smiles_user` WHERE `id_user` = '" $this->user['id'] . "'")->fetchColumn();
        if (
$count 0) {
            
$req DB::run("SELECT `smiles_user`.*, 
                            `smiles`.`code`, `smiles`.`photo`
                                FROM `smiles` LEFT JOIN `smiles_user` ON `smiles`.`id` = `smiles_user`.`id_smile` WHERE `id_user` = '" 
$this->user['id'] . "' ORDER BY `id` ASC 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('/smiles/my?'$this->page$count$this->message)
        ));
        
SmartySingleton::instance()->display(SMARTY_TEMPLATE_LOAD '/templates/modules/user/smiles_my.tpl');
    }

    function 
bbcode() {
        if (empty(
$_SESSION['referer'])) {
            
$_SESSION['referer'] = Recipe::getReferer();
        }
        
SmartySingleton::instance()->display(SMARTY_TEMPLATE_LOAD '/templates/modules/user/bbcode.tpl');
    }

    function 
bbcode_ajax() {
        
$message = isset($_POST['data']) ? $_POST['data'] : '';
        
SmartySingleton::instance()->assign(array(
            
'message' => Cms::bbcode($message)
        ));
        
SmartySingleton::instance()->display(SMARTY_TEMPLATE_LOAD '/templates/previews.tpl');
    }

    function 
captcha() {
        
$width Cms::setup('captcha_width'); //Ширина изображения
        
$height Cms::setup('captcha_height'); //Высота изображения
        
$font_size Cms::setup('captcha_font_size'); //Размер шрифта
        
$let_amount Cms::setup('captcha_let_amount'); //Количество символов, которые нужно набрать
        
$fon_let_amount Cms::setup('captcha_let_amount_fon'); //Количество символов, которые находятся на фоне
        
$path_fonts LIB '/font/'//Путь к шрифтам


        
$letters = array(
            
'a',
            
'b',
            
'c',
            
'd',
            
'e',
            
'f',
            
'g',
            
'h',
            
'j',
            
'k',
            
'm',
            
'n',
            
'p',
            
'q',
            
'r',
            
's',
            
't',
            
'u',
            
'v',
            
'w',
            
'x',
            
'y',
            
'z',
            
'2',
            
'3',
            
'4',
            
'5',
            
'6',
            
'7',
            
'9'
        
);
        
$colors = array(
            
'10',
            
'30',
            
'50',
            
'70',
            
'90',
            
'110',
            
'130',
            
'150',
            
'170',
            
'190',
            
'210'
        
);

        
$src imagecreatetruecolor($width$height);
        
$fon imagecolorallocate($src255255255);
        
imagefill($src00$fon);

        
$fonts = array();
        
$dir opendir($path_fonts);
        while (
$fontName readdir($dir)) {
            if (
$fontName != "." && $fontName != "..") {
                
$fonts[] = $fontName;
            }
        }
        
closedir($dir);

        for (
$i 0$i $fon_let_amount$i++) {
            
$color imagecolorallocatealpha($srcrand(0255), rand(0255), rand(0255), 100);
            
$font $path_fonts $fonts[rand(0sizeof($fonts) - 1)];
            
$letter $letters[rand(0sizeof($letters) - 1)];
            
$size rand($font_size 2$font_size 2);
            
imagettftext($src$sizerand(045), rand($width 0.1$width $width 0.1), rand($height 0.2$height), $color$font$letter);
        }

        for (
$i 0$i $let_amount$i++) {
            
$color imagecolorallocatealpha($src$colors[rand(0sizeof($colors) - 1)], $colors[rand(0sizeof($colors) - 1)], $colors[rand(0sizeof($colors) - 1)], rand(2040));
            
$font $path_fonts $fonts[rand(0sizeof($fonts) - 1)];
            
$letter $letters[rand(0sizeof($letters) - 1)];
            
$size rand($font_size 2.1 2$font_size 2.1 2);
            
$x = ($i 1) * $font_size rand(47);
            
$y = (($height 2) / 3) + rand(05);
            
$cod[] = $letter;
            
imagettftext($src$sizerand(015), $x$y$color$font$letter);
        }

        
$cod implode(''$cod);

        
setcookie('code'$codtime() + 60 60 24'/');

        
// предотвращаем кэширование на стороне пользователя
        
header("Expires: Wed, 1 Jan 1997 00:00:00 GMT");
        
header("Last-Modified: " gmdate("D, d M Y H:i:s") . " GMT");
        
header("Cache-Control: no-store, no-cache, must-revalidate");
        
header("Cache-Control: post-check=0, pre-check=0"false);
        
header("Pragma: no-cache");

        
header("Content-type: image/gif");
        
imagegif($src);
        
imagedestroy($src);
    }

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