$w = new \Where(\Where::_and([ \Where::_operator(self::$ACCOUNT,'=',UID), \Where::_operator(self::$DASHBOARD,'=',$id), ])), \Query::SORT=>self::$POS ],$isAssocArray); } static function renderWidgetTools(){ return '
'; } static function renderIcon($l,$options=[]){ $options['class'] = ($c = $options['class'])?$c:''; $type = ($c = $l[self::$TYPE])?$c:$options['type']; $id = ($c = $l[self::$ID])?$c:0; $widget = eWidget::$array[$type]; return '
'.$widget[eWidget::TITLE].'
'; } static function getWidgetTableID($v){ $id = 0; if(is_array($v)) $id = $v[self::$ID]; if(is_numeric($v)) $id = $v; return 'widget_'.$id; } static function renderWidget($l){ $res = ''; $id = $l[self::$ID]; $x = $l[self::$X]; $y = $l[self::$Y]; $cols = $l[self::$COLS]; $rows = $l[self::$ROWS]; $widget = eWidget::$array[$l[self::$TYPE]]; switch ($widget[eWidget::TYPE]){ case eWidgetType::TABLE: $table_id = self::getWidgetTableID($l); $settings = Table::getSettings($table_id,$widget[eWidget::CONTROLLER]); $settings += $settings['class']::getWindowTableRules(); $res .= '
'.$widget[eWidget::TITLE].'
'.$settings['class']::drawTable($settings); $cols = 12; $rows = 6; break; default : $res .= self::renderIcon($l); } $style = ''; // если у нас заданы точные координаты if($x and $y and $cols and $rows){ $style .= 'grid-area:'.$y .' / '.$x.' / '.($y + $rows).' / '.($x + $cols).';'; // если заданы только ширина и длина } else if (!($x and $y) and $rows and $cols) { $style .= 'grid-column:span '.$cols.';'; $style .= 'grid-row:span '.$rows.';'; } return '
'.self::renderWidgetTools().$res.'
'; } static function getMyListByDashboardID($dashboard_id = 0){ if(!($dashboard_id = intval($dashboard_id))) return ''; $res = ''; $r = self::getMyByDashboardID($dashboard_id); while($l = \DB::fetch($r)){ $res .= self::renderWidget($l); } return $res; } static function getForm($values = [], $options = []) :array { return [ self::getCommonFormInputs(), [ Form::VIEW=>Form::ROW, Form::COLS => [ [ Form::VIEW =>Form::INPUT, Form::COL_CLASSES =>'col-12', Form::KEY_VALUE =>self::$NAME, Form::TYPE =>eInputType::TEXT, Form::INPUT_OPT => [ Input::PLACEHOLDER => $c = V::get(Vars::$NAME), Input::LABEL => $c, ], ], ] ], ]; } 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::$DASHBOARD, C::TYPE =>eColumnType::INT, C::DEFAULT =>0, C::TH =>V::get(Vars::$DASHBOARD), ]), new C([ C::VAR_NAME =>&self::$X, C::TYPE =>eColumnType::INT, C::DEFAULT =>0, C::TH =>V::get(Vars::$X), ]), new C([ C::VAR_NAME =>&self::$Y, C::TYPE =>eColumnType::INT, C::DEFAULT =>0, C::TH =>V::get(Vars::$Y), ]), new C([ C::VAR_NAME =>&self::$COLS, C::TYPE =>eColumnType::INT, C::DEFAULT =>0, C::TH =>V::get(Vars::$COLS), ]), new C([ C::VAR_NAME =>&self::$ROWS, C::TYPE =>eColumnType::INT, C::DEFAULT =>0, C::TH =>V::get(Vars::$ROWS), ]), new C([ C::VAR_NAME =>&self::$ENTITY, C::TYPE =>eColumnType::INT, C::DEFAULT =>0, C::TH =>V::get(Vars::$ENTITY), ]), new C([ C::VAR_NAME =>&self::$TYPE, C::TYPE =>eColumnType::INT, C::DEFAULT =>0, C::TH =>V::get(Vars::$TYPE), ]), new C([ C::VAR_NAME =>&self::$POS, C::TYPE =>eColumnType::INT, C::DEFAULT =>time(), C::TH =>V::get(Vars::$POS), ]), new C([ C::VAR_NAME =>&self::$ACTION, C::TYPE =>eColumnType::INT, C::DEFAULT =>0, C::TH =>V::get(Vars::$ACTION), ]), new C([ C::VAR_NAME => &self::$NAME, C::TYPE => eColumnType::VARCHAR, C::LENGTH => 1023, C::TH => V::get(Vars::$NAME), ]), 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 Widget();