Запись [a:mvc.sns] < dev.sky.1.001

Версия 1.001

   
en
MVC.SNS (SKY NULL SITE)

Try to set cache_act=0 also in admin

N1: SKIP IMITATE:
N2: HEAD: ?
001
002
003
004
005
006
007
008
009
010
011
012
013
author: energy
script tested: yes
edited manualy: yes
ftrd: A^39/6/5/8 D^0/0/0/0 E^2/0/3/_ R^0/0/_/0
this script: manual, 12 records, 63 objects, 107080 bytes
reused code: coresky jquery
rollback: yes
rollback wind: yes
text files: php inc html htm tpl js css txt htaccess cfg svg
include paths: /
exclude paths: _dev _arch dev.php
include tables: /
exclude tables: _dev_
N3: RUN RECORDS: 2,12
N4: UPDATE CELL: memory.5.tmemo
001
002
003
htaccess admin main main/mvc view var var/hard
index pub pub/img
php 10
N5: CREATE DIRS:
001
main/mvc
N6: WRITE FILE: main/mvc/c_article.php
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
<?php defined('START') or die;
 
class c_article extends SKY_CONTROLLER
{
    function head_c(&$page, &$pval) {
        parent::head_c($page$pval);
    }
 
    function callback_art($row) {
        $row->title html($row->title);
    }
 
    function __call($name$args) {
        if ($pval $args[2]) {
            preg_match("/^[a-z\-_\d]+$/"$pval) or die;
            $q sql("select * from article where uri='$pval'");
            if (eval(fetch)) {
                sql("update article set viewed=1+viewed where id=$r_id");
                $this->_y = ['show_list' => false] + $this->_y;
                $this->_v = [
                    'tkd' => "$r_title\n$r_meta_k\n$r_meta_d",
                    'content' => "<h1>$r_title</h1>$r_content<p> Also see %PHP_ARTICLES%<br>" a('open all''article'),
                ];
                return '_';
            }
            return false;
 
        } else {
            $sql "from article";
            list ($pagination$start$v_cur$v_pc$v_prev$v_next) = pagination(sql("+select count(1) $sql"), $ipp 15);
            $this->_v = [
                'k_title' => 'Articles list',
                'k_metak' => 'Articles keywords',
                'k_metak' => 'Articles description',
                'pagination' => $pagination,
                'e_art' => [
                    'callback' => [$this'callback_art'],
                    'query' => sqlf("select * $sql limit %d, %d"$start$ipp),
                ],
            ];
        }
    }
}
 
N7: WRITE FILE: main/mvc/c_main.php
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
<?php defined('START') or die;
 
class c_main extends SKY_CONTROLLER
{
    function c_test() {
        sql("select 'wrong AJAX' from absent_table");
        0; echo 'QQ';
    }
 
    function empty_c() {
        if (AJAX) { # get X tracing
            $this->debug false;
            echo sql("+select tmemo from memory where id=1");
        } else {
            $this->_v = [
                'k_title' => 'Main',
                'k_metak' => "Main page, $this->s_keywords",
                'k_metak' => $this->s_desc,
            ];
        }
    }
 
    function c_next() {
        $p_i intval($this->p_i);
        require 'view/e_articles.php';
    }
}
 
N8: WRITE FILE: main/mvc/common_c.php
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
<?php defined('START') or die;
 
class common_c extends SKY_CONTROLLER
{
    function head_c(&$_page, &$_pval) {
        if (AJAX) return true;
        $user self::$user;
        $menu = ['article' => 'Article''svg' => 'SVG'];
        $page $_page . ($_pval "?$_pval'');
        $this->_y = [
            'show_list' => true,
            'menu' => menu($page$menu += $user->id ? ['user' => $user->login'logout' => 'Logout'] : ['login' => 'Login'], '%s'),
        ];
    }
 
    function tail_c($reth$retb) {
    }
 
    function e_sample() {
        echo 'This content taken from PHP-label';
    }
}
 
N9: WRITE FILE: main/mvc/default_c.php
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
<?php defined('START') or die;
 
class default_c extends SKY_CONTROLLER
{
    function c_svg() {
    }
 
    function c_test() {
        sql("select 'wrong query' from absent_table");
        0;
    }
 
    function c_login() {
        if ($_POST && self::$user->login()) jump(true);
        $this->_v = [
            'k_title' => 'Login',
            'k_metak' => 'login',
            'k_metak' => 'Enter page',
        ];
    }
 
    function c_logout() {
        self::$user->logout();
    }
}
 
N10: END: