parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Вот так заработало:

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
			}
		}
	}
}
С таким работать можно, или тут что-то можно улучшить?