$res->id, ]); return $res; } static function format($v){ return [ 'id' => intval($v[self::$ID]), 'name' => trim($v[self::$NAME]), 'link' => self::getLink($v), ]; } public static function getName($v, array $options = []): string { return $v?$v[self::$NAME]:parent::getName($v,$options); } public static function getEditTitle($values = []): string { return self::getTitle().': '.self::getName($values); } public static function getLink($C): string { return $C?\Site::$protocol.'site'.$C[self::$ID].'.'.\Site::$host:''; } 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=[]){ $justData = boolval($values['justData']); $id = $values[self::$ID]; $link_id = \Site::sectionUrl('content/site/'.$id.'/section/'); $link_data_id = \Site::sectionUrl('content/site/'.$id.'/section_data/'); $o = [ \Query::WHERE=>new \Where(\Where::_operator(Section::$PORTAL,'=',$id)), \ModuleTable::ROW_CLICK => $justData ? eRowClick::CARD : eRowClick::OPEN_UADD, \ModuleTable::FORM_INIT_DATA=>[ Section::$PORTAL => $id, ], \ModuleTable::TABLE_ID => self::$table_name.'_'.Section::$table_name.'_'.$id, \ModuleTable::COLUMN_RENDER => [ Section::$NAME => [ \ModuleTable::COLUMN_RENDER_LINK_ID => $link_id, \ModuleTable::COLUMN_RENDER_LINK_CSS_CLASS => 'link', //ModuleTable::COLUMN_RENDER_LINK_MODAL => true, ], Section::$DATA => [ /* \ModuleTable::COLUMN_RENDER_LINK_ID => $link_data_id, \ModuleTable::COLUMN_RENDER_LINK_CSS_CLASS => 'link', //ModuleTable::COLUMN_RENDER_LINK_MODAL => true, /**/ \ModuleTable::COLUMN_RENDER_LINK_ID => $link_data_id, \ModuleTable::COLUMN_RENDER_LINK_CSS_CLASS => 'link', \ModuleTable::COLUMN_RENDER_LINK_MODAL => true, \ModuleTable::COLUMN_RENDER_CARD_CONTROLLER => Section::$controller, \ModuleTable::COLUMN_RENDER_CARD_FORM_METHOD => 'getSettingsForm', ], ] ]; return $justData ? Section::getTableData( $o ) : Section::drawTable( $o ); }, ], [ eTab::NAME=>'Профили', eTab::TYPE=>eTabType::TABLE, eTab::CONTENT=>function($values=[]){ $justData = boolval($values['justData']); $id = $values[self::$ID]; $o = [ \Query::WHERE=>new \Where(\Where::_operator(\Profile::$PORTAL,'=',$id)), \ModuleTable::ROW_CLICK => $justData ? eRowClick::CARD : eRowClick::OPEN_UADD, \ModuleTable::FORM_INIT_DATA=>[ \Profile::$PORTAL => $id, ], \ModuleTable::TABLE_ID => self::$table_name.'_'.\Profile::$table_name.'_'.$id ]; return $justData ? \Profile::getTableData( $o ) : \Profile::drawTable( $o ); }, ], [ eTab::NAME=>'Домены', eTab::TYPE=>eTabType::TABLE, eTab::CONTENT=>function($values=[]){ $justData = boolval($values['justData']); $id = $values[self::$ID]; $o = [ \Query::WHERE=>new \Where(\Where::_operator(Domain::$PORTAL,'=',$id)), \ModuleTable::ROW_CLICK => $justData ? eRowClick::CARD : eRowClick::OPEN_UADD, \ModuleTable::FORM_INIT_DATA=>[ Domain::$PORTAL => $id, ], \ModuleTable::TABLE_ID => self::$table_name.'_'.Domain::$table_name.'_'.$id ]; return $justData ? Domain::getTableData( $o ) : Domain::drawTable( $o ); }, ], [ eTab::NAME=>'Страницы верификации и дополнительные файлы html, xml, txt', eTab::TYPE=>eTabType::TABLE, eTab::CONTENT=>function($values=[]){ $justData = boolval($values['justData']); $id = $values[self::$ID]; $o = [ \Query::WHERE=>new \Where(\Where::_operator(Verify::$PORTAL,'=',$id)), \ModuleTable::ROW_CLICK => $justData ? eRowClick::CARD : eRowClick::OPEN_UADD, \ModuleTable::FORM_INIT_DATA=>[ Verify::$PORTAL => $id, ], \ModuleTable::TABLE_ID => self::$table_name.'_'.Verify::$table_name.'_'.$id ]; return $justData ? Verify::getTableData( $o ) : Verify::drawTable( $o ); }, ], ]; } static function getForm($values = [], $options = []) :array { return [ self::getCommonFormInputs(), [ Form::VIEW=>Form::ROW, Form::COLS => [ [ Form::VIEW =>Form::INPUT, Form::COL_CLASSES =>'c c-100', Form::KEY_VALUE =>self::$NAME, Form::TYPE =>eInputType::TEXT, Form::INPUT_OPT => [ Input::PLACEHOLDER => $c = V::get(Vars::$NAME), Input::LABEL => $c, INput::VALIDATION => [ eInputValidation::NOT_EMPTY=>true, eInputValidation::REQUIRED=>true, ], ], ], [ Form::VIEW =>Form::INPUT, Form::COL_CLASSES =>'c c-100', Form::KEY_VALUE =>self::$ROBOTS_TXT, Form::TYPE =>eInputType::TEXTAREA, Form::INPUT_OPT => [ Input::PLACEHOLDER => $c = V::get(Vars::$ROBOTS_TXT), Input::LABEL => $c, ], ], [ Form::VIEW =>Form::INPUT, Form::COL_CLASSES =>'c c-100', Form::KEY_VALUE =>self::$REDIRECT, Form::TYPE =>eInputType::TEXTAREA, Form::INPUT_OPT => [ Input::PLACEHOLDER => $c = V::get(Vars::$REDIRECT), 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 =>function(){return V::get(Vars::$ID);}, ]), new C([ C::VAR_NAME => &self::$NAME, C::TYPE => eColumnType::VARCHAR, C::LENGTH => 1023, C::TH => function(){return V::get(Vars::$NAME);}, ]), new C([ C::VAR_NAME => &self::$LINK, C::TYPE => eColumnType::NONE, C::TH => V::get(Vars::$LINK), C::FUNC_VALUE_DATA => function($v){ $link = self::getLink($v); return $link; }, C::FUNC_VALUE => function($v){ $link = self::getLink($v); return ''.$link.''; } ]), new C([ C::VAR_NAME => &self::$ROBOTS_TXT, C::TYPE => eColumnType::VARCHAR, C::LENGTH => 4095, C::DEFAULT => 0, C::TH => V::get(Vars::$ROBOTS_TXT), C::TD_CLASS => 'text_wrap', ]), new C([ C::VAR_NAME => &self::$REDIRECT, C::TYPE => eColumnType::TEXT, C::DEFAULT => '', C::TH => V::get(Vars::$REDIRECT), C::HIDDEN => true, ]), 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 Portal();