--- parser3/www/htdocs/Attic/auto.p 2005/07/27 14:04:15 1.22.8.1 +++ parser3/www/htdocs/Attic/auto.p 2005/07/28 10:02:27 1.22.8.2 @@ -4,25 +4,17 @@ common/layout.p common/implode.p date/dtf.p mysql.p +#rotabanner.p - -################################################################################################# +########################################################################### @auto[] -# id объекта с 404 ошибкой: -$MAIN:error404ObjectId(23) -# id объекта, где лежат глобальные данные о сайте: -$MAIN:siteDataObjectId(21) - -# id корневого объекта раздела вопросы и ответы -$MAIN:faq_category_root_id(3) - -$MAIN:pSQL[^mysql::init[$SQL.connect-string;^if(^env:QUERY_STRING.pos[mode=debug] >= 0 || ^request:uri.pos[block_edit] >= 0){debug}]] +$MAIN:pSQL[^mysql::init[$SQL.connect-string; + $.is_debug(1) + $.cache_dir[/../data/cache] +]] -#^detectBrowser[] - -# константа для новостей -$MAIN:objIdNews(1) +^detectBrowser[] # эта табличка нужна для очистки всякой фигни от ентитей/тегов $repl[^table::create{a b @@ -36,176 +28,86 @@ $repl[^table::create{a b &ndash^; - №^; № &bull^; }] -#end @auto[] - - -################################################################################################# -@unhandled_exceptionXXX[exception;stack][i;j] -$response:content-type[ - $.value[text/html] - $.charset[$response:charset] -] - -Server error. - - -
В настоящее время на сервере проводятся регламентные работы. 
-Пожалуйста, зайдите позже.
-Приносим наши извинения за возможные неудобства.
-Если вы хотите оставить нам сообщение, пишите: mailbox@parser.ru
- -#end +#end @auto[] -################################################################################################# -@error404[][err_lang] +########################################################################### +@error404[] +#$response:status[404] ^location[/404/] #end @error404[] -################################################################################################# -@pageHeader[header] -$header -#end @pageHeader[] - - - -################################################################################################# -@pageFooter[] -footer -#end @pageFooter[] - - - -################################################################################################# -@body[content] - - $content - -#end @body[] - - - -################################################################################################# -@html[header;content] - - - - - - AB.LV^if(def $header){ | ^taint[as-is][$header] } - -^body{ - - ^pageHeader[] - $content - ^pageFooter[] -
-} - -#end @html[] - - -################################################################################################# -@main[] -^pSQL.server{ - - - ^if(def $prepare){^prepare[]} - - ^body{^content[]} - -} -# @main[] - - - -################################################################################################# -@postprocess[body][repl;tmp] -^if(def $body){ - ^if($MAIN:browser eq "nn" && $MAIN:browser_ver < 5){ - $repl[^table::create{a b +########################################################################### +@postprocess[body][repl] +$result[$body] +^if(def $result && $result is "string"){ + ^if($MAIN:browser eq "nn" && $MAIN:browser_ver < 5){ + $repl[^table::create[nameless]{ &hellip^; …^; &rdquo^; ”^; &ldquo^; “^; &mdash^; —^; &ndash^; –^; -&bull^; •^;}] - $result[^body.replace[$repl]] - }{ - $result[$body] - } - $not_optimized_space[^taint[as-is][ ]] - $not_optimized_tab[^taint[as-is][^#09]] - $not_optimized_enter[^taint[as-is][^#0A]] - $result[^result.match[прОбЭл][g]{$not_optimized_space}] - $result[^result.match[тАб][g]{$not_optimized_tab}] - $result[^result.match[энтЕр][g]{$not_optimized_enter}] +&bull^; •^; +}] + $result[^result.replace[$repl]] + } + ^rem{ *** это инициализация банеров *** } +# $banner[^rotabanner::init[название проекта;банер по умолчанию]] ^rem{ *** обрабатываем [parser]код[/parser] *** } $result[^result.match[\[(parser)\](.+?)\[/\1\]][g]{^taint[as-is][^process{$match.2}]}] -}{ - $result[] + + ^rem{ *** если отдаем страничку яндексу, то меняем &^; на &, а то у него крышу сносит *** } + ^if(^env:HTTP_USER_AGENT.match[yandex][i]){ + $result[^result.match[&^;][g]{&}] + } } -^getStat[] -^rusage[] -# а это мы можем вывести список макросов, которые outdated, но которые вызывались... -# ^printOutdatedMacro[] -#end @postprocess[body] +# получаем статистику по sql запросам +^getSQLStat[] +# вызываем rusage, который напишет в log столько страничка генерилась и сколько отожрала памяти +#^rusage[] -################################################################################################# -@rusage[msg][rusage] -#^if(!in "/admin/"){ -$rusage[$status:rusage] -$now[^date::now[]] -$s[[^now.sql-string[]] $rusage.utime $rusage.stime $rusage.maxrss $rusage.ixrss $rusage.idrss $rusage.isrss $request:uri $env:REMOTE_ADDR [$status:memory.used/$status:memory.free/$status:memory.since_compact/$status:memory.process] $msg^#0A] -^s.save[append;/../data/rusage.log] -#} -#end @rusage[] +#end @postprocess[] -################################################################################################# -# этот метод выведет статистику, собранную экземпляром класса $MAIN:pSQL -@getStat[] -^if(def $MAIN:pSQL && $MAIN:pSQL.debug){ - $result[^MAIN:pSQL.getStatistics[/../data/sql.txt]] -}{ - $result[] +########################################################################### +@rusage[msg][now;s] +^if(!in "/admin/"){ + $now[^date::now[]] + $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] + ^s.save[append;/../data/rusage.log] } -#end @stat[] +#end @rusage[] -################################################################################################# -# метод достает названия методов с комментариями у указаного файла и показывает их -@getComments[f][file;fd;t;comments] -$file[^if(def $f){$f}{/../data/classes/engine.p}] -^if(-f $file){ - $fd[^file::load[text;$file]] - - $t[$fd.text] - $t[^t.match[^^##[^^#]*^$][mg]{}] - $t[^t.match[(\n){3,}][g]{${match.1}$match.1}] - $comments[^t.match[(#{5,}\n#\s.*?\n@.+?\^])][g]] - - $result[^taint[as-is][^comments.menu{$comments.1^#0A^#0A^#0A}]] +########################################################################### +# этот метод выведет статистику, собранную объектом $MAIN:pSQL +@getSQLStat[] +^if(def $MAIN:pSQL && !in "/admin/"){ + ^if(def $form:mode && ^form:tables.mode.locate[field;debug]){ + ^rem{ *** если пусканули с ?mode=debug то получаем и сохраняем информацию обо всех запросах на странице *** } + ^MAIN:pSQL.print_statistic[$.file[/../data/sql.txt]] + }{ + ^rem{ *** а по умолчанию в лог пишем только информацию о проблемных страницах *** } + ^MAIN:pSQL.print_statistic[ + $.file[/../data/sql.log] + $.debug_time_limit(500) + $.debug_queries_limit(25) + $.debug_result_limit(3000) + ] + } } -#end @getComments[] +#end @getSQLStat[] + + + +