new \Where(\Where::_and([ \Where::_operator(Section::$STEP,'=',$step_id) ])), \Query::SORT =>[Section::$PARENT=>'ASC'], ]); while($l = \DB::fetch($r)){ $id = intval($l[Section::$ID]); $pid = intval($l[Section::$PARENT]); $res['base'][$id] = $l; $res[$pid][] = $id; } $getPath = function($id,$base){ $res = [$id]; do { $x = $base[$id]; $id = intval($x[Section::$PARENT]); if($id) $res[] = $id; } while($id); return array_reverse($res); }; foreach ($res['base'] as $id=>$v){ $res['base'][$id]['path'] = $getPath($id,$res['base']); } return self::$structures[$step_id] = $res; } static function getFormInputs(\ModuleBZ\Form &$form, array $data, $C, bool $isEdit) { $form->addRow((new Row()) ->addColumn(((new Text()) ->setName(self::$NAME) ->setValue($C[self::$NAME]) ->setClassAll('c-100') ->setLabel($c = V::get(Vars::$NAME)) ->setPlaceholder($c) )) ->addColumn(((new Textarea()) ->setName(self::$TEXT) ->setValue($C[self::$TEXT]) ->setClassAll('c-100') ->setLabel($c = V::get(Vars::$TEXT)) ->setPlaceholder($c) ->setAutoHeight(true) )) ) ; } 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::$NAME, C::TYPE => eColumnType::VARCHAR, C::LENGTH => 1023, C::TH => V::get(Vars::$NAME), C::FILTER_TYPE => eFilterType::TEXT, ]), new C([ C::VAR_NAME => &self::$TEXT, C::TYPE => eColumnType::LONGTEXT, C::TH => V::get(Vars::$TEXT), //C::FILTER_TYPE => eFilterType::TEXT, //C::HIDDEN => true, ]), new C([ C::VAR_NAME => &self::$VIS, C::TYPE => eColumnType::TINYINT, C::FILTER_TYPE => eFilterType::BOOLEAN, C::DEFAULT => 0, C::TH => V::get(Vars::$VIS), C::FUNC_VALUE_DATA => function($v){ return Merakomis::boolString($v[self::$VIS]); } ]), new C([ C::VAR_NAME => &self::$POS, C::TYPE => eColumnType::INT, C::DEFAULT => time(), c::HIDDEN => true, ]), new C([ C::VAR_NAME => &self::$PORTAL, C::TYPE => eColumnType::INT, C::DEFAULT => intval(\Site::$portal_id), c::HIDDEN => true, ]), new C([ C::VAR_NAME => &self::$ACCOUNT, C::TYPE => eColumnType::INT, C::DEFAULT => intval(\Site::$owner_id), //C::TH => V::get(Vars::$ACCOUNT), c::HIDDEN => true, ]), ]; } } new Step();