getName(); $select[] = 'bg.'.$name.' as bg_'.$name; $select[] = 'ava.'.$name.' as ava_'.$name; } if(!$options[\Query::SELECT]) $options[\Query::SELECT] = implode(",",$select); return parent::_select($options, $collectToAssocArray); // TODO: Change the autogenerated stub } static function getVisibleReviewsById($id,$count = 0, $page = 0,$isAssoc = true){ $id = intval($id); return Review::select([ \Query::WHERE => new \Where(\Where::_and([ \Where::_operator(Review::$TO,'=',msTo::ACADEMY_COURSE), \Where::_operator(Review::$OID,'=',$id), \Where::_operator(Review::$VIS,'=',1), ])), \Query::SORT => [self::$ID=>'DESC'], \Query::COUNT => $count, \Query::OFFSET => $count*$page, ],$isAssoc); } static function getMyAllTeachCourse(){ return self::select([ \Query::WHERE => new \Where(\Where::_operator(self::$PROFILE,'=',PID)), ]); } static function canIEdit($course){ return $course[Course::$PROFILE]==PID; } static function getBgImg($v,$width=600,$height=0,$o=100){ if($c = $v['bg_'.Image::$URL]) { return Image::imageResize($c,$width,$height,$o); } else return ''; } static function getAvaImg($v,$width=600,$height=0,$o=100){ if($c = $v['ava_'.Image::$URL]) { return Image::imageResize($c,$width,$height,$o); } else return ''; } static function getDescr($C){ return ($c = $C[self::$DESCR])?$c:'

Введите описание

'; } 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); } static function getTeachersCount($course_id){ $res = 0; $course_id = intval($course_id); if(!$course_id) return $res; $res = CourseTeacher::select([ \Query::SELECT => 'COUNT('.CourseTeacher::$ID.') as cc', \Query::WHERE => new \Where(\Where::_operator(CourseTeacher::$COURSE,'=',$course_id)), ],false); $res = \DB::fetch($res); return intval($res['cc']); } static function getTeachers($course_id){ $res = []; $course_id = intval($course_id); if(!$course_id) return $res; $res = CourseTeacher::select([ \Query::WHERE => new \Where(\Where::_operator(CourseTeacher::$COURSE,'=',$course_id)), \Query::SORT => [CourseTeacher::$POS], ],true); return $res; } static function getLessons($course_id){ $res = ['sections'=>[],'lessons'=>[]]; $course_id = intval($course_id); if(!$course_id) return $res; $r = Section::select($query = [ \Query::WHERE => new \Where( \Where::_operator(Section::$COURSE,'=',$course_id) ), \Query::SORT => [Section::$POS], ],false); while($l = \DB::fetch($r)){ $section_id = $l[Section::$ID]; $res['sections'][$section_id] = $l; } $r = Lesson::select($query = [ \Query::SELECT => implode(",",[Lesson::$ID,Lesson::$NAME,Lesson::$POS,Lesson::$SETTINGS,Lesson::$COURSE,Lesson::$SECTION]), \Query::WHERE => new \Where( \Where::_operator(Lesson::$COURSE,'=',$course_id) ), \Query::SORT => [Lesson::$POS], ],false); // Если уроков нет, то создадим первый if(!\DB::numRows($r)){ if(!$res['sections']) { $section = Section::insert($c = [ Section::$NAME => 'Первый раздел', Section::$COURSE => $course_id, Section::$POS => 1, ]); $section_id = $section->id; $res['sections'][$section_id] = $c; } else { $section_id = array_keys($res['sections'])[0]; } Lesson::insert([ Lesson::$NAME => 'Первый урок', Lesson::$COURSE => $course_id, Lesson::$SECTION => $section_id, Lesson::$POS => 1, ]); $r = Lesson::select($query); } while($l = \DB::fetch($r)){ $section_id = $l[Lesson::$SECTION]; $lesson_id = $l[Lesson::$ID]; $res['sections'][$section_id]['lessons'][] = $lesson_id; $res['lessons'][$lesson_id] = $l; } return $res; } static function getForm($values = [], $options = []) :array { $academies = Academy::getNameList([ \Query::WHERE => new \Where(\Where::_operator(Academy::$ACCOUNT,'=',UID)) ]); return [ self::getCommonFormInputs(), [ Form::VIEW=>Form::ROW, Form::COLS => [ [ Form::VIEW => Form::INPUT, Form::COL_CLASSES => 'c', Form::KEY_VALUE => self::$AVA, Form::TYPE => eInputType::IMAGE, Form::INPUT_OPT => [ Input::PLACEHOLDER => $c = V::get(Vars::$AVA), Input::LABEL => $c, Input::SRC => ($c = $values[self::$AVA]) ? Image::imageResize(Image::getByID($c)[Image::$URL],600,0,100) : '', ], ], ] ], [ Form::VIEW=>Form::ROW, Form::COLS => [ [ 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 : 'course'.time() ], ], [ Form::VIEW =>Form::INPUT, Form::COL_CLASSES =>'c-1-3', Form::KEY_VALUE =>self::$ACADEMY, Form::TYPE =>eInputType::SELECT_SEARCH, Form::INPUT_OPT => [ Input::PLACEHOLDER => $c = V::get(Vars::$ACADEMY), Input::LABEL => $c, Input::OPTIONS => $academies, ], ], ] ], [ 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 => ' ', Input::OPTIONS => $academies, Input::CHECKED => boolval($values[self::$VIS]), Input::VALUE=>1, ], ], [ Form::VIEW =>Form::INPUT, Form::COL_CLASSES =>'c-1-3', Form::KEY_VALUE =>self::$BEGIN, Form::TYPE =>eInputType::DATE, Form::INPUT_OPT => [ Input::PLACEHOLDER => $c = V::get(Vars::$BEGIN), Input::LABEL => $c, ], ], [ Form::VIEW =>Form::INPUT, Form::COL_CLASSES =>'c-1-3', Form::KEY_VALUE =>self::$END, Form::TYPE =>eInputType::DATE, Form::INPUT_OPT => [ Input::PLACEHOLDER => $c = V::get(Vars::$END), Input::LABEL => $c, ], ], ] ], [ Form::VIEW=>Form::ROW, Form::COLS => [ [ Form::VIEW =>Form::INPUT, Form::COL_CLASSES =>'c-100', Form::KEY_VALUE =>self::$ANNOTATION, Form::TYPE =>eInputType::TEXTAREA, Form::INPUT_OPT => [ Input::PLACEHOLDER => $c = V::get(Vars::$ANNOTATION), Input::LABEL => $c, ], ], ] ], [ Form::VIEW=>Form::ROW, Form::COLS => [ [ Form::VIEW =>Form::INPUT, Form::COL_CLASSES =>'c-100', Form::KEY_VALUE =>self::$DESCR, Form::TYPE =>eInputType::TEXTAREA, Form::INPUT_OPT => [ Input::PLACEHOLDER => $c = V::get(Vars::$DESCRIPTION), 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::$BG, C::TYPE => eColumnType::INT, C::DEFAULT => 0, C::HIDDEN => true, ]), new C([ C::VAR_NAME => &self::$AVA, C::TYPE => eColumnType::INT, C::DEFAULT => 0, C::HIDDEN => true, ]), 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::$DESCR, C::TYPE => eColumnType::TEXT, //C::LENGTH => 1023, //C::TH => V::get(Vars::$NAME), C::HIDDEN => true, ]), new C([ C::VAR_NAME => &self::$BEGIN, C::TYPE => eColumnType::DATE, //C::LENGTH => 1023, C::TH => V::get(Vars::$BEGIN), c::FUNC_VALUE_DATA => function($v){return self::formatDateString($v[self::$BEGIN]);}, ]), new C([ C::VAR_NAME => &self::$END, C::TYPE => eColumnType::DATE, //C::LENGTH => 1023, C::TH => V::get(Vars::$END), c::FUNC_VALUE_DATA => function($v){return self::formatDateString($v[self::$END]);}, ]), new C([ C::VAR_NAME => &self::$TEXT_ID, C::TYPE => eColumnType::VARCHAR, C::LENGTH => 63, C::TH => V::get(Vars::$TEXT_ID), ]), new C([ C::VAR_NAME => &self::$PROFILE, C::TYPE => eColumnType::INT, C::DEFAULT => PID, C::HIDDEN => true, //C::TH => V::get(Vars::$NAME), ]), new C([ C::VAR_NAME => &self::$ACADEMY, C::TYPE => eColumnType::INT, C::DEFAULT => 0, C::HIDDEN => true, //C::TH => V::get(Vars::$NAME), ]), new C([ C::VAR_NAME => &self::$ANNOTATION, C::TYPE => eColumnType::TEXT, C::DEFAULT => '', C::HIDDEN => true, //C::TH => V::get(Vars::$NAME), ]), new C([ C::VAR_NAME => &self::$TYPE, C::TYPE => eColumnType::TINYINT, C::DEFAULT => eAcademyCourseType::FREE, C::LENGTH => 1, C::HIDDEN => true, //C::TH => V::get(Vars::$NAME), ]), new C([ C::VAR_NAME => &self::$PROJECT, C::TYPE => eColumnType::INT, C::DEFAULT => 0, C::HIDDEN => true, //C::TH => V::get(Vars::$NAME), ]), 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_DATA => function($v){ return MS::getBoolValText($v[self::$VIS]); } ]), new C([ C::VAR_NAME => &self::$POS, C::TYPE => eColumnType::INT, C::DEFAULT => time(), //C::TH => V::get(Vars::$NAME), 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 Course(); ///