コード例 #1
0
 public function loadModel($id)
 {
     if (($model = Day::model()->findByPk($id)) === null) {
         throw new CHttpException(404, 'Страница не найдена');
     }
     return $model;
 }
コード例 #2
0
 public function actionDarsJadvali()
 {
     $keys = array_keys($_GET);
     $group_id = (int) $keys[0];
     $days = Day::model()->findAll();
     $weeks = Day::forMegalka();
     $toq = $weeks[0];
     $juft = $weeks[1];
     $dgsts = [];
     foreach ($days as $day) {
         $dgsts[$day->id] = Dgst::model()->findAllByAttributes(['group_id' => $group_id, 'day_id' => $day->id]);
     }
     $this->renderPartial('_dars_jadvali', ['days' => $days, 'dgsts' => $dgsts, 'toq' => $toq, 'juft' => $juft]);
 }
コード例 #3
0
 public function actionShow($alias)
 {
     if (Yii::app()->user->isAuthenticated() === false) {
         $this->controller->redirect(Yii::app()->user->loginUrl);
     }
     if (($user = Yii::app()->user->getProfile()) === null) {
         Yii::app()->user->setFlash(yupe\widgets\YFlashMessages::ERROR_MESSAGE, Yii::t('UserModule.user', 'User not found.'));
         Yii::app()->user->logout();
         $this->controller->redirect((array) '/user/account/login');
     }
     $course = Course::model()->published()->find('t.alias = :alias', array(':alias' => $alias));
     if (!$course) {
         throw new CHttpException(404);
     }
     // ToDO
     // Пакет
     $package = Package::model()->findByPK(1);
     // День
     $dayId = Yii::app()->getRequest()->getParam('day', null);
     if ($dayId) {
         $day = Day::model()->published()->package($package->id)->findByPK((int) $dayId);
     } else {
         $day = Day::model()->published()->package($package->id)->find(array('order' => 't.number ASC'));
     }
     if (!$day) {
         throw new CHttpException(404);
     }
     // Страница
     $pageId = Yii::app()->getRequest()->getParam('page', null);
     if ($pageId) {
         $page = Page::model()->published()->day($day->id)->findByPK((int) $pageId);
     } else {
         $page = Page::model()->published()->day($day->id)->find(array('order' => 't.number ASC'));
     }
     if (!$page) {
         throw new CHttpException(404);
     }
     // Вывод в шаблон
     $this->render('show', array('course' => $course, 'package' => $package, 'day' => $day, 'page' => $page));
 }
コード例 #4
0
 /**
  * Returns the data model based on the primary key given in the GET variable.
  * If the data model is not found, an HTTP exception will be raised.
  * @param integer $id the ID of the model to be loaded
  * @return Day the loaded model
  * @throws CHttpException
  */
 public function loadModel($id)
 {
     $model = Day::model()->findByPk($id);
     if ($model === null) {
         throw new CHttpException(404, 'The requested page does not exist.');
     }
     return $model;
 }
