|
version 1.124, 2003/11/04 10:49:33
|
version 1.133, 2003/11/06 12:58:27
|
|
Line 312 odbc c:\drives\y\parser3project\odbc\
|
Line 312 odbc c:\drives\y\parser3project\odbc\
|
| !$.separator[^#09] |
!$.separator[^#09] |
| !$.encloser["] по-умолчанию, нет. |
!$.encloser["] по-умолчанию, нет. |
| !^table::sql{query}[[$.limit(2) $.offset(4) todo:$.default{ ^table::create[...] }]] |
!^table::sql{query}[[$.limit(2) $.offset(4) todo:$.default{ ^table::create[...] }]] |
| !^таблица.save[[nameless|append;]путь] |
!^таблица.save[[nameless|append;]путь[;опции, см. load]] |
| !$таблица.поле |
!$таблица.поле |
| !$таблица.fields из named таблицы выдаёт текущую запись как Hash |
!$таблица.fields из named таблицы выдаёт текущую запись как Hash |
| !^таблица.menu{тело}[разделитель] |
!^таблица.menu{тело}[разделитель] |
|
Line 354 odbc c:\drives\y\parser3project\odbc\
|
Line 354 odbc c:\drives\y\parser3project\odbc\
|
| !_default - специальный ключ, если задан, |
!_default - специальный ключ, если задан, |
| то при обращении по ключу, которому нет соответствия, выдаётся _default значение |
то при обращении по ключу, которому нет соответствия, выдаётся _default значение |
| !$hash.fields выдает $hash. чтобы класс hash был чуть больше похож на класс table |
!$hash.fields выдает $hash. чтобы класс hash был чуть больше похож на класс table |
| !^hash::create[[!copy_from_hash|Xcopy_from_hashfile]] |
!^hash::create[[!copy_from_hash|copy_from_hashfile]] |
| создаёт новый hash, копию старого |
создаёт новый hash, копию старого |
| !^hash.add[слагаемое] |
!^hash.add[слагаемое] |
| перезаписывает одноимённые |
перезаписывает одноимённые |
|
Line 372 odbc c:\drives\y\parser3project\odbc\
|
Line 372 odbc c:\drives\y\parser3project\odbc\
|
| !^foreach[key;value]{тело}[[разделитель]|{разделитель который выполняется перед непустым очередным не первым телом}] |
!^foreach[key;value]{тело}[[разделитель]|{разделитель который выполняется перед непустым очередным не первым телом}] |
| !^delete[ключ] удалить ключ |
!^delete[ключ] удалить ключ |
| |
|
| |
!hashfile |
| |
!^hashfile::open[filename] |
| |
!^hashfile.clear[] забыть всё |
| |
!.ключ[значение] положить значение |
| |
!.ключ[$.value[значение] $.expires ЗНАЧЕНИЕ} |
| |
положить значение до expires |
| |
значение поля expires может быть date, или число дней(0дней=не вечно) |
| |
!.ключ достать |
| |
!^delete[ключ] удалить ключ |
| |
!^hash[] |
| |
преобразовать в обычный hash |
| |
!^foreach[key|value]{тело}[[разделитель]|{разделитель который выполняется перед непустым очередным не первым телом}] |
| |
|
| |
пример: |
| |
$uids[^hashfile::assign[/db/uids]] |
| |
|
| |
$random[23847387taduigh345XGHWElxjgdjg] |
| |
$uids.$random[$.value[$uid] $.expires(60*30)] |
| |
$uid[$persistent.logins.$random] |
| |
|
| !form |
!form |
| [берётся первый элемент из одноимённых из GET, потом первый из POST] |
[берётся первый элемент из одноимённых из GET, потом первый из POST] |
| !$form:поле = string/file |
!$form:поле = string/file |
|
Line 430 odbc c:\drives\y\parser3project\odbc\
|
Line 450 odbc c:\drives\y\parser3project\odbc\
|
| ПРЕДУПРЕЖДЕНИЕ: класс form получает свои поля после обработки всех auto класса MAIN |
ПРЕДУПРЕЖДЕНИЕ: класс form получает свои поля после обработки всех auto класса MAIN |
| поэтому необходимо задать $request/response:charset в одном из них. не после. |
поэтому необходимо задать $request/response:charset в одном из них. не после. |
| |
|
| Xhashfile |
|
| !^hashfile::open[$DB_HOME;filename] |
|
| !^hashfile.clear[] |
|
| забыть всё |
|
| !.ключ[значение] положить значение навечно |
|
| !.ключ[$.value[значение] $.expires(секунд)} положить значение на expires секунд |
|
| !.ключ достать |
|
| !^cache[ключ](секунд){код} |
|
| !суть то же, что и "положить+достать", но за один раз и компактнее |
|
| !если 0секунд, значит не кэшировать, а старый такой стереть |
|
| !внутри {кода} может быть вызван ^delete[] |
|
| !^delete[[ключ]] удалить ключ |
|
| !буде вызван без параметра изнутри cache, отменяет кэширование блока: |
|
| !блок не будет скэширован, его старое значение будет стёрто |
|
| !^hash[] |
|
| преобразовать в обычный hash |
|
| !^foreach[key|value]{тело}[[разделитель]|{разделитель который выполняется перед непустым очередным не первым телом}] |
|
| |
|
| |
|
| примеры: |
|
| $uids[^hashfile::assign[/db/uids]] |
|
| $code:clear[/db/cache]] |
|
| $code[^hashfile::assign[/db/cache]] |
|
| |
|
| $random[23847387taduigh345XGHWElxjgdjg] |
|
| $uids.$random[$.value[$uid] $.expires(60*30)] |
|
| $uid[$persistent.logins.$random] |
|
| |
|
| ^code.cache[заголовки новостей](35){....} |
|
| |
|
| !mail |
!mail |
| !$mail.received=MESSAGE: |
!$mail.received=MESSAGE: |
| .from |
.from |
|
Line 488 Xhashfile
|
Line 478 Xhashfile
|
| $.message#[MESSAGE] (message, message2, ...) |
$.message#[MESSAGE] (message, message2, ...) |
| |
|
| !^mail:send[ |
!^mail:send[ |
| |
$.options[-odd] |
| |
unix: строка, которая будет добавлена к команде запуска sendmail |
| |
-odd означает "быстро поставь в очередь без проверки email" |
| |
win32: игнорируется |
| $.charset[кодировка заголовка и текстовых блоков] |
$.charset[кодировка заголовка и текстовых блоков] |
| $.any-header-field |
$.any-header-field |
| $.text[string] |
$.text[string] |