intval($v[Article::$ID]), 'title' => $v[Article::$NAME], 'text_id' => $v[Article::$TEXT_ID], 'text' => $v[Article::$TEXT], 'parent' => intval($v[Article::$PARENT]), ]; } static function getText($v){ return $v[self::$TEXT]; } static function getFullPath($id){ $id = intval($id); $res = [$id]; $C = Article::getByID($id); $s = Kbase::getStructure($C[Article::$KBASE]); $pid = $s['base'][$id][Article::$PARENT]; $c = 0; while(isset($s['base'][$pid])){ $res[] = $pid; $pid = $s['base'][ $pid ][Article::$PARENT]; if($c++>10) break; } return array_reverse($res); } public static function getEditTabs($values=[]) { $id = $values[self::$ID]; return [ [ eTab::NAME=>'Редактировать', eTab::TYPE=>eTabType::FORM, eTab::CONTENT=>function($values=[]){ return self::_getForm($values, static::getFormOptions($values)); }, ], [ eTab::NAME=>'Статьи', eTab::TYPE=>eTabType::TABLE, eTab::CONTENT=>function($values=[]){ $id = $values[self::$ID]; $kbase = $values[self::$KBASE]; $link_id = '/content/know_base/'.$kbase.'/'; $o = [ \ModuleTable::ROW_CLICK => eRowClick::CARD, \Query::SORT=>Article::$POS, \Query::WHERE=>new \Where(\Where::_and([ \Where::_operator(Article::$KBASE,'=',$kbase), \Where::_operator(Article::$PARENT,'=',$id), ])), \ModuleTable::FORM_INIT_DATA=>[ Article::$KBASE => $kbase, Article::$PARENT => $id, ], \ModuleTable::SORTABLE => true, \ModuleTable::TABLE_ID => self::$table_name.'_'.Article::$table_name.'_'.$id, \ModuleTable::COLUMN_RENDER => [ Article::$NAME => [ \ModuleTable::COLUMN_RENDER_LINK_ID => $link_id, \ModuleTable::COLUMN_RENDER_LINK_CSS_CLASS => 'link', //ModuleTable::COLUMN_RENDER_LINK_MODAL => true, ], ] ] ; return $values['justData'] ? Article::getTableData( $o ) : Article::drawTable( $o ); }, ], ]; } public static function getName($v, array $options = []): string { return ($c = $v[self::$NAME])?$c:parent::getName($v,$options); } static function getForm($values = [], $options = []) :array { return [ self::getCommonFormInputs(), [ Form::VIEW =>Form::INPUT, Form::KEY_VALUE =>self::$PARENT, Form::TYPE =>eInputType::HIDDEN, ], [ Form::VIEW =>Form::INPUT, Form::KEY_VALUE =>self::$KBASE, Form::TYPE =>eInputType::HIDDEN, ], [ Form::VIEW=>Form::ROW, Form::COLS => [ [ Form::VIEW =>Form::INPUT, Form::COL_CLASSES =>'c c-1-3', Form::KEY_VALUE =>self::$NAME, Form::TYPE =>eInputType::TEXT, Form::INPUT_OPT => [ Input::PLACEHOLDER => $c = V::get(Vars::$NAME), Input::LABEL => $c, ], ], [ Form::VIEW =>Form::INPUT, Form::COL_CLASSES =>'c c-1-3', Form::KEY_VALUE =>self::$TEXT_ID, Form::TYPE =>eInputType::TEXT, Form::INPUT_OPT => [ Input::PLACEHOLDER => $c = V::get(Vars::$TEXT_ID), Input::LABEL => $c, Input::VALUE => ($c = $values[self::$TEXT_ID])?$c:'article'.time(), ], ], [ Form::VIEW =>Form::INPUT, Form::COL_CLASSES =>'c c-1-3', Form::KEY_VALUE =>self::$VIS, Form::TYPE =>eInputType::CHECKBOX, Form::INPUT_OPT => [ Input::PLACEHOLDER => $c = V::get(Vars::$VIS), Input::LABEL => $c, Input::VALUE => 1, Input::CHECKED => boolval($values[self::$VIS]), ], ], ] ], [ Form::VIEW=>Form::ROW, Form::COLS => [ [ Form::VIEW =>Form::INPUT, Form::COL_CLASSES =>'c', Form::KEY_VALUE =>self::$TEXT, Form::TYPE =>eInputType::TEXTAREA, Form::INPUT_OPT => [ Input::PLACEHOLDER => $c = V::get(Vars::$TEXT), Input::LABEL => $c, ], ], ] ], self::getCommonFormSubmits($values), ]; } 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), ]), new C([ C::VAR_NAME => &self::$TEXT_ID, C::TYPE => eColumnType::VARCHAR, C::LENGTH => 255, C::TH => V::get(Vars::$TEXT_ID), ]), new C([ C::VAR_NAME => &self::$TEXT, C::TYPE => eColumnType::LONGTEXT, C::TH => V::get(Vars::$TEXT), C::HIDDEN => true, ]), new C([ C::VAR_NAME => &self::$POS, C::TYPE => eColumnType::INT, C::DEFAULT => time(), C::TH => V::get(Vars::$POS), C::HIDDEN => true, ]), new C([ C::VAR_NAME => &self::$PARENT, C::TYPE => eColumnType::INT, C::DEFAULT => 0, C::TH => V::get(Vars::$PARENT), C::HIDDEN => true, ]), new C([ C::VAR_NAME => &self::$KBASE, C::TYPE => eColumnType::INT, C::DEFAULT => 0, C::HIDDEN => true, //C::TH => V::get(Vars::$KBASE), ]), new C([ C::VAR_NAME => &self::$VIS, C::TYPE => eColumnType::TINYINT, C::LENGTH => 1, C::DEFAULT => 0, C::TH => V::get(Vars::$VIS), C::FUNC_VALUE => function($v){ return MS::getBoolValText($v[self::$VIS]); }, C::FUNC_VALUE_DATA => function($v){ return MS::getBoolValText($v[self::$VIS]); } ]), 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 Article(); ///