Запись [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"); 2 / 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"); 1 / 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: