$value){ $settings[$key] = $value; } self::updateById($settings['id'],[self::$DATA =>je($settings)]); } static function get($type=0,$widget_id=0,$oid=0){ $type = intval($type); $widget_id = intval($widget_id); $oid = intval($oid); $a = self::select([ \Query::WHERE => $w = new \Where(\Where::_and([ \Where::_operator(self::$TYPE,'=',$type), \Where::_operator(self::$WIDGET_ID,'=',$widget_id), \Where::_operator(self::$OID,'=',$oid), \Where::_operator(self::$ACCOUNT,'=',UID), ])), \Query::COUNT => 1 ],true); if($a){ $C = array_pop($a); $settings = json_decode($C[self::$DATA],true); $settings['id'] = $C[self::$ID]; return $settings; } else { $settings = ['x'=>'center','y'=>'center']; $r = self::insert($aa = [ self::$TYPE =>$type, self::$WIDGET_ID =>$widget_id, self::$OID =>$oid, self::$DATA =>je($settings), ]); $settings['id'] = $r->id; return $settings; } } static function columnInfo() : array { return [ new C([ C::VAR_NAME =>&self::$ID, C::TYPE =>eColumnType::INT, C::AUTO_INCREMENT =>true, C::PRIMARY =>true, C::DEFAULT =>0, C::HIDDEN =>true, C::TH =>V::get(Vars::$ID), ]), new C([ C::VAR_NAME =>&self::$TYPE, C::TYPE =>eColumnType::INT, ]), new C([ C::VAR_NAME =>&self::$WIDGET_ID, C::TYPE =>eColumnType::INT, ]), new C([ C::VAR_NAME =>&self::$OID, C::TYPE =>eColumnType::INT, ]), new C([ C::VAR_NAME =>&self::$DATA, C::TYPE =>eColumnType::VARCHAR, C::LENGTH =>1023, ]), new C([ C::VAR_NAME => &self::$ACCOUNT, C::TYPE => eColumnType::INT, C::LENGTH => 11, C::TH => V::get(Vars::$ACCOUNT), C::DEFAULT => intval(UID), //c::HIDDEN=>true, c::FUNC_VALUE => function($v){ if($id = $v[self::$ACCOUNT]) { return \Account::getName( \Account::getByID($id) ); } else return '-'; }, ]), new C([ C::VAR_NAME => &self::$CREATED, C::TYPE => eColumnType::INT, C::LENGTH => 11, C::TH => V::get(Vars::$CREATED), C::DEFAULT => time(), c::FUNC_VALUE => function($v){return self::formatDate($v[self::$CREATED]);}, c::HIDDEN=>true, ]), new C([ C::VAR_NAME => &self::$UPDATED, C::TYPE => eColumnType::INT, C::DEFAULT => time(), C::TH => V::get(Vars::$UPDATED), c::FUNC_VALUE => function($v){return self::formatDate($v[self::$UPDATED]);}, c::HIDDEN=>true, ]), ]; } } new Settings();