NewsSection::$POS, \Query::WHERE => new \Where(\Where::_operator(NewsSection::$NEWS,'=',$news_id)) ],$isAssoc); } static function getByTextIDForBlog($blog_id,$owner_id,$text_id){ return \DB::fetch(self::select( [ \Query::WHERE => new \Where (\Where::_and([ \Where::_operator(static::$TEXT_ID,'=',$text_id), \Where::_operator(static::$BLOG,'=',$blog_id), \Where::_operator(static::$ACCOUNT,'=',$owner_id), ])), \Query::COUNT => 1 ] )); } static function getVisibleBlocks($news_id){ $news_id = intval($news_id); return Block::select([ \Query::WHERE => new \Where(\Where::_and([ \Where::_operator(BlocK::$TO,'=',msTo::NEWS), \Where::_operator(BlocK::$OID,'=',$news_id), \Where::_operator(BlocK::$VIS,'=',1), ])) ],true); } 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]; $o = [ \ModuleTable::ROW_CLICK => eRowClick::CARD, \Query::WHERE=>new \Where(\Where::_operator(NewsSection::$NEWS,'=',$id)), \ModuleTable::FORM_INIT_DATA=>[ NewsSection::$NEWS => $id, ], \ModuleTable::TABLE_ID => self::$table_name.'_'.NewsSection::$table_name.'_'.$id, ]; return $values['justData'] ? NewsSection::getTableData( $o ) : NewsSection::drawTable( $o ); }, ], [ eTab::NAME=>'Блоки', eTab::TYPE=>eTabType::TABLE, eTab::CONTENT=>function($values=[]){ $id = $values[self::$ID]; //$link_id = \Site::sectionUrl( 'content/news/'.$id.'/block/' ); $o = [ \ModuleTable::ROW_CLICK => eRowClick::CARD, \Query::SORT=>BlocK::$POS, \Query::WHERE=>new \Where(\Where::_and([ \Where::_operator(Block::$TO,'=',msTo::NEWS), \Where::_operator(Block::$OID,'=',$id), ]) ), \ModuleTable::SORTABLE=>true, \ModuleTable::FORM_INIT_DATA=>[ Block::$TO => msTo::NEWS, Block::$OID => $id, ], \ModuleTable::TABLE_ID => self::$table_name.'_'.Block::$table_name.'_'.$id, \ModuleTable::COLUMN_RENDER => [ Block::$TEMPLATE => [ //\ModuleTable::COLUMN_RENDER_LINK_ID => $link_id, \ModuleTable::COLUMN_RENDER_LINK_CSS_CLASS => 'link', \ModuleTable::COLUMN_RENDER_LINK_MODAL => true, \ModuleTable::COLUMN_RENDER_CARD_CONTROLLER => Block::$controller, \ModuleTable::COLUMN_RENDER_CARD_FORM_METHOD => 'getSettingsForm', //ModuleTable::COLUMN_RENDER_LINK_MODAL => true, ], ] ]; return $values['justData'] ? Block::getTableData( $o ) : Block::drawTable( $o ); }, ], [ eTab::NAME => 'SEO', eTab::TYPE=>eTabType::FORM, eTab::CONTENT => function ($values = []) { $id = $values[self::$ID]; return Seo::getFormTO(msTo::NEWS, $id); }, ], ]; } static function getTitle(){return V::get(Vars::$MODULE_NAME);} static function getSystemLangValues():array{ return Vars::getArray(); } public function _update(\Where $w, array $values) { $values[self::$UPDATED] = time(); return parent::_update($w, $values); } public static function installUniques() { \DB::addUnique(self::$table_name,self::$table_name.'_unique',[self::$BLOG,self::$TEXT_ID]); \DB::addIndex(self::$table_name,self::$BLOG); \DB::addIndex(self::$table_name,self::$VIS); \DB::addIndex(self::$table_name,self::$TEXT_ID); \DB::addIndex(self::$table_name,self::$ACCOUNT); \DB::addIndex(self::$table_name,self::$PROFILE); } public static function getName($v, array $options = []): string { return $v?$v[self::$NAME]:'-'; } public static function getAnnotation($v, array $options = []): string { return $v?$v[self::$ANNOTATION]:''; } public static function getText($v, array $options = []): string { return $v?$v[self::$TEXT]:''; } static function getForm($values = [], $options = []) :array { $isTenderist = $_SERVER['HTTP_HOST']=='tenderist.ru'; return [ self::getCommonFormInputs(), [ Form::VIEW =>Form::INPUT, Form::KEY_VALUE =>self::$BLOG, Form::TYPE =>eInputType::HIDDEN, ], [ Form::VIEW=>Form::ROW, Form::COLS => [ [ Form::VIEW =>Form::INPUT, Form::COL_CLASSES =>'c-1-3', Form::KEY_VALUE =>self::$IMAGE, Form::TYPE =>eInputType::IMAGE, Form::INPUT_OPT => [ Input::PLACEHOLDER => $c = V::get(Vars::$IMAGE), Input::LABEL => $c, Input::SRC => ($c = $values[self::$IMAGE]) ? Image::imageResize(Image::getByID($c)[Image::$URL],600,0,100) : '', ], ], ] ], [ Form::VIEW=>Form::ROW, Form::COLS => [ $isTenderist?null:[ Form::VIEW =>Form::INPUT, Form::COL_CLASSES =>'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-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:'news'.time(), ], ], [ Form::VIEW =>Form::INPUT, Form::COL_CLASSES =>'c-1-6', Form::KEY_VALUE =>self::$BLOG, Form::TYPE =>eInputType::SELECT_SEARCH, Form::INPUT_OPT => [ Input::PLACEHOLDER => $c = V::get(Vars::$BLOG), Input::LABEL => $c, Input::OPTIONS => Blog::getNameList([ \Query::WHERE => new \Where(\Where::_operator(Blog::$ACCOUNT,'=',UID)) ]), ], ], [ Form::VIEW =>Form::INPUT, Form::COL_CLASSES =>'c-1-6', Form::KEY_VALUE =>self::$CREATED, Form::TYPE =>eInputType::DATE_TIME, Form::INPUT_OPT => [ Input::PLACEHOLDER => $c = V::get(Vars::$CREATED), Input::LABEL => $c, Input::VALUE => ($c = $values[self::$CREATED])?$c:time(), ], ], $isTenderist?[ Form::VIEW =>Form::INPUT, Form::COL_CLASSES =>'c-100', Form::KEY_VALUE =>self::$NAME, Form::TYPE =>eInputType::TEXTAREA, Form::INPUT_OPT => [ Input::PLACEHOLDER => $c = V::get(Vars::$NAME), Input::LABEL => $c, ], ]:null, ] ], [ Form::VIEW=>Form::ROW, Form::COLS => [ [ Form::VIEW =>Form::INPUT, Form::COL_CLASSES =>'c-1-3', Form::KEY_VALUE =>self::$VIS, Form::TYPE =>eInputType::SWITCH_IOS, 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, ], ], ] ], [ Form::VIEW=>Form::ROW, Form::COLS => [ [ Form::VIEW =>Form::INPUT, Form::COL_CLASSES =>'c', Form::KEY_VALUE =>self::$ANNOTATION, Form::TYPE =>eInputType::TEXTAREA, Form::INPUT_OPT => [ Input::PLACEHOLDER => $c = V::get(Vars::$ANNOTATION), 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::$IMAGE, C::TYPE => eColumnType::INT, C::TH => V::get(Vars::$IMAGE), C::FUNC_VALUE_DATA => function($v){ $img = Image::getByID($v[self::$IMAGE]); return Image::imageResize($img[Image::$URL],50,50,100,['crop'=>'center']); } ]), 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::$ANNOTATION, C::TYPE => eColumnType::TEXT, C::TH => V::get(Vars::$ANNOTATION), C::HIDDEN => true, ]), new C([ C::VAR_NAME => &self::$BLOG, C::TYPE => eColumnType::INT, C::HIDDEN => true, ]), new C([ C::VAR_NAME => &self::$VIS, C::TYPE => eColumnType::TINYINT, 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::$PROFILE, C::TYPE => eColumnType::INT, C::LENGTH => 11, C::TH => V::get(Vars::$PROFILE), C::DEFAULT => intval(PID), 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::FUNC_VALUE_DATA => 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 News();