コード例 #5
0
 public function actionShow($courseAlias, $typeAlias)
 {
     // Авторизован ли пользователь
     if (Yii::app()->user->isAuthenticated() === false) {
         $this->redirect(Yii::app()->user->loginUrl);
     }
     if (($user = Yii::app()->user->getProfile()) === null) {
         Yii::app()->user->setFlash(yupe\widgets\YFlashMessages::ERROR_MESSAGE, Yii::t('UserModule.user', 'User not found.'));
         Yii::app()->user->logout();
         $this->redirect((array) '/user/account/login');
     }
     // Вид курса
     $courseType = CourseType::model()->published()->with('course')->find('course.alias = :courseAlias AND t.alias = :typeAlias', array(':courseAlias' => $courseAlias, ':typeAlias' => $typeAlias));
     if (!$courseType) {
         throw new CHttpException(404);
     }
     if (Yii::app()->user->isSuperUser()) {
         // Админ может просматривать любой тип курса
         if ($_GET['adminPackageId'] != '') {
             $adminPackageId = (int) Yii::app()->getRequest()->getParam('adminPackageId');
             if ($adminPackageId > 0) {
                 Yii::app()->user->setState('adminPackageId', $adminPackageId);
             } else {
                 Yii::app()->user->setState('adminPackageId', null);
             }
         }
         // Админ может просматривать курс с данными  другого пользователя
         if ($_GET['adminUserId'] != '') {
             $adminUserId = (int) Yii::app()->getRequest()->getParam('adminUserId');
             if ($adminUserId > 0) {
                 Yii::app()->user->setState('adminUserId', $adminUserId);
             } else {
                 Yii::app()->user->setState('adminUserId', null);
             }
         }
         // Подмена данных пользователя для администратора
         if (Yii::app()->user->getState('adminUserId') !== null) {
             $viewedUser = User::model()->findByPK((int) Yii::app()->user->getState('adminUserId'));
             if ($viewedUser) {
                 $user->code = $viewedUser->code;
                 $user->profile->setAttributes(array('name' => $viewedUser->profile->name, 'gender' => $viewedUser->profile->gender, 'birth_date' => $viewedUser->profile->birth_date, 'birth_time' => $viewedUser->profile->birth_time, 'city_id' => $viewedUser->profile->city_id));
                 $user->profile->city = $viewedUser->profile->city;
             }
         }
     }
     // Пакет
     if (Yii::app()->user->isSuperUser() && Yii::app()->user->getState('adminPackageId') !== null) {
         // Админ может просмотреть любой пакет
         $packageId = (int) Yii::app()->user->getState('adminPackageId');
         $this->package = Package::model()->published()->findByPK($packageId);
     } else {
         // Остальным подбираем пакет в зависимости от указанных данных
         $this->package = Package::model()->published()->find('t.type_id = :type_id AND t.gender = :gender AND t.notime = :notime', array(':type_id' => $courseType->id, ':gender' => $user->profile->gender, ':notime' => $user->profile->birth_time === null));
     }
     if (!$this->package) {
         throw new CHttpException(404);
     }
     // День
     $dayNumber = (int) Yii::app()->getRequest()->getParam('day', 1);
     $this->day = $day = Day::model()->published()->package($this->package->id)->findByNumber($dayNumber);
     if (!$day) {
         throw new CHttpException(404);
     }
     // Страница
     $pageNumber = (int) Yii::app()->getRequest()->getParam('page', 1);
     $page = Page::model()->published()->day($day->id)->with(array('blocks' => array('scopes' => 'published', 'order' => 'blocks.sort ASC')))->findByNumber($pageNumber);
     if (!$page) {
         throw new CHttpException(404);
     }
     // Определяем, имеет ли пользователь доступ к выбранной странице курса
     $this->_checkPermissions($user, $courseType, $dayNumber, $pageNumber);
     // Запоминаем последнюю прочитанную страницу для пользователя
     LastReadPage::model()->fixLastPage($user, $courseType, $page);
     // Определяем предыдущую и следующую страницы
     $prevPage = $page->getPrevPage();
     $nextPage = $page->getNextPage();
     // Выделяем интересную мысль, если она указана
     $quoteText = '';
     $highlightId = Yii::app()->getRequest()->getParam('highlight', null);
     if (!empty($highlightId)) {
         $quote = Quote::model()->findByPk($highlightId);
         $quoteText = $quote ? $quote->content : '';
     }
     // Вывод в шаблон
     $this->render('show', array('package' => $this->package, 'day' => $day, 'page' => $page, 'nextPage' => $nextPage, 'prevPage' => $prevPage, 'quoteText' => $quoteText));
 }
コード例 #6
0
ファイル: Day.php プロジェクト: DostonAkhmedov/Dars_jadvali
 public static function days()
 {
     $model = Day::model()->findAll();
     return CHtml::listData($model, 'id', 'name');
 }