--- parser3/operators.ru.txt 2003/11/03 11:06:18 1.120 +++ parser3/operators.ru.txt 2003/11/06 10:25:49 1.130 @@ -309,8 +309,10 @@ odbc c:\drives\y\parser3project\odbc\ !^table::load[[nameless;]путь[;опции]] !если не nameless, названия колонок берутся из первой строки !пустые строки, и строки в первой колонке содержащие '#', игнорируются + !$.separator[^#09] + !$.encloser["] по-умолчанию, нет. !^table::sql{query}[[$.limit(2) $.offset(4) todo:$.default{ ^table::create[...] }]] - !^таблица.save[[nameless|append;]путь] + !^таблица.save[[nameless|append;]путь[;опции, см. load]] !$таблица.поле !$таблица.fields из named таблицы выдаёт текущую запись как Hash !^таблица.menu{тело}[разделитель] @@ -352,7 +354,7 @@ odbc c:\drives\y\parser3project\odbc\ !_default - специальный ключ, если задан, то при обращении по ключу, которому нет соответствия, выдаётся _default значение !$hash.fields выдает $hash. чтобы класс hash был чуть больше похож на класс table - !^hash::create[[!copy_from_hash|Xcopy_from_hashfile]] + !^hash::create[[!copy_from_hash|copy_from_hashfile]] создаёт новый hash, копию старого !^hash.add[слагаемое] перезаписывает одноимённые @@ -394,6 +396,9 @@ odbc c:\drives\y\parser3project\odbc\ !$request:query !$request:body unprocessed POST request body !$request:uri + !$request:document-root + каталог, относительно которого считаются пути в parser, по-умолчанию = $env:DOCUMENT_ROOT + можно изменить, если на hosting что-то неудобно настроено X!$request:browser это hash, поля: !$type = ie/nn и !$version = номер, скажем 5.5 X$request:user @@ -425,36 +430,24 @@ odbc c:\drives\y\parser3project\odbc\ ПРЕДУПРЕЖДЕНИЕ: класс form получает свои поля после обработки всех auto класса MAIN поэтому необходимо задать $request/response:charset в одном из них. не после. -Xhashfile - !^hashfile::open[$DB_HOME;filename] - !^hashfile.clear[] - забыть всё - !.ключ[значение] положить значение навечно - !.ключ[$.value[значение] $.expires(секунд)} положить значение на expires секунд +hashfile + !^hashfile::open[filename] + ^hashfile.clear[] забыть всё + !.ключ[значение] положить значение + .ключ[$.value[значение] $.expires(секунд)} положить значение на expires секунд !.ключ достать - !^cache[ключ](секунд){код} - !суть то же, что и "положить+достать", но за один раз и компактнее - !если 0секунд, значит не кэшировать, а старый такой стереть - !внутри {кода} может быть вызван ^delete[] - !^delete[[ключ]] удалить ключ - !буде вызван без параметра изнутри cache, отменяет кэширование блока: - !блок не будет скэширован, его старое значение будет стёрто + !^delete[ключ] удалить ключ !^hash[] преобразовать в обычный hash - !^foreach[key|value]{тело}[[разделитель]|{разделитель который выполняется перед непустым очередным не первым телом}] - + ^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.received=MESSAGE: .from @@ -483,6 +476,10 @@ Xhashfile $.message#[MESSAGE] (message, message2, ...) !^mail:send[ + $.options[-odd] + unix: строка, которая будет добавлена к команде запуска sendmail + -odd означает "быстро поставь в очередь без проверки email" + win32: игнорируется $.charset[кодировка заголовка и текстовых блоков] $.any-header-field $.text[string] @@ -605,7 +602,8 @@ Xhashfile если указана ширина_символа, то monospaced, если 0, то ширина_символа = ширине gif !^картинка.text(x;y)[текст_надписи] AS_IS !^картинка.length[текст_надписи] AS_IS - !^картинка.gif[] -- кодирует в FILE с content-type=image/gif + !^картинка.gif[возможно, имя файла] -- кодирует в FILE с content-type=image/gif + имя файла будет использовано при $response:download !^картинка.arc(center x;center y;width;height;start in degrees;end in degrees;color) !^картинка.sector(center x;center y;width;height;start in degrees;end in degrees;color) !^картинка.circle(center x;center y;r;color) @@ -700,8 +698,8 @@ Xhashfile для удобного создания по значению из базы формат1: %Y[-%m[-%d[ %H[:%M[:%S]]]]] формат2: %H:%M[:%S] - ^date::unix-timestamp() - ^date.unix-timestamp[] + !^date::unix-timestamp() + !^date.unix-timestamp[] !$date.year month day hour minute second weekday yearday(0...) daylightsaving TZ read-only TZ="" << локальная зона