Lesson frontend

parent c46cb168
<?php
namespace common\modules\school\components;
class Utilities
{
public static function checkurl($url) {
// режем левые символы и крайние пробелы
$url=trim($url);
// если пусто - выход
if (strlen($url)==0) return 1;
//проверяем УРЛ на правильность
if (!preg_match("~^(?:(?:https?|ftp|telnet)://(?:[a-z0-9_-]{1,32}".
"(?::[a-z0-9_-]{1,32})?@)?)?(?:(?:[a-z0-9-]{1,128}\.)+(?:com|net|".
"org|mil|edu|arpa|gov|biz|info|aero|inc|name|[a-z]{2})|(?!0)(?:(?".
"!0[^.]|255)[0-9]{1,3}\.){3}(?!0|255)[0-9]{1,3})(?:/[a-z0-9.,_@%&".
"?+=\~/-]*)?(?:#[^ '\"&<>]*)?$~i",$url,$ok))
return -1; // если не правильно - выход
// если нет протокала - добавить
if (!strstr($url,"://")) $url="http://".$url;
// заменить протокол на нижний регистр: hTtP -> http
$url=preg_replace("~^[a-z]+~ie","strtolower('\\0')",$url);
return $url;
}
}
\ No newline at end of file
...@@ -4,7 +4,9 @@ namespace common\modules\school\controllers; ...@@ -4,7 +4,9 @@ namespace common\modules\school\controllers;
use common\components\BaseController; use common\components\BaseController;
use common\modules\school\models\Courses;
use common\modules\school\models\SearchCourses; use common\modules\school\models\SearchCourses;
use common\modules\school\models\SearchLessons;
class CourseController extends BaseController class CourseController extends BaseController
{ {
...@@ -25,8 +27,13 @@ class CourseController extends BaseController ...@@ -25,8 +27,13 @@ class CourseController extends BaseController
return $this->render('index', ['dataProvider' => $dataProvider]); return $this->render('index', ['dataProvider' => $dataProvider]);
} }
public function actionView() public function actionView($id)
{ {
return $this->render('view'); $model = Courses::findOne($id);
$searchModel = new SearchLessons();
$search['course_id'] = $id;
$dataProvider = $searchModel->search($search);
return $this->render('view', ['dataProvider' => $dataProvider, 'model' => $model]);
} }
} }
...@@ -61,7 +61,7 @@ class CoursesAdminController extends AdminController ...@@ -61,7 +61,7 @@ class CoursesAdminController extends AdminController
'Добавить курс' 'Добавить курс'
]; ];
if($model->load(Yii::$app->request->post())){ if($model->load(Yii::$app->request->post()) && $model->validate()){
//Try to get file info //Try to get file info
$model->upload_image = \yii\web\UploadedFile::getInstance($model, 'upload_image'); $model->upload_image = \yii\web\UploadedFile::getInstance($model, 'upload_image');
//If received, then I get the file name and asign it to $model->image in order to store it in db //If received, then I get the file name and asign it to $model->image in order to store it in db
...@@ -70,8 +70,7 @@ class CoursesAdminController extends AdminController ...@@ -70,8 +70,7 @@ class CoursesAdminController extends AdminController
$model->image = $image_name; $model->image = $image_name;
} }
//I proceed to validate model. Notice that will validate that 'image' is required and also 'image_upload' as file, but this last is optional $model->save();
if ($model->validate() && $model->save()) {
//If all went OK, then I proceed to save the image in filesystem //If all went OK, then I proceed to save the image in filesystem
if(!empty($model->upload_image)){ if(!empty($model->upload_image)){
...@@ -79,7 +78,6 @@ class CoursesAdminController extends AdminController ...@@ -79,7 +78,6 @@ class CoursesAdminController extends AdminController
} }
return $this->redirect(['view', 'id' => $model->id]); return $this->redirect(['view', 'id' => $model->id]);
} }
}
else else
{ {
$form = new \common\components\BaseForm('/common/modules/school/forms/CourseForm', $model); $form = new \common\components\BaseForm('/common/modules/school/forms/CourseForm', $model);
...@@ -99,7 +97,7 @@ class CoursesAdminController extends AdminController ...@@ -99,7 +97,7 @@ class CoursesAdminController extends AdminController
]; ];
$model = $this->findModel($id); $model = $this->findModel($id);
if($model->load(Yii::$app->request->post())){ if($model->load(Yii::$app->request->post()) && $model->validate()){
//Try to get file info //Try to get file info
$model->upload_image = \yii\web\UploadedFile::getInstance($model, 'upload_image'); $model->upload_image = \yii\web\UploadedFile::getInstance($model, 'upload_image');
...@@ -109,8 +107,7 @@ class CoursesAdminController extends AdminController ...@@ -109,8 +107,7 @@ class CoursesAdminController extends AdminController
$model->image = $image_name; $model->image = $image_name;
} }
//I proceed to validate model. Notice that will validate that 'image' is required and also 'image_upload' as file, but this last is optional $model->save();
if ($model->validate() && $model->save()) {
//If all went OK, then I proceed to save the image in filesystem //If all went OK, then I proceed to save the image in filesystem
if(!empty($model->upload_image)){ if(!empty($model->upload_image)){
...@@ -118,7 +115,6 @@ class CoursesAdminController extends AdminController ...@@ -118,7 +115,6 @@ class CoursesAdminController extends AdminController
} }
return $this->redirect(['view', 'id' => $model->id]); return $this->redirect(['view', 'id' => $model->id]);
} }
}
else else
{ {
$form = new \common\components\BaseForm('/common/modules/school/forms/CourseForm', $model); $form = new \common\components\BaseForm('/common/modules/school/forms/CourseForm', $model);
...@@ -136,10 +132,11 @@ class CoursesAdminController extends AdminController ...@@ -136,10 +132,11 @@ class CoursesAdminController extends AdminController
return $this->redirect(['manage']); return $this->redirect(['manage']);
} }
public function actionManage() public function actionManage()
{ {
$searchModel = new SearchCourses(); $searchModel = new SearchCourses();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams); $dataProvider = $searchModel->search(Yii::$app->request->queryParams["SearchCourses"]);
\yii::$app->controller->page_title = 'Управление курсами'; \yii::$app->controller->page_title = 'Управление курсами';
......
...@@ -4,6 +4,8 @@ namespace common\modules\school\controllers; ...@@ -4,6 +4,8 @@ namespace common\modules\school\controllers;
use common\components\BaseController; use common\components\BaseController;
use common\modules\school\models\Lessons;
class LessonController extends BaseController class LessonController extends BaseController
{ {
public static function actionsTitles() public static function actionsTitles()
...@@ -13,8 +15,9 @@ class LessonController extends BaseController ...@@ -13,8 +15,9 @@ class LessonController extends BaseController
]; ];
} }
public function actionView() public function actionView($id)
{ {
return $this->render('view'); $model = Lessons::findOne($id);
return $this->render('view', ['model' => $model]);
} }
} }
...@@ -106,7 +106,7 @@ class LessonsAdminController extends AdminController ...@@ -106,7 +106,7 @@ class LessonsAdminController extends AdminController
public function actionManage() public function actionManage()
{ {
$searchModel = new SearchLessons(); $searchModel = new SearchLessons();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams); $dataProvider = $searchModel->search(Yii::$app->request->queryParams["SearchLessons"]);
\yii::$app->controller->page_title = 'Управление уроками'; \yii::$app->controller->page_title = 'Управление уроками';
...@@ -114,7 +114,6 @@ class LessonsAdminController extends AdminController ...@@ -114,7 +114,6 @@ class LessonsAdminController extends AdminController
'Управление уроками', 'Управление уроками',
]; ];
return $this->render('manage', [ return $this->render('manage', [
'searchModel' => $searchModel, 'searchModel' => $searchModel,
'dataProvider' => $dataProvider, 'dataProvider' => $dataProvider,
......
...@@ -32,6 +32,7 @@ else { ...@@ -32,6 +32,7 @@ else {
$elements = [ $elements = [
'title' => ['type' => 'text'], 'title' => ['type' => 'text'],
'description' => ['type' => 'textarea'], 'description' => ['type' => 'textarea'],
'description_for_course' => ['type' => 'textarea'],
'type' => [ 'type' => [
'type' => 'dropdownlist', 'type' => 'dropdownlist',
'items' => Courses::$type_list, 'items' => Courses::$type_list,
......
...@@ -11,6 +11,7 @@ $elements = [ ...@@ -11,6 +11,7 @@ $elements = [
'type' => 'dropdownlist', 'type' => 'dropdownlist',
'items' => ArrayHelper::map(Courses::find()->all(), 'id', 'title'), 'items' => ArrayHelper::map(Courses::find()->all(), 'id', 'title'),
], ],
'number' => ['type' => 'text'],
]; ];
return [ return [
......
...@@ -44,7 +44,8 @@ class Courses extends \common\components\ActiveRecordModel ...@@ -44,7 +44,8 @@ class Courses extends \common\components\ActiveRecordModel
'description' => 'Описание', 'description' => 'Описание',
'type' => 'Тип курса', 'type' => 'Тип курса',
'upload_image' => 'Изображения', 'upload_image' => 'Изображения',
'spec_proposition' => 'Специальное предложение' 'spec_proposition' => 'Специальное предложение',
'description_for_course' => 'Описание для страницы курса'
]; ];
} }
...@@ -58,7 +59,7 @@ class Courses extends \common\components\ActiveRecordModel ...@@ -58,7 +59,7 @@ class Courses extends \common\components\ActiveRecordModel
[['type', 'spec_proposition'], 'integer', 'max' => 11], [['type', 'spec_proposition'], 'integer', 'max' => 11],
[['title'], 'string', 'max' => 150], [['title'], 'string', 'max' => 150],
[['image'], 'string', 'max' => 100], [['image'], 'string', 'max' => 100],
[['description'], 'safe'], [['description', 'description_for_course'], 'safe'],
[['upload_image'], 'file', 'skipOnEmpty' => true, 'extensions' => 'png, jpg, jpeg, gif'], [['upload_image'], 'file', 'skipOnEmpty' => true, 'extensions' => 'png, jpg, jpeg, gif'],
]; ];
} }
...@@ -103,10 +104,8 @@ class Courses extends \common\components\ActiveRecordModel ...@@ -103,10 +104,8 @@ class Courses extends \common\components\ActiveRecordModel
public function deleteFiles() public function deleteFiles()
{ {
if($this->image) if($this->image){
{ if(file_exists($this->getPath() . $this->image)){
if(file_exists($this->getPath() . $this->image))
{
unlink($this->getPath() . $this->image); unlink($this->getPath() . $this->image);
} }
} }
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
namespace common\modules\school\models; namespace common\modules\school\models;
use Yii; use common\modules\school\components\Utilities;
use common\modules\school\models\Courses; use common\modules\school\models\Courses;
...@@ -36,10 +36,10 @@ class Lessons extends \common\components\ActiveRecordModel ...@@ -36,10 +36,10 @@ class Lessons extends \common\components\ActiveRecordModel
public function rules() public function rules()
{ {
return [ return [
[['title', 'text', 'video_id', 'course_id'], 'required'], [['title', 'video_id', 'course_id', 'number'], 'required'],
[['title'], 'string', 'max' => 150], [['title'], 'string', 'max' => 150],
[['video_id'], 'string', 'max' => 100], [['video_id'], 'string', 'max' => 100],
[['course_id'], 'integer', 'max' => 11], [['course_id', 'number'], 'integer', 'max' => 11],
[['text'], 'safe'], [['text'], 'safe'],
]; ];
} }
...@@ -52,9 +52,10 @@ class Lessons extends \common\components\ActiveRecordModel ...@@ -52,9 +52,10 @@ class Lessons extends \common\components\ActiveRecordModel
return [ return [
'id' => 'ID', 'id' => 'ID',
'title' => 'Заголовок', 'title' => 'Заголовок',
'text' => 'Текст', 'text' => 'Полезные материалы',
'video_id' => 'Код видео', 'video_id' => 'Код видео',
'course_id' => 'Курс', 'course_id' => 'Курс',
'number' => 'Номер урока',
]; ];
} }
...@@ -71,4 +72,31 @@ class Lessons extends \common\components\ActiveRecordModel ...@@ -71,4 +72,31 @@ class Lessons extends \common\components\ActiveRecordModel
{ {
return $this->hasOne(Courses::className(), ['id' => 'course_id']); return $this->hasOne(Courses::className(), ['id' => 'course_id']);
} }
public function beforeSave($insert)
{
if (parent::beforeSave($insert)) {
$this->video_id = $this->getVideoId();
return $this->video_id;
}
else {
return false;
}
}
public function getVideoId()
{
if ($this->video_id) {
if (Utilities::checkUrl($this->video_id)) {
if (strrpos($this->video_id, '=')){
$this->video_id=substr($this->video_id, strrpos($this->video_id, '=')+1);
}
}
return $this->video_id;
}
else {
return false;
}
}
} }
...@@ -42,19 +42,20 @@ class SearchCourses extends Courses ...@@ -42,19 +42,20 @@ class SearchCourses extends Courses
*/ */
public function search($params) public function search($params)
{ {
if ($params){
$params = array_filter($params);
$query = Courses::findByCondition($params);
}
else {
$query = Courses::find(); $query = Courses::find();
}
$dataProvider = new ActiveDataProvider([
'query' => $query,
]);
$this->load($params); $this->load($params);
/*if (!$this->validate()) {
if (!$this->validate()) {
// uncomment the following line if you do not want to any records when validation fails // uncomment the following line if you do not want to any records when validation fails
// $query->where('0=1'); // $query->where('0=1');
return $dataProvider; return $dataProvider;
} }*/
$query->andFilterWhere([ $query->andFilterWhere([
'id' => $this->id, 'id' => $this->id,
...@@ -65,6 +66,11 @@ class SearchCourses extends Courses ...@@ -65,6 +66,11 @@ class SearchCourses extends Courses
->andFilterWhere(['like', 'title', $this->title]) ->andFilterWhere(['like', 'title', $this->title])
->andFilterWhere(['like', 'image', $this->image]); ->andFilterWhere(['like', 'image', $this->image]);
$query->orderBy(['id' => SORT_DESC]); $query->orderBy(['id' => SORT_DESC]);
$dataProvider = new ActiveDataProvider([
'query' => $query,
]);
return $dataProvider; return $dataProvider;
} }
} }
...@@ -18,7 +18,7 @@ class SearchLessons extends Lessons ...@@ -18,7 +18,7 @@ class SearchLessons extends Lessons
public function rules() public function rules()
{ {
return [ return [
[['id', 'course_id'], 'integer'], [['id', 'course_id', 'number'], 'integer'],
[['video_id', 'title'], 'safe'], [['video_id', 'title'], 'safe'],
]; ];
} }
...@@ -41,27 +41,32 @@ class SearchLessons extends Lessons ...@@ -41,27 +41,32 @@ class SearchLessons extends Lessons
*/ */
public function search($params) public function search($params)
{ {
if ($params){
$params = array_filter($params);
$query = Lessons::findByCondition($params);
}
else {
$query = Lessons::find(); $query = Lessons::find();
}
$dataProvider = new ActiveDataProvider([
'query' => $query,
]);
$this->load($params); $this->load($params);
/*if (!$this->validate()) {
if (!$this->validate()) {
// uncomment the following line if you do not want to any records when validation fails // uncomment the following line if you do not want to any records when validation fails
// $query->where('0=1'); // $query->where('0=1');
return $dataProvider; return $dataProvider;
} }*/
$query->andFilterWhere([ $query->andFilterWhere([
'id' => $this->id, 'id' => $this->id,
'course_id' => $this->course_id, 'course_id' => $this->course_id,
'number' => $this->number,
]); ]);
$query->andFilterWhere(['like', 'video_id', $this->video_id]) $query->andFilterWhere(['like', 'video_id', $this->video_id])
->andFilterWhere(['like', 'title', $this->title]); ->andFilterWhere(['like', 'title', $this->title]);
$query->orderBy(['id' => SORT_ASC]);
$dataProvider = new ActiveDataProvider([
'query' => $query,
]);
return $dataProvider; return $dataProvider;
} }
......
...@@ -26,8 +26,9 @@ ...@@ -26,8 +26,9 @@
<?php echo \yii\widgets\ListView::widget( [ <?php echo \yii\widgets\ListView::widget( [
'dataProvider' => $dataProvider, 'dataProvider' => $dataProvider,
'itemView' => 'item-view', 'itemView' => 'item-view',
'itemOptions' => ['tag' => ''], 'itemOptions' => ['tag' => 'div'],
'options' => ['tag' => ''], 'options' => ['tag' => 'div'],
'emptyTextOptions' => [ 'tag' => 'div', 'class' => 'empty-text' ],
'layout' => '{items}<li><nav class="pages">{pager}</nav></li>', 'layout' => '{items}<li><nav class="pages">{pager}</nav></li>',
'pager' => [ 'pager' => [
'class' => 'common\components\zii\FrontLinkPager', 'class' => 'common\components\zii\FrontLinkPager',
......
<?php
use yii\helpers\Url;
?>
<div class="col-md-3 col-xs-6 col-sm-12">
<div class="ls_block_item">
<div class="line_ls">Урок <?php echo $model->number;?></div>
<a href="<?php echo Url::toRoute(['/school/lesson/view', 'id' => $model->id]);?>" class="ls_block_title">
<?php echo $model->title;?>
</a>
<a href="<?php echo Url::toRoute(['/school/lesson/view', 'id' => $model->id]);?>" class="ls_block_btn">
Смотреть
</a>
</div>
</div>
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
<div class="blip_kurs">За просмотр этих курсов<br> мы заплатим 15 000 руб.</div> <div class="blip_kurs">За просмотр этих курсов<br> мы заплатим 15 000 руб.</div>
<?php endif;?> <?php endif;?>
<div class="kurs_foot clearfix"> <div class="kurs_foot clearfix">
<a href="<?php echo Url::toRoute(['/school/course/view', 'id' => 1]);?>" class="kurs_bt">Подробнее</a> <a href="<?php echo Url::toRoute(['/school/course/view', 'id' => $model->id]);?>" class="kurs_bt">Подробнее</a>
</div> </div>
<div class="for_<?php echo $model->getClassCourse($model->type);?>"> <div class="for_<?php echo $model->getClassCourse($model->type);?>">
<div class="r_<?php echo $model->getClassCourse($model->type);?>"></div> <div class="r_<?php echo $model->getClassCourse($model->type);?>"></div>
......
...@@ -19,18 +19,16 @@ ...@@ -19,18 +19,16 @@
</div> </div>
</div> </div>
</section> </section>
<section class="les_list_top"> <section class="les_list_top" style="background: url(<?php echo $model->getUrl($model->image);?>) no-repeat center center">
<div class="ls_top_over"> <div class="ls_top_over">
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col-md-12 col-xs-12 col-sm-12"> <div class="col-md-12 col-xs-12 col-sm-12">
<h1 class="ls_title"> <h1 class="ls_title">
<span>Курс для менеджеров it-отрасли</span> <span><?php echo $model->title;?></span>
</h1> </h1>
<div class="ls_subtitle"> <div class="ls_subtitle">
<span>Если вы менеджер it отрасли или генеральный директоров в сфере</span> <?php echo $model->description_for_course;?>
<br>
<span>it отрасли, то вам будет полезно посмотреть этот учебный курс.</span>
</div> </div>
<br> <br>
<div class="ls_txt"><span>В роликах будет рассказываться:</span></div> <div class="ls_txt"><span>В роликах будет рассказываться:</span></div>
...@@ -43,44 +41,27 @@ ...@@ -43,44 +41,27 @@
<section class="ls_list_block"> <section class="ls_list_block">
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col-md-3 col-xs-6 col-sm-12">
<div class="ls_block_item"> <?php echo \yii\widgets\ListView::widget( [
<div class="line_ls">Урок 1</div> 'dataProvider' => $dataProvider,
<a href="<?php echo Url::toRoute(['/school/lesson/view', 'id' => 1]);?>" class="ls_block_title">Как правильно принимать задачи от заказчика</a> 'itemView' => 'item-view-lesson',
<a href="<?php echo Url::toRoute(['/school/lesson/view', 'id' => 1]);?>" class="ls_block_btn">Смотреть</a> 'itemOptions' => ['tag' => 'div'],
</div> 'options' => ['tag' => 'div'],
</div> 'emptyTextOptions' => [ 'tag' => 'div', 'class' => 'empty-text' ],
<div class="col-md-3 col-xs-6 col-sm-12"> 'layout' => '{items}<li><nav class="pages">{pager}</nav></li>',
<div class="ls_block_item"> 'pager' => [
<div class="line_ls">Урок 99</div> 'class' => 'common\components\zii\FrontLinkPager',
<a href="<?php echo Url::toRoute(['/school/lesson/view', 'id' => 1]);?>" class="ls_block_title">Как правильно ставить задачу исполнителям</a> 'activePageCssClass' => 'is-active',
<a href="<?php echo Url::toRoute(['/school/lesson/view', 'id' => 1]);?>" class="ls_block_btn">Смотреть</a> 'prevPageLabel' => '<span class="glyphicon glyphicon-chevron-left"></span>Предыдущая',
</div> 'nextPageLabel' => 'Следующая<span class="glyphicon glyphicon-chevron-right"></span>',
</div> 'options' => [
<div class="col-md-3 col-xs-6 col-sm-12"> 'class' => 'pages-list',
<div class="ls_block_item ls_fine"> ],
<div class="line_ls">Урок 3</div> ],
<a href="<?php echo Url::toRoute(['/school/lesson/view', 'id' => 1]);?>" class="ls_block_title">Как правильно выстроить взаимоотношения с заказчиком</a> ] );
<div class="ls_fine_txt">Урок просмотрен</div> ?>
<a href="<?php echo Url::toRoute(['/school/lesson/view', 'id' => 1]);?>" class="ls_block_btn">Продолжить</a>
</div>
</div>
<div class="col-md-3 col-xs-6 col-sm-12">
<div class="ls_block_item">
<div class="line_ls">Урок 4</div>
<a href="<?php echo Url::toRoute(['/school/lesson/view', 'id' => 1]);?>" class="ls_block_title">Как научиться изменять стоимость проекта</a>
<a href="<?php echo Url::toRoute(['/school/lesson/view', 'id' => 1]);?>" class="ls_block_btn">Смотреть</a>
</div>
</div>
</div>
<div class="row"> <div class="row">
<div class="col-md-3 col-xs-6 col-sm-12">
<div class="ls_block_item">
<div class="line_ls">Урок 2</div>
<a href="<?php echo Url::toRoute(['/school/lesson/view', 'id' => 1]);?>" class="ls_block_title">Как работать с материалом</a>
<a href="<?php echo Url::toRoute(['/school/lesson/view', 'id' => 1]);?>" class="ls_block_btn">Смотреть</a>
</div>
</div>
<div class="col-md-3 col-xs-6 col-sm-12"> <div class="col-md-3 col-xs-6 col-sm-12">
<div class="ls_likes"> <div class="ls_likes">
<div class="ls_likes_title">Нравится курс?</div> <div class="ls_likes_title">Нравится курс?</div>
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col-md-8 col-xs-8 col-sm-12"> <div class="col-md-8 col-xs-8 col-sm-12">
<h1 class="vc-title">Урок 1. Курс для менеджеров it-отрасли вторая строка</h1> <h1 class="vc-title">Урок <?php echo $model->number;?>. <?php echo $model->title;?></h1>
</div> </div>
<div class="col-md-3 col-md-offset-1 col-xs-4 col-sm-12"> <div class="col-md-3 col-md-offset-1 col-xs-4 col-sm-12">
<ul class="sh_social"> <ul class="sh_social">
...@@ -36,11 +36,16 @@ ...@@ -36,11 +36,16 @@
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12 col-xs-12 col-sm-12"> <div class="col-md-12 col-xs-12 col-sm-12">
<div class="ytb_video"> <div class="ytb_video">
<img src="/images/ytb_video.jpg" height="508" width="903" alt=""> <iframe width="903" height="508" src="https://www.youtube.com/embed/<?php echo $model->video_id ?>" frameborder="0" allowfullscreen></iframe>
</div> </div>
<?php if($model->course->spec_proposition):?>
<div class="vc-subtitle">Оставляйте комментарии и проходите тестирование, что бы <span>получить приз 15 000 руб.</span></div> <div class="vc-subtitle">Оставляйте комментарии и проходите тестирование, что бы <span>получить приз 15 000 руб.</span></div>
<a href="#" class="vc-uslovia">Подробные условия конкурса</a> <a href="#" class="vc-uslovia">Подробные условия конкурса</a>
<?php endif;?>
</div> </div>
</div> </div>
</div> </div>
...@@ -62,62 +67,16 @@ ...@@ -62,62 +67,16 @@
</div> </div>
</div> </div>
</div> </div>
<?php if($model->text):?>
<div class="row"> <div class="row">
<div class="col-md-12 col-xs-12 col-sm-12"> <div class="col-md-12 col-xs-12 col-sm-12">
<h2>Полезные материалы</h2> <h2>Полезные материалы</h2>
</div> </div>
</div> </div>
<div class="row"> <?php echo $model->text;?>
<div class="col-md-12 col-xs-12 col-sm-12"> <?php endif;?>
<strong>“Пессимист - тот, кто жалуется на шум, когда стучит возможность”</strong>
<p>Сервис для закрепления и защиты своих проектов по поставке или внедрению продукции и решений Schneider Electric. Поставщики регистрируют проекты и предоставляют по ним ключевую информацию. Если проект будет защищен, в системе, то другой поставщик не сможет его выполнить.<br> Разработанный сервис позволяет пользователям, через личный кабинет, вносить <a href="#">заявки</a> на будущие проекты </p>
<p><img src="/images/test_img.jpg" height="145" width="230"> Сервис для закрепления и защиты своих проектов по поставке или внедрению продукции и решений Schneider Electric. Поставщики регистрируют проекты и предоставляют по ним ключевую информацию. Если проект будет защищен, в системе, то другой поставщик не сможет его выполнить.<br> Разработанный сервис позволяет пользователям, через личный кабинет, вносить заявки на будущие проекты и вести учет всех поданных ранее заявок.</p>
<p>Сервис для закрепления и защиты своих проектов по поставке или внедрению продукции и решений Schneider Electric. Поставщики регистрируют проекты и предоставляют по ним ключевую информацию. Если проект будет защищен, в системе, то другой поставщик не сможет его выполнить.</p>
</div>
</div>
<div class="row">
<div class="col-md-6 col-xs-6 col-sm-12">
<ol class="ol_list">
<li>Защита соединения TLS и/или SSL протоколом</li>
<li>Защита данных шифрованием</li>
<li>Двухфакторная аутентификация</li>
<li>Подтверждение операции по SMS или ЭЦП</li>
</ol>
</div>
<div class="col-md-6 col-xs-6 col-sm-12">
<ul class="ul_list">
<li>Защита соединения TLS и/или SSL протоколом</li>
<li>Защита данных шифрованием</li>
<li>Двухфакторная аутентификация</li>
<li>Подтверждение операции по SMS или ЭЦП</li>
</ul>
</div>
</div>
<div class="row">
<div class="col-md-12 col-xs-12 col-sm-12">
<div class="tb_vp">
<table width="940px">
<thead height="60px">
<tr>
<th width="310px">Тип взаимодействия с<br> заказчиком</th>
<th width="230px">Плюсы</th>
<th>Минусы</th>
</tr>
</thead>
<tbody><tr>
<th>Заказчик работает на прямую<br> с исполнителем</th>
<th>Вы экономите на менеджменте<br> Задачи выполняются быстрее</th>
<th>Есть риск увода специалиста<br> Нет защиты от негатива заказчика.<br> Сложнее предлагать новые услуги<br> Задачи выполняются не полностью, т.к. нет эксперта, кторый может корректно формулировать задачу</th>
</tr>
<tr>
<th>Заказчик работает на прямую<br> с исполнителем</th>
<th>Вы экономите на менеджменте<br> Задачи выполняются быстрее</th>
<th>Есть риск увода специалиста<br> Нет защиты от негатива заказчика.<br> Сложнее предлагать новые услуги<br> Задачи выполняются не полностью, т.к. нет эксперта, кторый может корректно формулировать задачу</th>
</tr>
</tbody></table>
</div>
</div>
</div>
<div class="row"> <div class="row">
<div class="col-md-6 col-xs-6 col-sm-12"> <div class="col-md-6 col-xs-6 col-sm-12">
<i class="ai_format"></i> <i class="ai_format"></i>
......
...@@ -21,10 +21,17 @@ use common\modules\school\models\Courses; ...@@ -21,10 +21,17 @@ use common\modules\school\models\Courses;
'filterModel' => $searchModel, 'filterModel' => $searchModel,
'columns' => [ 'columns' => [
'title', 'title',
'video_id', [
'attribute' => 'video_id',
'filter' => false,
'value' => function($model)
{
return $model->video_id;
}
],
[ [
'attribute' => 'course_id', 'attribute' => 'course_id',
'filter' => Html::dropDownList('SearchCourses[course_id]', 'filter' => Html::dropDownList('SearchLessons[course_id]',
$searchModel->course_id, $searchModel->course_id,
ArrayHelper::map(Courses::find()->all(),'id','title'), ArrayHelper::map(Courses::find()->all(),'id','title'),
['class'=>'form-control','prompt'=>'Курс']), ['class'=>'form-control','prompt'=>'Курс']),
...@@ -33,6 +40,7 @@ use common\modules\school\models\Courses; ...@@ -33,6 +40,7 @@ use common\modules\school\models\Courses;
return $model->course->title; return $model->course->title;
} }
], ],
'number',
[ [
'class' => 'common\components\ColorActionColumn', 'class' => 'common\components\ColorActionColumn',
'template' => '{view} {update}', 'template' => '{view} {update}',
......
...@@ -3,8 +3,6 @@ ...@@ -3,8 +3,6 @@
use yii\helpers\Html; use yii\helpers\Html;
use yii\widgets\DetailView; use yii\widgets\DetailView;
use common\modules\school\models\Courses;
/* @var $this yii\web\View */ /* @var $this yii\web\View */
?> ?>
...@@ -29,12 +27,9 @@ use common\modules\school\models\Courses; ...@@ -29,12 +27,9 @@ use common\modules\school\models\Courses;
'video_id', 'video_id',
[ [
'attribute' => 'course_id', 'attribute' => 'course_id',
'filter' => false, 'value' => $model->course->title,
'value' => function($model)
{
return $model->course->title;
}
], ],
'number',
], ],
]) ?> ]) ?>
......
<?php
use yii\db\Schema;
use yii\db\Migration;
class m160202_205332_add_field_to_lessons_table extends Migration
{
public function safeUp()
{
$this->addColumn('lessons', 'number', Schema::TYPE_INTEGER . '(11) NOT NULL');
}
public function safeDown()
{
$this->dropColumn('lessons', 'number');
}
}
<?php
use yii\db\Migration;
use yii\db\Schema;
class m160202_215135_add_field_to_courses_table extends Migration
{
public function safeUp()
{
$this->addColumn('courses', 'description_for_course', Schema::TYPE_TEXT . ' NOT NULL');
}
public function safeDown()
{
$this->dropColumn('courses', 'description_for_course');
}
}
...@@ -9578,7 +9578,7 @@ thead tr th { ...@@ -9578,7 +9578,7 @@ thead tr th {
} }
.les_list_top { .les_list_top {
background: url(../images/les_top_bg.jpg) no-repeat center center; /*background: url(../images/les_top_bg.jpg) no-repeat center center;*/
width: 100%; width: 100%;
height: 377px; height: 377px;
background-size: cover; background-size: cover;
...@@ -11453,3 +11453,9 @@ h6 { ...@@ -11453,3 +11453,9 @@ h6 {
margin-top: 30px; margin-top: 30px;
} }
} }
.empty-text{
margin-bottom: 30px;
}
.row li{
list-style: none;
}
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment