public function loadModel($id)
 {
     if (($model = CourseType::model()->findByPk($id)) === null) {
         throw new CHttpException(404, 'Страница не найдена');
     }
     return $model;
 }
 public function run($token)
 {
     $module = Yii::app()->getModule('user');
     // Пытаемся найти пользователя по токену,
     // в противном случае - ошибка:
     if (Yii::app()->userManager->activateUser($token)) {
         // Сообщаем пользователю:
         Yii::app()->user->setFlash(yupe\widgets\YFlashMessages::SUCCESS_MESSAGE, Yii::t('UserModule.user', 'You activate account successfully. Now you can login!'));
         $redirect = array($module->accountActivationSuccess);
         $programId = Yii::app()->request->getParam('programId', null);
         $subscriptionType = Yii::app()->request->getParam('subscriptionType', null);
         // Переадресация на страницу подписки
         if (!empty($programId) && !empty($subscriptionType)) {
             Yii::import("application.modules.classroom.models.*");
             $programm = CourseType::model()->published()->findByPK((int) $programId);
             if ($programm) {
                 $redirect = $programm->getSubscriptionUrl($subscriptionType);
             }
         }
         // Выполняем переадресацию на соответствующую страницу:
         $this->controller->redirect($redirect);
     }
     // Сообщаем об ошибке:
     Yii::app()->user->setFlash(yupe\widgets\YFlashMessages::ERROR_MESSAGE, Yii::t('UserModule.user', 'There was a problem with the activation of the account. Please refer to the site\'s administration.'));
     // Переадресовываем на соответствующую ошибку:
     $this->controller->redirect(array($module->accountActivationFailure));
 }
 public function run()
 {
     if (Yii::app()->user->isAuthenticated()) {
         $this->controller->redirect(Yii::app()->user->returnUrl);
     }
     /**
      * Если было совершено больше 3х попыток входа
      * в систему, используем сценарий с капчей:
      **/
     $badLoginCount = Yii::app()->authenticationManager->getBadLoginCount(Yii::app()->user);
     //@TODO 3 вынести в настройки модуля
     $scenario = $badLoginCount > 3 ? 'loginLimit' : '';
     $form = new LoginForm('login');
     $module = Yii::app()->getModule('user');
     if (Yii::app()->getRequest()->getIsPostRequest() && !empty($_POST['LoginForm'])) {
         if (!empty($_POST['programId'])) {
             Yii::app()->user->setState('programId', (int) $_POST['programId']);
         }
         if (!empty($_POST['subscriptionType'])) {
             Yii::app()->user->setState('subscriptionType', $_POST['subscriptionType']);
         }
         $form->setAttributes(Yii::app()->request->getPost('LoginForm'));
         $form->remember_me = 1;
         if ($form->validate() && Yii::app()->authenticationManager->login($form, Yii::app()->user, Yii::app()->request)) {
             Yii::app()->user->setFlash(yupe\widgets\YFlashMessages::SUCCESS_MESSAGE, 'Вы успешно авторизованы!');
             if (Yii::app()->user->isSuperUser() && $module->loginAdminSuccess) {
                 $redirect = array($module->loginAdminSuccess);
             } else {
                 $redirect = empty($module->loginSuccess) ? Yii::app()->baseUrl : $module->loginSuccess;
             }
             Yii::app()->authenticationManager->setBadLoginCount(Yii::app()->user, 0);
             // Переадресация на страницу подписки
             if (Yii::app()->user->getState('programId') !== null && Yii::app()->user->getState('subscriptionType') !== null) {
                 Yii::import("application.modules.classroom.models.*");
                 $programm = CourseType::model()->published()->findByPK((int) Yii::app()->user->getState('programId'));
                 $redirect = $programm->getSubscriptionUrl(Yii::app()->user->getState('subscriptionType'));
                 Yii::app()->user->setState('programId', null);
                 Yii::app()->user->setState('subscriptionType', null);
             }
             if (Yii::app()->getRequest()->getIsAjaxRequest()) {
                 Yii::app()->ajax->success($redirect);
             } else {
                 $this->controller->redirect($redirect);
             }
         } else {
             $form->addError('hash', 'Вы ввели неправильный E-mail или Пароль');
             Yii::app()->authenticationManager->setBadLoginCount(Yii::app()->user, $badLoginCount + 1);
             if (Yii::app()->getRequest()->getIsAjaxRequest()) {
                 $errors = array();
                 foreach ($form->getErrors() as $error) {
                     $errors[] = $error[0];
                 }
                 Yii::app()->ajax->failure(implode('<br />', $errors));
             }
         }
     }
     $this->controller->render($this->id, array('model' => $form));
 }
 public function run()
 {
     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');
     }
     // Определяем программу, для которой необходимо загрузить интересные мысли
     $programId = (int) Yii::app()->request->getParam('programId');
     $program = CourseType::model()->published()->findByPk($programId);
     // Определяем, подписан ли данный пользователь на эту программу
     if (!$program || !Subscription::model()->isUserSubscribed($user, $program)) {
         throw new CHttpException(404);
     }
     //$quotes = Quote::model()->user($user->id)->program($program->id)->findAll();
     $dataProvider = new CActiveDataProvider(Quote::model()->user($user->id)->program($program->id)->with('user', 'courseType', 'block', 'block.entity', 'block.entity.day'), array('pagination' => array('pageVar' => 'page', 'pageSize' => 10), 'sort' => array('defaultOrder' => 't.id ASC')));
     $this->controller->render('interest', array('program' => $program, 'dataProvider' => $dataProvider));
 }
<?php 
$columns = 6 + $marks + count($evaluator_instance->getExaminationNumbers());
?>

<?php 
if (count($course_subject_students)) {
    ?>
  <table id="marks-table">

    <tr>
      <th colspan="<?php 
    echo $columns;
    ?>
">
        <?php 
    echo __(CourseType::getInstance('CourseType')->getStringFor($course_type));
    ?>
      </th>
    <tr>

    <tr>
      <th id="subject"><?php 
    echo __("Subject");
    ?>
</th>
      <?php 
    for ($i = 1; $i <= $marks; $i++) {
        ?>
        <th><?php 
        echo __(SchoolBehaviourFactory::getInstance()->getMarkTitle($i, $course_type), array('%number%' => $i));
        ?>
 public function actionCart($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()->findByCourseAndType($courseAlias, $typeAlias);
     if (!$courseType) {
         throw new CHttpException(404);
     }
     // Подписка
     $criteria = new CDbCriteria();
     $criteria->compare('t.type', Subscription::TYPE_FULL);
     $criteria->compare('t.status', Subscription::STATUS_INACTIVE);
     $criteria->compare('t.user_id', $user->id);
     $criteria->compare('t.course_type_id', $courseType->id);
     $subscription = Subscription::model()->with(array('user', 'courseType', 'coupon'))->find($criteria);
     if (!$subscription) {
         throw new CHttpException(404);
     }
     // Если введен 100%-й купон
     if (!empty($subscription->coupon_id) && $subscription->total_cost == 0) {
         // Вызываем метод, обрабатывающий оплату
         $subscription->pay();
         $this->redirect(array('/user/account/index'));
     } elseif (empty($subscription->coupon_id)) {
         $subscription->total_cost = $courseType->price;
         $subscription->update(array('total_cost'));
     }
     // Способы оплаты
     $dictionaryGroup = DictionaryGroup::model()->findByCode('payment-methods');
     $paymentMethods = $dictionaryGroup != null ? $dictionaryGroup->getData() : array();
     // Робокасса
     $paymentSystem = Yii::app()->paymentManager->getPaymentSystemObject('robokassa');
     // Вывод в шаблон
     $this->render('cart', array('subscription' => $subscription, 'courseType' => $courseType, 'paymentMethods' => $paymentMethods, 'paymentSystem' => $paymentSystem));
 }
 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 function findByCourseAndType($courseAlias, $typeAlias)
 {
     return CourseType::model()->published()->with('course')->find('course.alias = :courseAlias AND t.alias = :typeAlias', array(':courseAlias' => $courseAlias, ':typeAlias' => $typeAlias));
 }
Exemple #9
0
<?php

$this->widget('yupe\\widgets\\OGridView', array('id' => 'package-grid', 'type' => 'striped bordered', 'dataProvider' => $model->search(), 'filter' => $model, 'template' => "<div class='info'>{summary}</div>\n{items}\n", 'columns' => array(array('name' => 'id', 'htmlOptions' => array('style' => 'width: 30px;')), array('name' => 'search_course_id', 'type' => 'raw', 'value' => '$data->type->course->title', 'filter' => CourseType::model()->courseList), array('name' => 'title', 'class' => 'yupe.widgets.CustomEditableColumn', 'editable' => array('placement' => 'right')), !empty($course) ? array('name' => 'type_id', 'type' => 'raw', 'value' => '$data->typeTitle', 'class' => 'yupe.widgets.CustomEditableColumn', 'editable' => array('placement' => 'right', 'type' => 'select', 'source' => $course->courseTypesList)) : array('name' => 'type_id', 'type' => 'raw', 'value' => '$data->typeTitle', 'filter' => false), array('name' => 'gender', 'type' => 'raw', 'value' => '$data->getGender()', 'filter' => $model->genderList, 'class' => 'yupe.widgets.CustomEditableColumn', 'editable' => array('placement' => 'right', 'type' => 'select', 'source' => $model->genderList)), array('name' => 'notime', 'type' => 'raw', 'value' => '$data->notimeTitle', 'filter' => $model->notimeList, 'class' => 'yupe.widgets.CustomEditableColumn', 'editable' => array('placement' => 'right', 'type' => 'select', 'source' => $model->notimeList)), array('class' => 'yupe\\widgets\\columns\\EditableStatusColumn', 'name' => 'status', 'source' => $model->statusList, 'options' => array(Package::STATUS_PUBLISHED => array('class' => 'label-success'), Package::STATUS_DRAFT => array('class' => 'label-default')), 'htmlOptions' => array('style' => 'width:150px')), array('type' => 'raw', 'value' => 'CHtml::link("Расписание", array("/classroom/dayBackend/index", "package_id" => $data->id))'), array('type' => 'raw', 'value' => 'CHtml::link("Структура", array("/classroom/pageBackend/index", "package_id" => $data->id))'), array('type' => 'raw', 'value' => 'CHtml::link("Просмотр пакета", $data->getUrl() . "?adminPackageId=" . $data->id, array("target" => "_blank"))'), array('class' => 'bootstrap.widgets.TbButtonColumn', 'template' => '{duplicate}{delete}', 'buttons' => array('duplicate' => array('icon' => 'wrench', 'label' => 'Дублировать', 'url' => 'array("duplicate", "id" => $data->id)', 'click' => 'js:function(){return confirm("Вы действительно хотите скопировать пакет?")}')), 'htmlOptions' => array('style' => 'width: 80px; text-align: right;')))));
      <?php 
    /* @var $career_subject_school_year CareerSubjectSchoolYear */
    ?>
      <?php 
    foreach ($course->getCourseSubjects() as $course_subject) {
        ?>

        <?php 
        $career_subject_school_year = $course_subject->getCareerSubjectSchoolYear();
        ?>
        <td> <?php 
        echo $career_subject_school_year->getConfiguration()->getCourseMarks();
        ?>
 </td>
        <td> <?php 
        echo CourseType::getOption($career_subject_school_year->getConfiguration()->getCourseType());
        ?>
 </td>
        <?php 
        if ($career_subject_school_year->getConfiguration()->getAttendanceType() == AbsenceMethod::SUBJECT) {
            ?>
          <td><? echo __('Per day'); ?></td>

        <?php 
        } else {
            ?>
          <td> <?php 
            echo __('Per subject');
            ?>
            <ul>
              <?php 
Exemple #11
0
<?php

$this->widget('yupe\\widgets\\OGridView', array('id' => 'poll-grid', 'type' => 'condensed', 'dataProvider' => $model->search(), 'filter' => $model, 'columns' => array(array('name' => 'title', 'class' => 'yupe.widgets.CustomEditableColumn', 'editable' => array('placement' => 'right')), array('name' => 'course_id', 'type' => 'raw', 'value' => '$data->course->title', 'filter' => CourseType::model()->courseList), array('header' => Yii::t('PollModule.poll', 'Вопросы'), 'type' => 'raw', 'value' => 'CHtml::link("Вопросов: " . $data->questionsCount, array("/poll/questionBackend/index", "poll_id" => $data->id))'), array('header' => 'Результаты', 'type' => 'raw', 'value' => 'CHtml::link("Результаты опроса", array("/poll/pollBackend/results", "id" => $data->id))'), array('class' => 'yupe\\widgets\\columns\\EditableStatusColumn', 'name' => 'status', 'source' => $model->statusList, 'options' => array(Poll::STATUS_ACTIVE => array('class' => 'label-success'), Poll::STATUS_DELETED => array('class' => 'label-default')), 'htmlOptions' => array('style' => 'width:150px')), array('class' => 'bootstrap.widgets.TbButtonColumn', 'template' => '{delete}', 'htmlOptions' => array('style' => 'width: 80px; text-align: right;')))));
Exemple #12
0
                }
            }')));
?>

    <?php 
echo $form->errorSummary($model);
?>

    <fieldset class="inline">
        <div class="row-fluid"> 
            <div class="span3 control-group <?php 
echo $model->hasErrors('course_id') ? 'error' : '';
?>
">
                <?php 
echo $form->dropdownListRow($model, 'course_id', CourseType::model()->courseList, array('class' => 'span12', 'empty' => 'Выберите курс'));
?>
            </div>
            
            <div class='span6 control-group <?php 
echo $model->hasErrors("title") ? "error" : "";
?>
'>
                <?php 
echo $form->textFieldRow($model, 'title', array('class' => 'span12', 'maxlength' => 250));
?>
            </div>
            
            <div class="span2 control-group">
                <label>&nbsp;</label>
                <?php