|
|
| version 1.31, 2002/04/09 06:47:05 | version 1.45, 2002/06/14 11:59:12 |
|---|---|
| Line 231 odbc c:\drives\y\parser3project\odbc\ | Line 231 odbc c:\drives\y\parser3project\odbc\ |
| !^имя.div(на сколько /) | !^имя.div(на сколько /) |
| !^имя.mod(на сколько %) | !^имя.mod(на сколько %) |
| !^имя.format[формат] | !^имя.format[формат] |
| !^int/double:sql{query}[[$.limit(2) $.offset(4) $.default(0)]] | !^int/double:sql{query}[[$.limit(2) $.offset(4) $.default{0}]] |
| запрос, результат которого должен быть один столбец/одна строка | запрос, результат которого должен быть один столбец/одна строка |
| !string | !string |
| Line 243 odbc c:\drives\y\parser3project\odbc\ | Line 243 odbc c:\drives\y\parser3project\odbc\ |
| пример: | пример: |
| ^if(def $form:name) не пуста? | ^if(def $form:name) не пуста? |
| ^if($user.isAlive) истина? [автопреобразование к числу, не ноль?] | ^if($user.isAlive) истина? [автопреобразование к числу, не ноль?] |
| !^string::sql{query}[[$.limit(2) $.offset(4) $.default[n/a]]] | !^string::sql{query}[[$.limit(2) $.offset(4) $.default{n/a}]] |
| результат запроса должен быть один столбец/одна строка | результат запроса должен быть один столбец/одна строка |
| !^имя.int[] .int(default) целочисленное значение строки. | !^имя.int[] .int(default) целочисленное значение строки. |
| если ломается преобразование, берётся default | если ломается преобразование, берётся default |
| Line 283 odbc c:\drives\y\parser3project\odbc\ | Line 283 odbc c:\drives\y\parser3project\odbc\ |
| !^table::load[[nameless;]путь] | !^table::load[[nameless;]путь] |
| !если не nameless, названия колонок берутся из первой строки | !если не nameless, названия колонок берутся из первой строки |
| !пустые строки, и строки в первой колонке содержащие '#', игнорируются | !пустые строки, и строки в первой колонке содержащие '#', игнорируются |
| !^table::sql{query}[[$.limit(2) $.offset(4)]] | !^table::sql{query}[[$.limit(2) $.offset(4) todo:$.default{ ^table::create[...] }]] |
| !^таблица.save[[nameless|append;]путь] | !^таблица.save[[nameless|append;]путь] |
| !$таблица.поле | !$таблица.поле |
| !$таблица.fields+ из named таблицы выдаёт текущую запись как Hash | !$таблица.fields+ из named таблицы выдаёт текущую запись как Hash |
| Line 309 odbc c:\drives\y\parser3project\odbc\ | Line 309 odbc c:\drives\y\parser3project\odbc\ |
| значением $hash.ключ будет hash в котором поля значений будут ключами | значением $hash.ключ будет hash в котором поля значений будут ключами |
| поля значений могут быть не указаны, тогда ими будут все столбцы, включая ключевой | поля значений могут быть не указаны, тогда ими будут все столбцы, включая ключевой |
| !^таблица.columns[]+ таблица из одного столбца $column | !^таблица.columns[]+ таблица из одного столбца $column |
| $отфильтрованное[^таблица.filter(выражение)] | !$отобранное[^таблица.select(выражение)] = таблица из тех же столбцов и строк, у которых условие совпало |
| $adults[^man.filter($man.age>=18)] | $adults[^man.select($man.age>=18)] |
| ^таблица.color[цвет1;цвет2] | |
| !hash | !hash |
| Line 331 odbc c:\drives\y\parser3project\odbc\ | Line 331 odbc c:\drives\y\parser3project\odbc\ |
| !^a.intersection[b] = пересечение | !^a.intersection[b] = пересечение |
| значения a | значения a |
| !^a.intersects[b] = bool | !^a.intersects[b] = bool |
| !^hash::sql{запрос}[[$.limit(2) $.offset(4)]] | !^hash::sql{запрос}[[$.limit(2) $.offset(4) todo:$.default{$.field[]...}]] |
| получается hash(ключи=значения первая колонка ответа) | получается hash(ключи=значения первая колонка ответа) |
| of hash(ключи=названия остальных колонкок ответа) | of hash(ключи=названия остальных колонкок ответа) |
| !^hash._keys[]+ таблица из одного столбца $key | !^hash._keys[]+ таблица из одного столбца $key |
| Line 538 Xhashfile | Line 538 Xhashfile |
| разблокируется | разблокируется |
| Xchmod[...] НЕТ И НЕ БУДЕТ, ЧТОБЫ НЕ МОГЛИ СДЕЛАТЬ executable и запустить, даже если ftp запрещает chmod. | Xchmod[...] НЕТ И НЕ БУДЕТ, ЧТОБЫ НЕ МОГЛИ СДЕЛАТЬ executable и запустить, даже если ftp запрещает chmod. |
| !math | math |
| !$math:PI | !$math:PI |
| !^math:round floor ceiling | !^math:round floor ceiling |
| !^math:trunc frac | !^math:trunc frac |
| Line 548 Xhashfile | Line 548 Xhashfile |
| !^math:degrees radians | !^math:degrees radians |
| !^math:pow sqrt | !^math:pow sqrt |
| !^math:random(ширина диапазона) | !^math:random(ширина диапазона) |
| ^math:{C2C0983C-E26E-4169-BD07-77ECE9405BA5} | |
| !date | !date |
| !время типа time можно использовать в выражениях, подставляет | !время типа time можно использовать в выражениях, подставляет |
| Line 558 Xhashfile | Line 560 Xhashfile |
| !^date::now(смещение в днях) выдаёт сейчас+смещение | !^date::now(смещение в днях) выдаёт сейчас+смещение |
| !^date::create(дней с epoch) // старое имя set | !^date::create(дней с epoch) // старое имя set |
| !^date::create(year;month[;day[;hour[;minute[;second]]]]) // старое имя set | !^date::create(year;month[;day[;hour[;minute[;second]]]]) // старое имя set |
| ^date::sql-create[дата в формате %Y-%m-%d %H:%M:%S] | !^date::create[дата в формате %Y-%m-%d %H:%M:%S] |
| для удобного создания по значению из базы | для удобного создания по значению из базы |
| !$date.year month day hour minute second weekday read-only | формат1: %Y[-%m[-%d[ %H[:%M[:%S]]]]] |
| формат2: %H:%M[:%S] | |
| !$date.year month day hour minute second weekday todo:yearday | |
| read-only | |
| !^date.roll[year|month|day](+-смещение) сдвигает дату | !^date.roll[year|month|day](+-смещение) сдвигает дату |
| !^date.sql-string[] %Y-%m-%d %H:%M:%S | !^date.sql-string[] %Y-%m-%d %H:%M:%S |
| where published='$дата.sql-string[]' | where published='$дата.sql-string[]' |
| Line 616 xdoc(xnode) | Line 621 xdoc(xnode) |
| !cdata-section-elements = qnames | !cdata-section-elements = qnames |
| !indent = "yes" | "no" | !indent = "yes" | "no" |
| !media-type = string /> | !media-type = string /> |
| !параметры передаются как есть, не xpath выражения | |
| !.string[output options] | !.string[output options] |
| !.save[file.xml;output options] с шапкой | !.save[file.xml;output options] с шапкой |
| Line 686 xdoc(xnode) | Line 692 xdoc(xnode) |
| !void removeAttribute(in DOMString name) raises(DOMException) | !void removeAttribute(in DOMString name) raises(DOMException) |
| !Attr getAttributeNode(in DOMString name) | !Attr getAttributeNode(in DOMString name) |
| !Attr setAttributeNode(in Attr newAttr) raises(DOMException) | !Attr setAttributeNode(in Attr newAttr) raises(DOMException) |
| !/*Attr*/ removeAttributeNode(in Attr oldAttr) raises(DOMException) | !Attr removeAttributeNode(in Attr oldAttr) raises(DOMException) |
| !NodeList getElementsByTagName(in DOMString name) | !NodeList getElementsByTagName(in DOMString name) |
| !void normalize() | !void normalize() |
| Line 783 xdoc(xnode) | Line 789 xdoc(xnode) |
| кучи auto.p и запрашиваемого документа: | кучи auto.p и запрашиваемого документа: |
| !parser3.conf | !parser3.conf |
| cgi: | cgi: |
| 1. или полный путь из переменной окружения HTTP_PARSER_ROOT_CONFIG | 1. или полный путь из переменной окружения CGI_PARSER_SITE_CONFIG |
| или configure sysconfdir|windows directory | |
| 2. или полный путь из переменной окружения HTTP_PARSER_SITE_CONFIG | |
| или рядом с бинарником parser'а | или рядом с бинарником parser'а |
| isapi: windows directory | isapi: windows directory |
| apache module: | apache module: |
| 1) ParserRootConfig [httpd.conf only] | 1) ParserConfig [can be in .htaccess] |
| 2) ParserSiteConfig [can be in .htaccess] | |
| !auto.p вниз от DOCUMENT_ROOT/ по дереву до каталога с обрабатываемым файлом включительно | !auto.p вниз от DOCUMENT_ROOT/ по дереву до каталога с обрабатываемым файлом включительно |
| класс собирается из всех этих файлов, последующие становятся родителями предыдущих | класс собирается из всех этих файлов, последующие становятся родителями предыдущих |
| имя последнего загруженного MAIN, имён у предыдущих нет | имя последнего загруженного MAIN, имён у предыдущих нет |
| Line 815 xdoc(xnode) | Line 818 xdoc(xnode) |
| !parser.runtime ^if(0). параметры (больше/меньше, чем нужно, не тех типов, ...) | !parser.runtime ^if(0). параметры (больше/меньше, чем нужно, не тех типов, ...) |
| !number.zerodivision ^eval(1/0) ^eval(1%0) | !number.zerodivision ^eval(1/0) ^eval(1%0) |
| !number.format ^eval(abc*5) | !number.format ^eval(abc*5) |
| !file.lock shared/exclusive lock error | |
| !file.missing ^file:delete[delme] not found | !file.missing ^file:delete[delme] not found |
| !file.access ^table::load[.] no rights | !file.access ^table::load[.] no rights |
| !image.format ^image::measure[index.html] not gif/jpg | !image.format ^image::measure[index.html] not gif/jpg |