Annotation of parser3/www/htdocs/auto.p, revision 1.18

1.18    ! paf         1: @USE
        !             2: common/lib.p
        !             3: common/layout.p
        !             4: common/implode.p
        !             5: date/dtf.p
        !             6: mysql.p
        !             7: rotabanner_aval.p
        !             8: 
        !             9: 
        !            10: 
        !            11: #################################################################################################
1.17      paf        12: @auto[]
1.18    ! paf        13: # id объекта с 404 ошибкой
        !            14: $MAIN:error404ObjectId(15)
        !            15: # id объекта, где лежат глобальные данные о сайте
        !            16: $MAIN:siteDataObjectId(94)
        !            17: # id объекта, где хранится все о карте украины (карта, image-map)
        !            18: $MAIN:branchesObjectId(62)
        !            19: # id объекта, где хранится все о банкоматах украины (карта, image-map)
        !            20: $MAIN:cashObjectId(63)
        !            21: $MAIN:pSQL[^mysql::init[$SQL.connect-string;^if(^env:QUERY_STRING.pos[mode=debug] >= 0){debug}]]
        !            22: 
        !            23: ^detectBrowser[]
        !            24: ^getLang[]
        !            25: # это идентификаторы типов объектов для подписки/рассылки
        !            26: $MAIN:objIdNews(1)
        !            27: $MAIN:objIdPubs(2)
        !            28: $MAIN:objIdDigest(3)
        !            29: $MAIN:objIdVacancy(4)
        !            30: # $MAIN:objIdInfo(5)
        !            31: $MAIN:SYS_PATH_PRODUCTSIMAGE[/i/products]
        !            32: $MAIN:SYS_PATH_PRODUCTSDOC[/off-line/products]
        !            33: 
        !            34: $MAIN:objIdPartners(6)
        !            35: 
        !            36: $MAIN:SYS_PATH_PARTNERSFOOTERSIMAGE[/i/pfooters]
        !            37: $MAIN:SYS_PATH_NEWSIMAGE[/i/pnews]
        !            38: 
        !            39: #end @auto[]
        !            40: 
        !            41: 
        !            42: 
        !            43: #################################################################################################
        !            44: @getLang[][qs;found]
        !            45: $qs[$env:QUERY_STRING]
        !            46: $found[^qs.match[(^^|&)lang=([^^&]+)]]
        !            47: ^if($found){
        !            48:        $MAIN:lang[^found.2.lower[]]
        !            49: }{
        !            50:        $MAIN:lang[]
        !            51: }
        !            52: 
        !            53: $MAIN:langs[^table::create{lang_id     name    prefix  sort_order      charset
        !            54: 1      Русский rus     1       windows-1251
        !            55: 2      Украинский              2       windows-1251
        !            56: 3      Английский      eng     3       windows-1251}]
        !            57: $MAIN:lang_id(^if(^MAIN:langs.locate[prefix;$MAIN:lang]){$MAIN:langs.lang_id}{2})
        !            58: 
        !            59: $result[]
        !            60: #end @getLang[]
        !            61: 
        !            62: 
        !            63: 
        !            64: #################################################################################################
        !            65: @byLang[rus;eng;ukr;lang_id]
        !            66: ^switch[^if(def $lang_id){$lang_id}{$MAIN:lang_id}]{
        !            67:        ^case[1]{$result[$rus]}
        !            68:        ^case[2]{$result[$ukr]}
        !            69:        ^case[3]{$result[$eng]}
        !            70:        ^case[DEFAULT]{$result[]}
        !            71: }
        !            72: 
        !            73: 
        !            74: 
        !            75: #################################################################################################
        !            76: # возвращает строку с размером файла
        !            77: @file_size[file;names;divider][f;size]
        !            78: ^if(!$names){$names[$.b[bytes]^if($MAIN:lang eq "eng"){$.kb[Kb]$.mb[Mb]}{$.kb[КБ]$.mb[МБ]}]}
        !            79: ^if(-f $file){
        !            80:        $f[^file::stat[$file]]
        !            81:        ^if($f.size < 1000){
        !            82:                $tmp[$f.size $names.b]
        !            83:        }{
        !            84:                ^if($f.size < 1000000){
        !            85:                        $size($f.size/1024)
        !            86:                        $tmp[^size.format{%.1f} $names.kb]
        !            87:                }{
        !            88:                        $size($f.size/1048576)
        !            89:                        $tmp[^size.format{%.2f} $names.mb]
        !            90:                }
        !            91:        }
        !            92:        $result[^if(def $divider){^tmp.match[\.][]{$divider}}{$tmp}]
        !            93: }{
        !            94:        $result[]
        !            95: }
        !            96: #end @file_size[]
        !            97: 
        !            98: 
        !            99: #################################################################################################
        !           100: @error404[][err_lang]
        !           101: $err_lang[^MAIN:byLang[/rus/;/eng/;/^if(def $cookie:lang && $cookie:lang ne "ukr"){${cookie:lang}/}]]
        !           102: #^location[http://${env:SERVER_NAME}${err_lang}404/]
        !           103: ^location[${err_lang}404/]
        !           104: #end @error404[]
        !           105: 
        !           106: 
        !           107: 
        !           108: #################################################################################################
        !           109: @pageHeader[header]
        !           110: $header
        !           111: #end @pageHeader[]
        !           112: 
        !           113: 
        !           114: 
        !           115: #################################################################################################
        !           116: @pageFooter[]
        !           117: footer
        !           118: #end @pageFooter[]
        !           119: 
        !           120: 
        !           121: 
        !           122: #################################################################################################
        !           123: @body[content]
        !           124: <body bgcolor="#F4F4F4" text="#000000" link="#0000C4" alink="#0000C4" vlink="#073683" marginheight="0"
        !           125: marginwidth="0"
        !           126: topmargin="0" leftmargin="0" rightmargin="0" onLoad="init()">
        !           127:        $content
        !           128: </body>
        !           129: #end @body[]
        !           130: 
        !           131: 
        !           132: 
        !           133: #################################################################################################
        !           134: @html[header;content]
        !           135: <!-- Copyright (c) Art. Lebedev Studio | http://www.design.ru/ -->
        !           136: <html>
        !           137: <head>
        !           138:        <base target="_top">
        !           139:        <link rel="stylesheet" type="text/css" href="/main.css"></link>
        !           140:        <title>AB.LV^if(def $header){ | ^taint[as-is][$header] }</title>
        !           141: </head>
        !           142: ^body{
        !           143:        <table cellpadding="0" cellspacing="0" border="0" width="100%" bgcolor="#ffffff">
        !           144:        ^pageHeader[]
        !           145:        $content
        !           146:        ^pageFooter[]
        !           147:        </table>
        !           148: }
        !           149: <html>
        !           150: #end @html[]
        !           151: 
        !           152: 
        !           153: #################################################################################################
        !           154: @main[]
        !           155: ^pSQL.server{
        !           156:        <html>
        !           157:        <head>
        !           158:                ^if(def $prepare){^prepare[]}
        !           159:        </head>
        !           160:        ^body{
        !           161:                ^content[]
        !           162:        }
        !           163:        </html>
        !           164: }
        !           165: # @main[]
        !           166: 
        !           167: 
        !           168: 
        !           169: #################################################################################################
        !           170: @postprocess[body][repl]
        !           171: #^if($USE_GC){^memory:compact[] ^memory:compact[]}
        !           172: ^if($MAIN:browser eq "nn" && $MAIN:browser_ver < 5){
        !           173:        $repl[^table::create{a  b
        !           174: &hellip^;      &#133^;
        !           175: &rdquo^;       &#148^;
        !           176: &ldquo^;       &#147^;
        !           177: &mdash^;       &#151^;
        !           178: &ndash^;       &#150^;
        !           179: &bull^;        &#149^;}]
        !           180:        $result[^if(def $body){^body.replace[$repl]}]
        !           181: }{
        !           182:        $result[$body]
        !           183: }
        !           184: $banner[^rotabanner_aval::init[aval;^if(def $form:lang){$form:lang}{ukr}_uho;$.disableCache(1)]]
        !           185: $result[^result.match[\[(parser)\](.+?)\[/\1\]][gi]{^taint[as-is][^process{$match.2}]}]
        !           186: # а это мы добавляем статистику к страничке. если она не нужна в страничке - то просто вызываем:
        !           187: ^getStat[]
        !           188: ^rusage[@end]
        !           189: # а это мы можем вывести список макросов, которые outdated, но которые вызывались...
        !           190: # ^printOutdatedMacro[]
        !           191: #end @postprocess[body]
        !           192: 
        !           193: 
        !           194: 
        !           195: #################################################################################################
        !           196: @rusage[when]
        !           197: #^musage[before]
        !           198: #^memory:compact[]
        !           199: #^musage[after]
        !           200: ^if(!in "/admin/"){
        !           201: $rusage[$status:rusage]
        !           202: ^if($rusage){
        !           203: $m[
        !           204:        ^if($USE_GC){$status:memory;$.nothing[]}
        !           205: ]
        !           206: $now[^date::now[]]
        !           207: $s[[^now.sql-string[]] $rusage.utime $rusage.stime $rusage.maxrss $rusage.ixrss $rusage.idrss $rusage.isrss $request:uri $env:REMOTE_ADDR [$m.used/$m.free/$m.since_compact/$m.process] [$when]
        !           208: ]
        !           209: ^s.save[append;/../data/rusage.log]
        !           210: }}
        !           211: #end @rusage[]
        !           212: 
        !           213: @musage[comment][v;now;prefix;message;line;usec]
        !           214: $v[$status:memory]
        !           215: $now[^date::now[]]
        !           216: $prefix[[^now.sql-string[]] $env:REMOTE_ADDR: $comment]
        !           217: $message[$v.used $v.free $v.ever_allocated_since_compact $v.ever_allocated_since_start $request:uri]
        !           218: $line[$prefix $message ^#0A]
        !           219: ^line.save[append;/../data/musage.log]
        !           220: $result[]
        !           221: 
        !           222: #################################################################################################
        !           223: # этот метод выведет статистику, собранную экземпляром класса $MAIN:pSQL
        !           224: @getStat[]
        !           225: ^if(def $MAIN:pSQL && $MAIN:pSQL.debug){
        !           226:        $result[^MAIN:pSQL.getStatistics[/../data/sql.txt]]
        !           227: }{
        !           228:        $result[]
        !           229: }
        !           230: #end @getStat[]
        !           231: 
        !           232: 
        !           233: #################################################################################################
        !           234: @getNewsCategory[]
        !           235: $result[^table::sql{
        !           236:        SELECT
        !           237:                news_category_id AS id,
        !           238:                name,
        !           239:                name_ukr,
        !           240:                name_eng,
        !           241:                path
        !           242:        FROM
        !           243:                news_category
        !           244:        WHERE
        !           245:                is_published = 1
        !           246:        ORDER BY
        !           247:                sort_order
        !           248: }]
        !           249: #end @getNewsCategory[]
        !           250: 
        !           251: 
        !           252: #################################################################################################
        !           253: @sendSubscribeMail[type;from;pass;lang][charset]
        !           254: $charset[^MAIN:byLang[koi8-r;windows-1251;windows-1251]]
        !           255: ^mail:send[
        !           256:        $.to[$form:email]
        !           257:        $.from[$from]
        !           258:        $.charset[$charset]
        !           259:        $.content-type[
        !           260:                $.value[text/plain]
        !           261:                $.charset[$charset]
        !           262:        ]
        !           263:        $.subject[^if($type eq "insert"){aval subscribe}{aval update subscription}]
        !           264:        $.body[^if($type eq "insert"){^MAIN:byLang[Адрес "$form:email" был внесен в список рассылки новостей
        !           265: сайта банка
        !           266: Аваль
        !           267: 
        !           268: Чтобы сделать подписку активной и/или изменить ее параметры, достаточно зайти на страницу:
        !           269: http://${env:SERVER_NAME}/rus/press/subscribe/edit/?email=$form:email&code=$pass
        !           270: 
        !           271: Если подписка не будет подтверждена в течение 30  дней с момента
        !           272: отправки  данного  сообщения, ваш адрес будет автоматически удален из
        !           273: базы данных.
        !           274: 
        !           275: С уважением, 
        !           276: пресс-служба банка "Аваль"
        !           277: http://${env:SERVER_NAME}/rus/
        !           278: ;Your e-mail "$form:email" was listed in the news mailing list of Aval bank website.
        !           279: 
        !           280: For activization of subscription and/or change of subscription parameters you should visit our webpage:
        !           281: http://${env:SERVER_NAME}/eng/press/subscribe/edit/?email=$form:email&code=$pass
        !           282: 
        !           283: If you will not confirm subscription within 30 days after receiving this
        !           284: message your address will be automatically removed from mailing database.
        !           285: 
        !           286: Best regards,
        !           287: Press service of Aval bank
        !           288: http://${env:SERVER_NAME}/eng/
        !           289: ;Адреса "$form:email" була внесена в список розсилання новин сайта банку Аваль
        !           290: 
        !           291: Щоб зробити пiдписку  активної i/або  зм_нити її параметри, досить зайти на сторiнку:
        !           292: http://${env:SERVER_NAME}/press/subscribe/edit/?email=$form:email&code=$pass
        !           293: 
        !           294: Якщо пiдписка  не буде пiдтверджена протягом  30  днiв з моменту 
        !           295: вiдправлення  даного  повiдомлення, ваша  адреса  буде автоматично вилучений з 
        !           296: бази даних.
        !           297: 
        !           298: З повагою, 
        !           299: прес-служба банку "Аваль"
        !           300: http://${env:SERVER_NAME}/
        !           301: ;$lang]}{^MAIN:byLang[Чтобы изменить параметры подписки, достаточно зайти на страницу:
        !           302: http://${env:SERVER_NAME}/rus/press/subscribe/edit/?email=$form:email&code=$pass
        !           303: 
        !           304: С уважением, 
        !           305: пресс-служба банка "Аваль"
        !           306: http://${env:SERVER_NAME}/rus/
        !           307: 
        !           308: 
        !           309: ;For change of subscription parameters you should visit our webpage:
        !           310: http://${env:SERVER_NAME}/eng/press/subscribe/edit/?email=$form:email&code=$pass
        !           311: 
        !           312: Best regards,
        !           313: Press service of Aval bank
        !           314: http://${env:SERVER_NAME}/eng/
        !           315: 
        !           316: ;Щоб змiнити параметри пiдписки, досить зайти на сторiнку:
        !           317: http://${env:SERVER_NAME}/press/subscribe/edit/?email=$form:email&code=$pass
        !           318: 
        !           319: З повагою, 
        !           320: прес-служба банку "Аваль"
        !           321: http://${env:SERVER_NAME}/
        !           322: 
        !           323: ;$lang]}
        !           324: ]]
        !           325: #end @sendSubscribeMail[]

E-mail: