Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Mizter Egoist 09.06.2017 13:21 / 09.06.2017 13:22
@_checkAttr[eID;data] ^if(def $eID){ $_attr[^get.query[ $.table[attributes] $.type[hash] $.select[ $.eID[= '$eID'] ] ]] $attr[^get.selectData[$_attr]] $attrTable[^table::create{id img name type link attr}] $updateTable[^table::create{id eID img name type link attr}] $insertTable[^table::create{eID img name type link attr}] ^data.foreach[id;item]{ ^attrTable.append[ $.id[$id] $.img[$item.img] $.name[$item.name] $.type[$item.type] $.link[$item.link] $.attr[[^item.arr.foreach[;values]{^json:string[$values]}[, ]]] ] } $attrHash[^attrTable.hash[id]] ^attrTable.menu{ $attrExist[$attr.[$attrTable.id]] ^if($attrExist){ ^if($attrExist.name ne $attrTable.name || $attrExist.type ne $attrTable.type || $attrExist.attr ne $attrTable.attr){ ^updateTable.append[ $.id[$attrTable.id] $.eID[$eID] $.img[$attrTable.img] $.name[$attrTable.name] $.type[$attrTable.type] $.link[$attrTable.link] $.attr[$attrTable.attr] ] } }{ ^insertTable.append[ $.eID[$eID] $.img[$attrHash.[$attrTable.id].img] $.name[$attrHash.[$attrTable.id].name] $.type[$attrHash.[$attrTable.id].type] $.link[$attrHash.[$attrTable.id].link] $.attr[$attrHash.[$attrTable.id].attr] ] } } ^if($updateTable){ ^_updateAttr[$eID;$updateTable] } ^if($insertTable){ ^_insertAttr[$eID;$insertTable] } } @_insertAttr[eID;data] ^if(def $eID){ ^self._transaction{ ^void:sql{ INSERT INTO attributes (eID, img, name, type, link, attr) VALUES ^data.menu{( '$data.eID', '$data.img', '$data.name', '$data.type', '$data.link', '$data.attr' )}[, ] } } } @_updateAttr[eID;data] ^if(def $eID){ ^self._transaction{ ^void:sql{ ^data.menu{ UPDATE `attributes` SET eID = '$data.eID', img = '$data.img', name = '$data.name', type = '$data.type', link = '$data.link', attr = '$data.attr' WHERE id = $data.id } } } }С таким работать можно, или тут что-то можно улучшить?