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

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: 
1.18.2.1! paf       213: @rusage[xxx]
        !           214: 
        !           215: 
1.18      paf       216: @musage[comment][v;now;prefix;message;line;usec]
                    217: $v[$status:memory]
                    218: $now[^date::now[]]
                    219: $prefix[[^now.sql-string[]] $env:REMOTE_ADDR: $comment]
                    220: $message[$v.used $v.free $v.ever_allocated_since_compact $v.ever_allocated_since_start $request:uri]
                    221: $line[$prefix $message ^#0A]
                    222: ^line.save[append;/../data/musage.log]
                    223: $result[]
                    224: 
                    225: #################################################################################################
                    226: # этот метод выведет статистику, собранную экземпляром класса $MAIN:pSQL
                    227: @getStat[]
                    228: ^if(def $MAIN:pSQL && $MAIN:pSQL.debug){
                    229:        $result[^MAIN:pSQL.getStatistics[/../data/sql.txt]]
                    230: }{
                    231:        $result[]
                    232: }
                    233: #end @getStat[]
                    234: 
                    235: 
                    236: #################################################################################################
                    237: @getNewsCategory[]
                    238: $result[^table::sql{
                    239:        SELECT
                    240:                news_category_id AS id,
                    241:                name,
                    242:                name_ukr,
                    243:                name_eng,
                    244:                path
                    245:        FROM
                    246:                news_category
                    247:        WHERE
                    248:                is_published = 1
                    249:        ORDER BY
                    250:                sort_order
                    251: }]
                    252: #end @getNewsCategory[]
                    253: 
                    254: 
                    255: #################################################################################################
                    256: @sendSubscribeMail[type;from;pass;lang][charset]
                    257: $charset[^MAIN:byLang[koi8-r;windows-1251;windows-1251]]
                    258: ^mail:send[
                    259:        $.to[$form:email]
                    260:        $.from[$from]
                    261:        $.charset[$charset]
                    262:        $.content-type[
                    263:                $.value[text/plain]
                    264:                $.charset[$charset]
                    265:        ]
                    266:        $.subject[^if($type eq "insert"){aval subscribe}{aval update subscription}]
                    267:        $.body[^if($type eq "insert"){^MAIN:byLang[Адрес "$form:email" был внесен в список рассылки новостей
                    268: сайта банка
                    269: Аваль
                    270: 
                    271: Чтобы сделать подписку активной и/или изменить ее параметры, достаточно зайти на страницу:
                    272: http://${env:SERVER_NAME}/rus/press/subscribe/edit/?email=$form:email&code=$pass
                    273: 
                    274: Если подписка не будет подтверждена в течение 30  дней с момента
                    275: отправки  данного  сообщения, ваш адрес будет автоматически удален из
                    276: базы данных.
                    277: 
                    278: С уважением, 
                    279: пресс-служба банка "Аваль"
                    280: http://${env:SERVER_NAME}/rus/
                    281: ;Your e-mail "$form:email" was listed in the news mailing list of Aval bank website.
                    282: 
                    283: For activization of subscription and/or change of subscription parameters you should visit our webpage:
                    284: http://${env:SERVER_NAME}/eng/press/subscribe/edit/?email=$form:email&code=$pass
                    285: 
                    286: If you will not confirm subscription within 30 days after receiving this
                    287: message your address will be automatically removed from mailing database.
                    288: 
                    289: Best regards,
                    290: Press service of Aval bank
                    291: http://${env:SERVER_NAME}/eng/
                    292: ;Адреса "$form:email" була внесена в список розсилання новин сайта банку Аваль
                    293: 
                    294: Щоб зробити пiдписку  активної i/або  зм_нити її параметри, досить зайти на сторiнку:
                    295: http://${env:SERVER_NAME}/press/subscribe/edit/?email=$form:email&code=$pass
                    296: 
                    297: Якщо пiдписка  не буде пiдтверджена протягом  30  днiв з моменту 
                    298: вiдправлення  даного  повiдомлення, ваша  адреса  буде автоматично вилучений з 
                    299: бази даних.
                    300: 
                    301: З повагою, 
                    302: прес-служба банку "Аваль"
                    303: http://${env:SERVER_NAME}/
                    304: ;$lang]}{^MAIN:byLang[Чтобы изменить параметры подписки, достаточно зайти на страницу:
                    305: http://${env:SERVER_NAME}/rus/press/subscribe/edit/?email=$form:email&code=$pass
                    306: 
                    307: С уважением, 
                    308: пресс-служба банка "Аваль"
                    309: http://${env:SERVER_NAME}/rus/
                    310: 
                    311: 
                    312: ;For change of subscription parameters you should visit our webpage:
                    313: http://${env:SERVER_NAME}/eng/press/subscribe/edit/?email=$form:email&code=$pass
                    314: 
                    315: Best regards,
                    316: Press service of Aval bank
                    317: http://${env:SERVER_NAME}/eng/
                    318: 
                    319: ;Щоб змiнити параметри пiдписки, досить зайти на сторiнку:
                    320: http://${env:SERVER_NAME}/press/subscribe/edit/?email=$form:email&code=$pass
                    321: 
                    322: З повагою, 
                    323: прес-служба банку "Аваль"
                    324: http://${env:SERVER_NAME}/
                    325: 
                    326: ;$lang]}
                    327: ]]
                    328: #end @sendSubscribeMail[]

E-mail: