Diff for /parser3/www/htdocs/Attic/index.html between versions 1.50 and 1.102

version 1.50, 2002/04/23 10:30:04 version 1.102, 2002/08/08 14:38:23
Line 1 Line 1
 @USE  #@USE
 t.p  #t.p
   
 @autoz[]  @auto[filespec]
 $request:charset[windows-1251]  $selffilespec[$filespec]
 $response:charset[windows-1251]  #$form:here
 $response:content-type[$.value[text/html]$.charset[$response:charset]]  #$request:charset[UTF-8]
   #$response:charset[windows-1251]
   #$response:content-type[$.value[text/html]$.charset[$response:charset]]
   
 #@postprocess[body]  #@postprocess[body]
 #<b>$body</b>  #<b>$body</b>
 #$result[123]  #$result[123]
   
 @main[]  @main[]
 ^connect[mysql://mdm:4b833ljq@db-mysql/mdm]{  #$a(123)
         ^int:sql{select news_id from news where news_id=-1}[$.default{2}]<br>  #^a.format[%.10u]
     ^string:sql{select news_id from news where news_id=-1}[$.default{2}]  #$result[111]
 }  #^f[a]
   #^connect[mysql://mdm:4b833ljq@db-mysql/mdm]{
   #       ^int:sql{select news_id from news where news_id=-1}[
   ##      $.default{2}
   #       ]<br>
   #    ^string:sql{select news_id from news where news_id=-1}[$.default{2}]
   #       ^file::load[text;^string:sql{select '^^hello[]' }]
   #       ^string:sql{select '^^hello[]' }] $ORIGINS(1)
   #       ^process{       ^^h[]}
   #       ^process{^string:sql{select '1
   #       ^^hello[]' }]   }
   #}
 #^eval(2)  #^eval(2)
 #^tcrashlocaljunctionsv2[]  #^tcrashlocaljunctionsv2[]
 #^tcrashlocaljunctions[]  #^tcrashlocaljunctions[]
