Annotation of parser3/www/htdocs/auto.p, revision 1.23
1.23 ! paf 1: @USE
! 2: common/lib.p
! 3: common/layout.p
! 4: common/implode.p
! 5: date/dtf.p
! 6: mysql.p
! 7: #rotabanner.p
! 8:
! 9:
! 10: ###########################################################################
! 11: @auto[]
! 12: $MAIN:pSQL[^mysql::init[$SQL.connect-string;
! 13: $.is_debug(1)
! 14: $.cache_dir[/../data/cache]
! 15: ]]
! 16:
! 17: ^detectBrowser[]
! 18:
! 19: # эта табличка нужна для очистки всякой фигни от ентитей/тегов
! 20: $repl[^table::create{a b
! 21:  ^;
! 22: &hellip^; ...
! 23: &rdquo^; "
! 24: &ldquo^; "
! 25: »^; "
! 26: «^; "
! 27: &mdash^; -
! 28: &ndash^; -
! 29: №^; №
! 30: &bull^; }]
! 31:
! 32: #end @auto[]
! 33:
! 34:
! 35:
! 36: ###########################################################################
! 37: @error404[]
! 38: #$response:status[404]
! 39: ^location[/404/]
! 40: #end @error404[]
! 41:
! 42:
! 43:
! 44: ###########################################################################
! 45: @postprocess[body][repl]
! 46: $result[$body]
! 47: ^if(def $result && $result is "string"){
! 48: ^if($MAIN:browser eq "nn" && $MAIN:browser_ver < 5){
! 49: $repl[^table::create[nameless]{
! 50: &hellip^; …^;
! 51: &rdquo^; ”^;
! 52: &ldquo^; “^;
! 53: &mdash^; —^;
! 54: &ndash^; –^;
! 55: &bull^; •^;
! 56: }]
! 57: $result[^result.replace[$repl]]
! 58: }
! 59:
! 60: ^rem{ *** это инициализация банеров *** }
! 61: # $banner[^rotabanner::init[название проекта;банер по умолчанию]]
! 62: ^rem{ *** обрабатываем [parser]код[/parser] *** }
! 63: $result[^result.match[\[(parser)\](.+?)\[/\1\]][g]{^taint[as-is][^process{$match.2}]}]
! 64:
! 65: ^rem{ *** если отдаем страничку яндексу, то меняем &^; на &, а то у него крышу сносит *** }
! 66: ^if(^env:HTTP_USER_AGENT.match[yandex][i]){
! 67: $result[^result.match[&^;][g]{&}]
! 68: }
! 69: }
! 70:
! 71: # получаем статистику по sql запросам
! 72: ^getSQLStat[]
! 73:
! 74: # вызываем rusage, который напишет в log столько страничка генерилась и сколько отожрала памяти
! 75: #^rusage[]
! 76:
! 77: #end @postprocess[]
! 78:
! 79:
! 80:
! 81: ###########################################################################
! 82: @rusage[msg][now;s]
! 83: ^if(!in "/admin/"){
! 84: $now[^date::now[]]
! 85: $s[[^now.sql-string[]] $status:rusage.utime $status:rusage.maxrss [$status:memory.used/$status:memory.free/$status:memory.ever_allocated_since_compact/$status:memory.ever_allocated_since_start] $env:REMOTE_ADDR $request:uri^if(def $msg){ $msg}^#0A]
! 86: ^s.save[append;/../data/rusage.log]
! 87: }
! 88: #end @rusage[]
! 89:
! 90:
! 91:
! 92: ###########################################################################
! 93: # этот метод выведет статистику, собранную объектом $MAIN:pSQL
! 94: @getSQLStat[]
! 95: ^if(def $MAIN:pSQL && !in "/admin/"){
! 96: ^if(def $form:mode && ^form:tables.mode.locate[field;debug]){
! 97: ^rem{ *** если пусканули с ?mode=debug то получаем и сохраняем информацию обо всех запросах на странице *** }
! 98: ^MAIN:pSQL.print_statistic[$.file[/../data/sql.txt]]
! 99: }{
! 100: ^rem{ *** а по умолчанию в лог пишем только информацию о проблемных страницах *** }
! 101: ^MAIN:pSQL.print_statistic[
! 102: $.file[/../data/sql.log]
! 103: $.debug_time_limit(500)
! 104: $.debug_queries_limit(25)
! 105: $.debug_result_limit(3000)
! 106: ]
! 107: }
! 108: }
! 109: #end @getSQLStat[]
! 110:
! 111:
! 112:
! 113:
E-mail: