public function loadModel($id) { if (($model = Day::model()->findByPk($id)) === null) { throw new CHttpException(404, 'Страница не найдена'); } return $model; }
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]); }
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)); }
/** * 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; }
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)); }
public static function days() { $model = Day::model()->findAll(); return CHtml::listData($model, 'id', 'name'); }