- 01
 - 02
 - 03
 - 04
 - 05
 - 06
 - 07
 - 08
 - 09
 - 10
 - 11
 - 12
 - 13
 - 14
 - 15
 - 16
 - 17
 - 18
 - 19
 - 20
 - 21
 - 22
 - 23
 - 24
 - 25
 - 26
 - 27
 - 28
 - 29
 - 30
 - 31
 - 32
 - 33
 - 34
 - 35
 - 36
 - 37
 - 38
 - 39
 - 40
 - 41
 - 42
 - 43
 - 44
 - 45
 - 46
 - 47
 - 48
 - 49
 - 50
 - 51
 - 52
 - 53
 - 54
 - 55
 - 56
 - 57
 - 58
 - 59
 - 60
 - 61
 - 62
 - 63
 - 64
 - 65
 - 66
 - 67
 - 68
 - 69
 - 70
 - 71
 - 72
 - 73
 - 74
 - 75
 - 76
 - 77
 - 78
 - 79
 - 80
 - 81
 - 82
 - 83
 - 84
 - 85
 - 86
 - 87
 - 88
 - 89
 - 90
 - 91
 - 92
 - 93
 - 94
 - 95
 - 96
 - 97
 - 98
 
                        class UserModel extends Base { 
    function index($id) { 
        $row = DB::run("SELECT `users`.*, (SELECT COUNT(*) FROM `guest` WHERE `guest`.`id_user`=`users`.`id`) AS `guest`,
                        (SELECT COUNT(*) FROM `files` WHERE `files`.`id_user`=`users`.`id`) AS `download`,
                        (SELECT COUNT(*) FROM `blog` WHERE `blog`.`id_user`=`users`.`id`) AS `blog`,
                        (SELECT COUNT(*) FROM `news_comments` WHERE `news_comments`.`id_user`=`users`.`id`) AS `news_comments`,
                        (SELECT COUNT(*) FROM `files_comments` WHERE `files_comments`.`id_user`=`users`.`id`) AS `files_comments`,
                        (SELECT COUNT(*) FROM `blog_comments` WHERE `blog_comments`.`id_user`=`users`.`id`) AS `blog_comments` FROM `users` WHERE `id`='" . $id . "'")->fetch(PDO::FETCH_ASSOC); 
        SmartySingleton::instance()->assign(array( 
            'row' => $row, 
            'friends' => DB::run("SELECT COUNT(*) FROM `friends` WHERE `id_user`='" . $this->user['id'] . "' AND `user_id`='" . $row['id'] . "' OR `id_user`='" . $row['id'] . "' AND `user_id`='" . $this->user['id'] . "'")->fetchColumn(), 
            'blacklist' => DB::run("SELECT COUNT(*) FROM `blacklist` WHERE `id_user`='" . $this->user['id'] . "' AND `user_id`='" . $row['id'] . "'")->fetchColumn() 
        )); 
        SmartySingleton::instance()->display(SMARTY_TEMPLATE_LOAD . '/templates/modules/user/index.tpl'); 
    } 
  //  и еще пачка методов 
}
// базовая модель. 
class Base { 
    function __construct() { 
        $this->user = User::auth(); 
        $this->page = isset($_REQUEST['page']) ? intval($_REQUEST['page']) : 0;
        if ($this->user['id']) { 
            $this->message = $this->user['message']; 
        } else { 
            $this->message = Cms::setup('message'); 
        } 
        //если забанен 
        if ($this->user['ban'] == 1 && $this->user['bantime'] > Cms::realtime() && $_SERVER['REQUEST_URI'] != '/user/ban' && $_SERVER['REQUEST_URI'] != '/user/exit') {
            Functions::redirect(Cms::setup('home') . '/user/ban'); 
        } 
    } 
} 
// user auth  метод самый сок. или  (почему у меня лагает???)
class User { 
    public static $user = array(); 
    public static function auth() { 
        /* Авторизация */ 
        if (isset($_COOKIE['id_user']) && isset($_COOKIE['hashcode']) && $_COOKIE['id_user'] != NULL && $_COOKIE['hashcode'] != NULL) {
            $userdata = DB::run("SELECT * FROM `users` WHERE `id` = " . abs(intval($_COOKIE['id_user'])) . " AND `hashcode` = '" . Cms::Input($_COOKIE['hashcode']) . "' LIMIT 1")->fetch(PDO::FETCH_ASSOC); 
            if ($userdata['id']) { 
                /* записываем последнее посещение */ 
                DB::run("UPDATE `users` SET `date_last`='" . Cms::realtime() . "' WHERE `id`='" . $userdata['id'] . "'");
                /* онлайн */ 
                if (DB::run("SELECT COUNT(*) FROM `online` WHERE `id_user`='" . $userdata['id'] . "'")->fetchColumn() > 0) { 
                    DB::run("UPDATE `online` SET `time`='" . Cms::realtime() . "', `referer`='" . Cms::Input(Cms::setup('home') . '' . Functions::GET_PATH_INFO()) . "' WHERE `id_user`='" . $userdata['id'] . "'");
                } else { 
                    DB::run("INSERT INTO `online` SET  
                       `id_user`='" . $userdata['id'] . "',  
                           `ip`='" . Recipe::getClientIP() . "',  
                                `browser`='" . Recipe::getBrowser() . "', 
                                    `referer`='" . Cms::Input(Cms::setup('home') . '' . Functions::GET_PATH_INFO()) . "',
                                        `time`='" . Cms::realtime() . "'"); 
                } 
                SmartySingleton::instance()->assign(array( 
                    'newnotice' => DB::run("SELECT COUNT(*) FROM `notice` WHERE `id_user`='" . $userdata['id'] . "' AND `status`='1'")->fetchColumn(), 
                    'newmail' => DB::run("SELECT COUNT(*) FROM `mail` WHERE `user_id`= '" . $userdata['id'] . "' AND `read`='0'")->fetchColumn() 
                )); 
                self::$user = $userdata; 
                return self::$user; 
            } 
        } else { 
            setcookie('id_user', '', 0, '/'); 
            setcookie('hashcode', '', 0, '/'); 
            session_destroy(); 
            /* онлайн для гостей */ 
            if (DB::run("SELECT COUNT(*) FROM `online` WHERE `ip`='" . Recipe::getClientIP() . "' AND `type` = '2'")->fetchColumn() > 0) { 
                DB::run("UPDATE `online` SET `time`='" . Cms::realtime() . "', `referer`='" . Cms::Input(Cms::setup('home') . '' . Functions::GET_PATH_INFO()) . "' WHERE `ip`='" . Recipe::getClientIP() . "' AND `type` = '2'");
            } else { 
                DB::run("INSERT INTO `online` SET  
                           `ip`='" . Recipe::getClientIP() . "',  
                                `browser`='" . Recipe::getBrowser() . "', 
                                    `referer`='" . Cms::Input(Cms::setup('home') . '' . Functions::GET_PATH_INFO()) . "',
                                        `type` = '2', 
                                            `time`='" . Cms::realtime() . "'");
            } 
        } 
    } 
    function data($table) { 
        $array = "(SELECT `login` FROM `users` WHERE `users`.`id`=`$table`.`id_user`) AS `login`,
                    (SELECT `avatar` FROM `users` WHERE `users`.`id`=`$table`.`id_user`) AS `avatar`,
                        (SELECT `level` FROM `users` WHERE `users`.`id`=`$table`.`id_user`) AS `level`";
        return $array; 
    } 
}
                                 
        
"Вы забанены! Бан истекает: -32140632 секунд назад"
Т.е. давным-давно разбанили?
12 месяцев по 31 дню за вычетом 2 минут 48 секунд... Типа на год.
+1. Все мелкие сайты как под копирку. "Модно, молодёжно, как у твиттера!"
З.Ы. Ну, к слову, на безрыбье, когда дизайнера с версталой под рукой нет - и бутстрап сойдёт. Всё лучше, чем очередной уёбищный говнодизайн-от-программиста.
Особенно учитывая, что сам "Twitter" не использовал ни код своего фреймворка, ни его визуальные решения.
Ну вот кстати я его довольно часто использую для всяких внутренних инструментов с веб-интерфейсом, когда нужно сбацать что-нибудь полезное за пару дней.
А теперь мысленно перенеси это всё на десктоп: "ой, да я стандартные контролы использую только когда дизайнера под рукой нет".
Глупо звучит, правда?
да какие угодно
Я же говорю: респонсивненько сверстать чтобы оно работало и под iPhone и под 30" моник -- это не баран чихнул, нужен действительно качественный верстун (а их мало, кстати). Бутстрап это СИЛЬНО упрощает.
Какое точное и понятное название! И ведь не соврал же.
> $_SERVER['REQUEST_URI'] != '/user/ban'
Для "PHP" магические строки - это нормально?
Зашёл в гостевую: анимированные жёлтые смайлики-шарики, гифки, блёстки-звёздочки... Спасибо, вернули 2002.
Только бутстрап там не в тему. Должен быть HTML 4.01 в ВЕРХНЕМРЕГИСТРЕ, табличная верстка и BGSOUND
@
frameset rows
Netscape is love, netscape is life.
Меню в левом фрейме, тело -- в правом, и target у a чтобы в главном фрейме открывалось.
Фремы были прокляты и забыты еще на излёте 90х.
Может быть вы еще и SSI помните?
Зачем мне двачеры?
Мне в 2008м было уже не до сосачей ваших
> > Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'LOW_PRIORITY `online` SET `ip`='93.125.45.63', ' at line 1' in /var/www/maisosu/data/www/vcms.su/app/core/classes/DB.php:47 Stack trace: #0 /var/www/maisosu/data/www/vcms.su/app/core/classes/DB.php(47): PDOStatement->execute(Array) #1 /var/www/maisosu/data/www/vcms.su/app/core/classes/User.php(47): DB::run('INSERT INTO LOW...') #2 /var/www/maisosu/data/www/vcms.su/app/core/core.php(26): User::auth() #3 /var/www/maisosu/data/www/vcms.su/index.php(15): require_once('/var/www/maisos...') #4 {main} thrown in /var/www/maisosu/data/www/vcms.su/app/core/classes/DB.php on line 47