--- 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[]
+
+
+
+