Line 35  $response:content-type[$.value[text/html Line 48  $response:content-type[$.value[text/html
 #^subjvaltest[]  #^subjvaltest[]
 #^tableselect0[]  #^tableselect0[]
 #^memnotest1[]  #^memnotest1[]
 #^transparams[]  
 #^voidparams[]  #^voidparams[]
 #^rolls2[]  #^rolls2[]
 #^cacheexpireschanging[]  #^cacheexpireschanging[]
Line 65  $response:content-type[$.value[text/html Line 77  $response:content-type[$.value[text/html
 #^precisionProblem[]  #^precisionProblem[]
 #^xpath[]  #^xpath[]
 #^ttablesetlang[]  #^ttablesetlang[]
 #^mail3[]  
 #^ttime[]  #^ttime[]
 #^tupper[]  #^tupper[]
 #^treplace[]  #^treplace[]
Line 123  $response:content-type[$.value[text/html Line 134  $response:content-type[$.value[text/html
 #$t[^methresult[]] ->$t  #$t[^methresult[]] ->$t
 #^terror[]  #^terror[]
 #^ssave[]  #^ssave[]
 #^calendar[]  
 #^thash[]  #^thash[]
 #^tdef[]  #^tdef[]
 #^ford[]  #^ford[]
Line 143  $response:content-type[$.value[text/html Line 153  $response:content-type[$.value[text/html
 #^xslt[]  #^xslt[]
 #^xml[]  #^xml[]
 #^header[]  #^header[]
   #^tablehasht[]
   #^datecreatestring[]
   #^mssqltypes1[]
   #^badthrows[]
   #^xmlspace[]
   #^counter[main.counter]
   #^xpath2[]
   #^callindirect[]
   #^junctionprob[]
   #^datecreatestring2[]
   #^tstoredproc[]
   #^tstoredproc2[]
   #^forkeys[]
   #^pngsize[]
   #^checkList[]
   #^datetest[]
   #^tserge[]
   #^envt[]
   #^selectt[]
   #^select2[]
   #^selectSingle2[]
   #^selectString2[]
   #^selectNumber2[]
   #^selectBool2[]
   #^xdoccreate[]
   #^xdoccreatetag[]
   #^xdocload[]
   #^xdocstring[]
   #^xdocsave[]
   #^div[]
   #^datecreatestring3[]
   #^tfilespec[]
   #^tcrypt[]
   #^cryptdocsample[]
   #^tnormalize[]
   #^xmltransformbyxdoc[]
   #^sergestrandef[]
   #^tstdin[]
   #^tfind[]
   #^mimet[]
   #^cgit[]
   #^joinlimit[]
   #^tableclonelimit[]
   #^transparams[]
   #^sendtests[]
   #^wwrapperpass[]
   #^badpos[]
   #^processtest[]
   #^mail3[]
   #^mail4[]
   #^datesaving[]
   #^badconstructor[]
   ^calendar[]
   <hr>
   OK
   
   @badconstructor[]
   ^date::now[]
   
   @datesaving[]
   $now[^date::now[]]
   $now.daylightsaving<br>
   $now.yearday<br>
   #
   $date[^date::create(2002;1;3)]
   $date.daylightsaving<br>
   $date.yearday
   
   @mail4[]
   ^mail:send[
           $.from[paf@mail.design.ru]
           $.to[paf@mail.design.ru]
           $.subject[^taint[uri][москва]=2]
           $.text[^taint[uri][москва]=]
           $.html{<a href=http://there.ru/?city=^taint[uri][Москва]>link</a>}
   ]
   @processtest[]
       $f[^file::load[text;piece.p]]       ^process{$f.text}
           $ORIGINS(1)
   
   
   @badpos[]
   $s[123]
   ^s.mid(0;2)
   
   @wwrapperpass[]
   $h[^hash::create[]]
   $h.a(1)
   ^my_method[^if(1){$h}]
   работает. так и должно быть?
   
   @my_method[p]
   ^p._count[]
   
   
   @tableclonelimit[]
   $source[^table::create{a
   aa
   bb
   cc}]
   ^source.offset(1)
   #$dest[^table::create[$source]]
   $dest[^table::create[$source;$.offset(2)]]
   $dest[^table::create[$source;$.limit(2)]]
   $dest[^table::create[$source;$.offset(1)$.limit(1)]]
   $dest[^table::create[$source;$.offset(1)$.limit(2)]]
   $dest[^table::create[$source;$.offset[cur]$.limit(2)]]
   
   ^dest.menu{$dest.a}[,]<br>
   
   @joinlimit[]
   $source[^table::create{a
   aa
   bb
   cc}]
   ^source.offset(2)
   $dest[^table::create{a
   xx
   }]
   #^dest.join[$source]
   #^dest.join[$source;$.offset(2)]
   #^dest.join[$source;$.limit(2)]
   #^dest.join[$source;$.offset(1)$.limit(1)]
   #^dest.join[$source;$.offset(1)$.limit(2)]
   #^dest.join[$source;$.offset[cur]$.limit(1)]
   ^dest.join[$source;$.limit(0)]
   
   ^dest.menu{$dest.a}[,]<br>
   
   @cgit[]
   $f[^file::cgi[showenv.cmd]]
   $f.HELLO=<br>
   $f.CONTENT-TYPE=<br>
   $f.content-type=<br>
   
   
   @mimet[]
   $f[^file::stat[a.GIF]]
   $f.content-type
   
   
   @tfind[]
   ^file:find[index.html]
   
   @tstdin[]
   $f[^file::exec[test.pl;$.stdin[проверка stdin потока]]]
   <pre>$f.text</pre>
   
   @sergestrandef[]
   $sQuantity[ ]
   ^sQuantity.int(10)
   
   @xmltransformbyxdoc[]
   $xdoc[^xdoc::set{^process{<?xml version="1.0" encoding="windows-1251"?>
   <!--DOCTYPE people SYSTEM "D:\Y\parser3project\parser3\src\www\htdocs\people.dtd"-->
   <people>
           <man id="1" имя="word слово">
                   <name>1  2</name>
           </man>
   </people>
   }}]
   $sheet[^xdoc::create{<?xml version="1.0"?> 
   <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
   
   >
   <!--<xsl:output doctype-public ="-//W3C//DTD XHTML" indent="yes"/>-->
   
           <!--<xsl:import href="http://localhost/html.xsl"/>-->
           <xsl:import href="html.xsl"/>
   
   <xsl:param name="param1">defparam1</xsl:param>
   <xsl:param name="param2">defparam2</xsl:param>
   
   
           <xsl:template match="doc">
                   param1=<xsl:value-of select="^$param1"/><br/>
                   param2=<xsl:value-of select="^$param2"/><br/>
   
                   test return <something background=""/>
           </xsl:template>
   
           <xsl:template name="test">
                   test return3
           </xsl:template>
   
     <xsl:template match="people">
        <html>
        <head>z</head>
                   para1=<xsl:copy-of select="^$param1"/>
           <xsl:apply-templates/>
           <hr/>
           <xsl:call-template name="test"/>
        </html>    
     </xsl:template>
   
     <xsl:template match="name">
       <b><xsl:value-of select="."/></b>
     </xsl:template>
   </xsl:stylesheet>
   }]
   
   
   $xdoc[^xdoc.transform[$sheet]]
   $string[^xdoc.string[$.method[html]]]
   ^string.save[a]
   ^untaint[html]{$string}
   
   
   
   @tnormalize[]
   #s состоит из 1000 фрагментов
   $s[^for[i](0;999){фрагмент }]
   #это займет много ресурсов
   ^s.match[фраг][g]{перга}
   #это займет меньше ресурсов
   #$normalized[^s.normalize[]]
   #^normalized.match[фраг][g]{перга}
   
   @sendtests[]
   ^text[]
   #^html[]
   #^text-n-html[]
   #^file[]
   #^text-n-file[]
   #^text-n-html-n-file[]
   #^backwardcomp[]
   
   @backwardcomp[]
   ^mail:send[
           $.from[paf]
           $.to[paf]
           $.body[this is text value]
   ]
   
   @text[]
   ^mail:send[
           $.from[paf]
           $.to[paf]
           $.text[
                   $.value[this is text value]
           ]
   ]
   
   @html[]
   ^mail:send[
           $.from[paf]
           $.to[paf]
           $.html{this is <b>html</b> value ^taint[<] 10}
   ]
   
   @text-n-html[]
   ^mail:send[
           $.from[paf]
           $.to[paf]
           $.text[
                   $.value[this is text value]
           ]
           $.html[
           $.value{this is <b>html</b> value ^taint[<] 10}
           ]
   ]
   
   @file[]
   ^mail:send[
           $.from[paf]
           $.to[paf]
           $.file[^file::load[binary;image.jpg]]
   ]
   
   @text-n-file[]
   ^mail:send[
           $.from[paf]
           $.to[paf]
           $.text[
                   $.value[this is text value]
           ]
           $.file[^file::load[binary;image.jpg]]
   ]
   
   @text-n-html-n-file[]
   ^mail:send[
           $.from[paf]
           $.to[paf]
           $.text[
                   $.value[this is text value]
           ]
           $.html[
           $.COntent-type[$.value[text/html]$.charset[windows-1251xx]]
           $.value{this is <b>html</b> value ^taint[<] 10}
           ]
           $.file[^file::load[binary;image.jpg]]
   ]
   
   
   
   @md5salt[]
   1234
   
   @cryptdocsample[]
   $users[^table::create{name      password
   alice   ***
   bob     ***
   }]
   
   $htpasswd[^table::create[nameless]{}]
   ^users.menu{
           ^htpasswd.append{$users.name:^math:crypt[$users.password;^$apr1^$^md5salt[]]}
   }
   
   ^htpasswd.save[nameless;.htpasswd-parser-test]
   
   
   @tcrypt[]
   #^math:crypt[123;^$apr1^$1234567890abcdef]<br>
   ^math:crypt[123;^$apr1^$]<br>
   
   @tfilespec[]
   src=$selffilespec<br>
   dirname=^file:dirname[$selffilespec]<br>
   basename=^file:basename[$selffilespec]<br>
   justname=^file:justname[$selffilespec]<br>
   justext=^file:justext[$selffilespec]<br>
   
   @datecreatestring3[]
   $new_after[^date::now(-3)]
   $articles[^table::create{id     title   last_update
   1       привет  2002-07-03}]
   ^articles.menu{
       $last_update[^date::create[$articles.last_update]]
       <a href=${articles.id}.html>$articles.title</a>
       ^if($last_update > $new_after){новая}
       <br>
   }
   
   @div[]
   $var(5)
   ^var.inc(7)
   ^var.dec(3)
   ^var.div(4)
   ^var.mul(2)
   $var
   
   
   @xdocsave[]
   $document[^xdoc::create{<?xml version="1.0" encoding="windows-1251" ?>
   <document>
   строка1<br/>
   строка2<br/>
   </document>}]
   ^document.save[test.xml]
   
   @xdocstring[]
   $document[^xdoc::create{<?xml version="1.0" encoding="windows-1251" ?>
   <document>
   строка1<br/>
   строка2<br/>
   </document>}]
   ^document.string[
       $.method[html]
   ]
   
   
   @xdocload[]
   $document[^xdoc::load[article.xml]]
   $response:body[^document.file[$.media-type[text/xml]]]
   
   
   @xdoccreatetag[]
   $document[^xdoc::create[document]]
   $paraNode[^document.createElement[para]]
   $dummy[^document.documentElement.appendChild[$paraNode]]
   $response:body[^document.file[$.media-type[text/xml]]]
   
   
   @xdoccreate[]
   $document[^xdoc::create{<?xml version="1.0" encoding="windows-1251" ?>
   <document>
   текст
   </document>}]
   $response:body[^document.file[$.media-type[text/xml]]]
   
   @selectBool2[]
   $d[^xdoc::set{<?xml version="1.0" encoding="windows-1251"?>
   <t attr="привет" n="123"/>}]
   ^if(^d.selectBool[/t/@n > 10]){
       /t/@n больше 10
   }{
       не больше
   }
   
   
   @selectNumber2[]
   $d[^xdoc::set{<?xml version="1.0" encoding="windows-1251"?>
   <t attr="привет" n="123"/>}]
   ^d.selectNumber[number(/t/@n)+1]<br>
   ^d.selectNumber[2*2]<br>
   
   
   @selectString2[]
   $d[^xdoc::set{<?xml version="1.0" encoding="windows-1251"?>
   <t attr="привет" n="123"/>}]
   # результат=привет
   ^d.selectString[string(t/@attr)]
   
   
   @selectSingle2[]
   $d[^xdoc::set{<?xml version="1.0" encoding="windows-1251"?>
   <t attr="привет" n="123"/>}]
   # результат=один элемент "t"
   $element[^d.selectSingle[t]]
   # результат=2 (количество атрибутов <t>)
   Количество атрибутов: ^element.attributes._count[]<br>
   # результат=не существует (нет <x>)
   ^if(^d.select[x]){
       x существует
   }{
       x не существует
   }
   
   @select2[]
   $d[^xdoc::set{<?xml version="1.0" encoding="windows-1251"?><t attr="привет" n="123"/>}]
   # результат: список из одного элемента "t"
   $list[^d.select[t]]
   # результат: 2 = количество атрибутов <t>
   ^list.0.attributes._count[]<br>
   ^for[i](0;$list-1){
       $attr[$list.$i]
       $attr.nodeName = $attr.nodeType<br>
   }
   
   
   @selectt[]
   $d[^xdoc::set{<?xml version="1.0" encoding="windows-1251"?><t attr="привет" n="123"/>}]
   $list[^d.select[t]]
   ^list.0.attributes._count[]
   
   @envt[]
   $f[^file::exec[showenv.cmd;
           $.bad[value]
           $.CGI_good[value]
   ]]
   $f.status<br>
   $f.stderr<br>
   <pre>$f.text</pre>
   
   
   @tserge[]
   ^if(" 09 "){y}
   
   @datetest[]
           $f[^file::stat[some.zip]]
   Размер в байтах: $f.size<br>
   Год создания: $f.cdate.year<br>
   $now[^date::now[]]
   $DAYS_CONSIDERED_NEW(3)
   Статус: ^if($f.mdate >= $now-$DAYS_CONSIDERED_NEW){новый;старый}
   
   
   @checkList[]
   ...^oneOf[a;a,b,c]...<br>
   #...^oneOf[a;ax,b,c]...<br>
   ...^oneWord[word]...<br>
   #...^oneWord[wo rd]...<br>
   
   
   @oneOf[s;list][t] выдаёт строку, если строка она есть в списке(разделенном запятыми)
   $t[^list.lsplit[,]]
   ^if(!^t.locate[piece;$s]){^throw[user;$s;unknown]}
   $result[$s]
   
   @oneWord[s]
   ^if(^s.match[\W]){^throw[user.data;$s;not word]}{$s}
   
   @pngsize[]
   $i[^image::measure[test.png]]
   ^i.html[]
   
   
   @forkeys[]
   $text[^form:fields.foreach[key;val]{$key=$val
   }]
   ^text.save[ttt.txt]
   =$text=
   
   
   @tstoredproc2[]
   ^connect[odbc://DSN=nestle^;UID=nestle^;PWD=mbm32]{
           ^void:sql{exec pafvoid}
   }
   
   @tstoredproc[]
   ^connect[odbc://DSN=nestle^;UID=nestle^;PWD=mbm32]{
           $t[^table::sql{exec pafproc}]
   #       $t[^table::sql{{call pafproc}}]
           $c[^t.columns[]]
           ^c.menu{$c.column}[<br>]
   }
   
   @datecreatestring2[]
   <table border=1>
   ^datecreatestring2show[2000]
   ^datecreatestring2show[2000-02]
   ^datecreatestring2show[2000-2-03]
   ^datecreatestring2show[2000-02-03 15]
   ^datecreatestring2show[2000-02-03 15:30] 
   ^datecreatestring2show[2000-02-03 15:30:04] 
   ^datecreatestring2show[2000-02-03 15:30:04 hren] 
   ^datecreatestring2show[15:30] 
   ^datecreatestring2show[15:30:05] 
   ^datecreatestring2show[15:30:05 hren] 
   </table>
   
   @datecreatestring2show[s]
   $date[^date::create[$s]]
   <tr>
   <td>$s</td><td align=right>^date.sql-string[]</td>
   </tr>
   
   
   @junctionprob[][l]
   $l[123]
   $a{$l}
   ^junctionprobnested[$a]
   @junctionprobnested[p]
   $p
   
   
   @callindirecttarget[]
   callindirecttarget called
   @callindirect[]
   $f[$callindirecttarget]
   ^f[]
   
   @xpath2[]
   $xdoc[^xdoc::create{<?xml version="1.0" encoding="windows-1251"?>
   <doc>
   <field-list>
   <field name="aa"/>
   <field name="bb"/>
   </field-list>
   </doc>
   }]
   
   #^xdoc.string[]
   
   $fieldList[^xdoc.selectSingle[/doc/field-list]]
   #^fieldList.childNodes._count[]
   $fields[^fieldList.select[field]]
   #^fields._count[]
   ^fields.foreach[k;node]{
           $node.nodeName<br>
   }
   @counter[filespec][f;s]
   ^file:lock[$filespec]{
           $f[^file::load[text;$filespec]]
           $s[^eval($f.text+1)]
           ^s.save[$filespec]      
   }
   $s
   
   @xmlspace[]
   $xdoc[^xdoc::set{^process{<?xml version="1.0" encoding="windows-1251"?>
   <!--DOCTYPE people SYSTEM "D:\Y\parser3project\parser3\src\www\htdocs\people.dtd"-->
   <people>
           <man id="1" имя="word слово">
                   <name>1  2</name>
           </man>
   </people>
   }}]
   $xdoc[^xdoc.transform[global.xsl]]
   $string[^xdoc.string[$.method[html]]]
   ^string.save[a]
   ^untaint[html]{$string}
   
   @badthrows[]
   #^throw[a;b;]
   ^throw[a;]
   
   @mssqltypes1[]
   ^connect[odbc://DSN=nestle^;UID=nestle^;PWD=mbm32]{
   #    ^string:sql{select { ts '1998-05-02 01:23:56.123' }}
   #    ^string:sql{select CAST({ ts '1998-05-02 01:23:56.123' }AS smalldatetime)}
   #       ^string:sql{select CAST({ts '2002-04-28 00:00:00.000'} AS smalldatetime)}
           $t[^table::sql{select a from paf}]
           ^t.count[]
   }
   
   @datecreatestring[]
   $d[^date::create[2002-04-33 01:03:04]]
   ^d.sql-string[]
   
   @method[hash]
   $hash.key
   @mainZ[]
   ^method[
       $.key{code}
   ]
   
   @tablehasht[]
   $t[^table::create{p
   1
   3
   2
   4}]
   
   $h[^t.hash[p]]
   
   =^h._count[]=
   
   
   @sqldefaults[]
   ^connect[mysql://mdm:4b833ljq@db-mysql/mdm]{
           ^int:sql{select news_id from news where news_id=-1}[$.default{2}]<br>
       ^string:sql{select news_id from news where news_id=-1}[$.default{2}]
   }
   =======
 <hr>  <hr>
 OK  OK
   >>>>>>> 1.50
   
 @tcrashlocaljunctionsv2[]  @tcrashlocaljunctionsv2[]
 $a[  $a[
Line 606  $t[^table::set{^untaint{^taint[$a-tab-b] Line 1233  $t[^table::set{^untaint{^taint[$a-tab-b]
   
 @mail3[]  @mail3[]
 ^mail:send[  ^mail:send[
         $.from[Александр Петросян <paf@design.ru>]          $.from[Александр Петросян <paf@mail.design.ru>]
         $.to[Александр Петросян <paf@design.ru>]          $.to[Александр Петросян <paf@mail.design.ru>]
         $.subject[проверка4]          $.subject[проверка2]
         $.body[          $.body[
                 $.text[                  $.text[
                         $.content-type[$.value[text/plain] $.charset[windows-1251]]                          $.content-type[$.value[text/plain] $.charset[windows-1251]]
                         $.body[проверка]                          $.body[проверка^taint[uri][москва]=]
                 ]                  ]
                 $.attachment[                  $.attachment[
                         $.value[^file::load[text;index.html]]                          $.value[^file::load[text;index.html]]
Line 1071  $abc[abc] Line 1698  $abc[abc]
 ^abc.save[abc]  ^abc.save[abc]
   
 @calendar[]  @calendar[]
 2001;11:<br>  $year(2005)
 $week_days[^date:calendar[rus](2001;11)]  $month(1)
   ${year}-${month}:<br>
   $week_days[^date:calendar[rus]($year;$month)]
 <pre>  <pre>
 ^week_days.menu{^for[wday](0;7){^if($week_days.$wday){$week_days.$wday;&nbsp^;&nbsp^;} }<br>}  ^week_days.menu{^for[wday](0;6){^if($week_days.$wday){$week_days.$wday;&nbsp^;&nbsp^;} }=$week_days.week,$week_days.year=<br>}
 </pre>  </pre>
   
 @thash[]  @thash[]

Removed from v.1.50  
changed lines
  Added in v.1.102


E-mail: