public static function getTeacherModules($teacher, $modules){ $result = []; for($i = 0; $i < count($modules); $i++){ if ($id = TeacherModule::model()->exists('idTeacher=:teacher AND idModule=:module', array( ':teacher' => $teacher, ':module' => $modules[$i], ))){ array_push($result, $modules[$i]); } } return $result; }
public function actionIndex($id){ $this->initialize($id); $editMode = $this->checkEditMode($id, Yii::app()->user->getId()); $lecture = Lecture::model()->findByPk($id); $criteria = new CDbCriteria(); $criteria->addCondition('id_lecture='.$id); $dataProvider = new CActiveDataProvider('LectureElement'); $dataProvider->criteria = $criteria; $criteria->order = 'block_order ASC'; $dataProvider->setPagination(array( 'pageSize' => '200', ) ); $owners = []; $criteria1 = new CDbCriteria(); $criteria1->alias='teacher_module'; $criteria1->select = 'idTeacher'; $criteria1->addCondition('idModule='.$lecture->idModule); $criteria1->toArray(); $temp = TeacherModule::model()->findAll($criteria1); //info about owners for($i = 0; $i < count($temp);$i++){ array_push($owners, $temp[$i]->idTeacher); } $teachers = Teacher::model()->findAllByPk($owners); $countBlocks = LectureElement::model()->count('id_lecture = :id', array(':id' => $id)); $this->render('index', array( 'dataProvider' => $dataProvider, 'lecture' => $lecture, 'editMode' => $editMode, 'countBlocks' => $countBlocks, 'teachers' => $teachers, )); }
public function actionNewTeacherPermission(){ $teacher = Yii::app()->request->getPost('user'); $module = Yii::app()->request->getPost('module'); TeacherModule::addTeacherAccess($teacher, $module); //$this->actionIndex(); $this->redirect(Yii::app()->request->urlReferrer); }
/** * Lists all models. */ public function actionIndex($idModule) { $model = Module::model()->findByPk($idModule); $owners = []; $criteria1 = new CDbCriteria(); $criteria1->select = 'idTeacher'; $criteria1->addCondition('idModule='.$idModule); $criteria1->toArray(); $temp = TeacherModule::model()->findAll($criteria1); //info about owners for($i = 0; $i < count($temp);$i++){ array_push($owners, $temp[$i]->idTeacher); } $teachers = Teacher::model()->findAllByPk($owners); $criteria=new CDbCriteria(); $criteria->addCondition('idModule>0'); $criteria->addCondition('idModule='.$idModule); $dataProvider = new CActiveDataProvider('Lecture', array( 'criteria' =>$criteria, 'pagination'=>false, 'sort'=>array( 'defaultOrder'=>array( 'order'=>CSort::SORT_ASC, ) ) )); $editMode = 0; //init editMode flag //find id teacher related to current user id if (Yii::app()->user->isGuest){ //if user guest $editMode = 0; } else { if (Teacher::model()->exists('user_id=:user_id', array(':user_id' => Yii::app()->user->getId()))) { if ($teacherId = Teacher::model()->findByAttributes(array('user_id' => Yii::app()->user->getId()))->teacher_id) { //check edit mode if (TeacherModule::model()->exists('idTeacher=:teacher AND idModule=:module', array(':teacher' => $teacherId, ':module' => $idModule))){ $editMode = 1; } else { $editMode = 0; } } else{ $editMode = 0; } } else { $editMode = 0; } } $lecturesTitles = Lecture::model()->getLecturesTitles($idModule); $this->render('index', array( 'post' => $model, 'teachers' => $teachers, 'editMode' => $editMode, 'lecturesTitles' => $lecturesTitles, 'dataProvider' => $dataProvider, )); }
public static function isTeacherCanEdit($user, $modules){ $criteria = new CDbCriteria(); $criteria->addInCondition('idModule', $modules); $criteria->addCondition('idTeacher='.$user); return TeacherModule::model()->exists($criteria); }
public function actionUnableModule(){ $idModule = $_GET['idModule']; $idCourse =Module::model()->findByPk($idModule)->course; $order = Module::model()->findByPk($idModule)->order; //Module::model()->deleteByPk($idModule); TeacherModule::model()->deleteAllByAttributes(array('idModule' => $idModule)); Module::model()->updateByPk($idModule, array('order' => 0)); Module::model()->updateByPk($idModule, array('course' => 0)); $count = Course::model()->findByPk($idCourse)->modules_count; for ($i = $order + 1; $i <= $count; $i++){ $id = Module::model()->findByAttributes(array('course'=>$idCourse,'order'=>$i))->module_ID; Module::model()->updateByPk($id, array('order' => $i-1)); } Course::model()->updateByPk($idCourse, array('modules_count' => ($count - 1))); // if AJAX request, we should not redirect the browser if(!isset($_GET['ajax'])) $this->redirect(Yii::app()->request->urlReferrer); }
public static function addTeacherAccess($teacher, $module){ $model = new TeacherModule(); $model->idTeacher = $teacher; $model->idModule = $module; if ($model->validate()){ $model->save(); } }