| Новости | FAQ | Авторы | Документация | В действии | Библиотека |
| Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Janek 14.04.2008 16:32
###########################################################################
@query_to_hash[sQuery][tQuery;oneParam]
^if(!def $sQuery){$sQuery[$request:query]}
$sQuery[^sQuery.match[&^;][g]{&}]
$tQuery[^sQuery.split[&]]
$result[^hash::create[]]
^tQuery.menu{
$oneParam[^tQuery.piece.split[=;lh]]
^result.add[
$.[$oneParam.0][$oneParam.1]
]
}
###########################################################################
@hash_to_query[hQuery][sQuery]
$sQuery[^hQuery.foreach[key;value]{$key=$value&^;}]
$result[^sQuery.trim[end;&^;]]
###########################################################################
@buildQuery[sFilter;AppendQuery;bFilterEliminator][hOldQuery;hAppendQuery;tFilter;hNewQuery]
$hOldQuery[^query_to_hash[]]
^if($AppendQuery is "string"){
$hAppendQuery[^query_to_hash[$AppendQuery]]
}
^if($AppendQuery is "hash"){
$hAppendQuery[$AppendQuery]
}
$hNewQuery[^hash::create[]]
^if(def $sFilter){
$tFilter[^sFilter.split[,]]
^hOldQuery.foreach[key;value]{
^if(^tFilter.locate[piece;$key] && !$bFilterEliminator){
^hNewQuery.add[$.[$key][$value]]
}
^if(!^tFilter.locate[piece;$key] && $bFilterEliminator){
^hNewQuery.add[$.[$key][$value]]
}
}
}{
$hNewQuery[$hOldQuery]
}
^if($hAppendQuery is "hash"){^hNewQuery.add[$hAppendQuery]}
$result[^hash_to_query[$hNewQuery]]