Пример #1
0
 /**
  * Displays a particular model.
  * @param integer $id the ID of the model to be displayed
  */
 public function actionView($id)
 {
     $course = Course::model()->with('user')->findByPk($id);
     if ($course === null) {
         throw new CHttpException(404, 'The requested page does not exist.');
     }
     //		$member = $course->findMember(array('userId'=>Yii::app()->user->id));
     if (!Yii::app()->user->isGuest) {
         $member = CourseMember::model()->findByAttributes(array('courseId' => $course->id, 'userId' => Yii::app()->user->id));
     }
     // 公告数据提供者
     $announcementDataProvider = new CActiveDataProvider('Announcement', array('criteria' => array('condition' => "courseId=" . intval($id), 'order' => 'upTime DESC'), 'pagination' => array('pageSize' => '2')));
     //		$member = $course->findMember(array('userId'=>Yii::app()->user->id));
     if (!Yii::app()->user->isGuest) {
         $member = CourseMember::model()->findByAttributes(array('courseId' => $course->id, 'userId' => Yii::app()->user->id));
     } else {
         $member = new CourseMember();
     }
     $studentDataProvider = new CActiveDataProvider('CourseMember', array('criteria' => array('condition' => 'find_in_set("student",roles) and courseId=' . $course->id, 'order' => 'startTime desc'), 'pagination' => array('pageSize' => 14)));
     $teacherDataProvider = new CActiveDataProvider('CourseMember', array('criteria' => array('condition' => 'find_in_set("teacher",roles) and courseId=' . $course->id)));
     //如果尚未处于发布状态
     if ($course->status != Course::STATUS_OK && $member && $member->inRoles(array('superAdmin', 'admin'))) {
         $this->redirect(array('manage/index/setBasic', 'id' => $course->id));
         Yii::app()->end();
     }
     $criteria = new CDbCriteria();
     $criteria->condition = "courseId=:courseId and status=:status";
     $criteria->params = array(':courseId' => $course->id, ':status' => Course::STATUS_OK);
     $criteria->order = "weight asc";
     $lessons = Lesson::model()->findAll($criteria);
     $criteria->condition = "courseId=:courseId";
     $criteria->params = array(':courseId' => $course->id);
     $chapters = Chapter::model()->findAll($criteria);
     $lessonsAndChapters = array_merge($lessons, $chapters);
     usort($lessonsAndChapters, array(new LessonSorter(), 'sortByWeight'));
     //作为已购买用户
     if (Yii::app()->user->checkAccess('courseOwner', array('course' => $course)) || $member && $member->inRoles(array('superAdmin', 'admin', 'member', 'teacher', 'student'))) {
         $this->render('view', array('course' => $course, 'member' => $member, 'lessonDataProvider' => $course->getLessonDataProvider(array('pagination' => array('pageSize' => 15))), 'studentDataProvider' => $studentDataProvider, 'teacherDataProvider' => $teacherDataProvider, 'rateDataProvider' => $course->getRateDataProvider(), 'announcementDataProvider' => $announcementDataProvider, 'lessonsAndChapters' => $lessonsAndChapters));
         //作为未购买用户
     } else {
         $this->render('nopaying_user_view', array('course' => $course, 'lessonDataProvider' => $course->getLessonDataProvider(), 'studentDataProvider' => $studentDataProvider, 'teacherDataProvider' => $teacherDataProvider, 'rateDataProvider' => $course->getRateDataProvider(), 'lessonsAndChapters' => $lessonsAndChapters));
     }
     /*
      * modified by lsy 20130807
      */
 }
Пример #2
0
 /**
  * 课程评价页
  */
 public function actionIndex($courseId)
 {
     $model = $this->loadCourse($courseId);
     // 教师数据提供者
     $teacherDataProvider = new CActiveDataProvider('CourseMember', array('criteria' => array('condition' => 'find_in_set("teacher",roles) and courseId=' . $model->id)));
     // 回复光荣榜数据提供者
     $memberDataProvider = new CActiveDataProvider('CourseMember', array('criteria' => array('condition' => 'commentNum>0', 'order' => 'commentNum DESC'), 'pagination' => array('pageSize' => 5)));
     // 课程讨论数据提供者
     $postDataProvider = new CActiveDataProvider('CoursePost', array('criteria' => array('condition' => "courseId={$model->id}", 'order' => 'isTop DESC, addTime DESC')));
     // CourseMember 对象
     if (!Yii::app()->user->isGuest) {
         $courseMember = CourseMember::model()->findByAttributes(array('courseId' => $model->id, 'userId' => Yii::app()->user->id));
     } else {
         $courseMember = new CourseMember();
     }
     // 用户是否购买课程,使用不同的header视图
     if (Yii::app()->user->checkAccess('courseOwner', array('course' => $model)) || $courseMember && $courseMember->inRoles(array('superAdmin', 'admin', 'member', 'teacher', 'student'))) {
         $this->viewMenuName = '/index/_view_menu';
         $this->viewHeaderName = '/index/_view_header';
     }
     $this->render('index', array('model' => $model, 'teacherDataProvider' => $teacherDataProvider, 'memberDataProvider' => $memberDataProvider, 'postDataProvider' => $postDataProvider, 'courseMember' => $courseMember));
 }
Пример #3
0
 /**
  * 课程主页 课程列表
  */
 public function actionView($id)
 {
     $model = $this->loadModel($id);
     // 教师数据提供者
     $teacherDataProvider = new CActiveDataProvider('CourseMember', array('criteria' => array('condition' => 'find_in_set("teacher",roles) and courseId=' . $model->id)));
     // 学生数据提供者
     $studentDataProvider = new CActiveDataProvider('CourseMember', array('criteria' => array('condition' => 'find_in_set("student",roles) and courseId=' . $model->id, 'order' => 'startTime desc'), 'pagination' => array('pageSize' => 9)));
     // 课时数据提供者
     $lessonDataProvider = $model->getLessonDataProvider();
     // CourseMember 对象
     if (!Yii::app()->user->isGuest) {
         $courseMember = CourseMember::model()->findByAttributes(array('courseId' => $model->id, 'userId' => Yii::app()->user->id));
     } else {
         $courseMember = new CourseMember();
     }
     // 用户是否购买课程,使用不同的header视图
     if (Yii::app()->user->checkAccess('courseOwner', array('course' => $model)) || $courseMember && $courseMember->inRoles(array('superAdmin', 'admin', 'member', 'teacher', 'student'))) {
         $this->viewMenuName = '_view_menu';
         $this->viewHeaderName = '_view_header';
     }
     $this->render('view', array('model' => $model, 'courseMember' => $courseMember, 'teacherDataProvider' => $teacherDataProvider, 'studentDataProvider' => $studentDataProvider, 'lessonDataProvider' => $lessonDataProvider, 'courseMember' => $courseMember));
 }