Commit f6dd0e63 authored by Шакарим Сапа's avatar Шакарим Сапа

Merge remote-tracking branch 'origin/master'

parents c99bc4fb a226ad2d
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
namespace common\modules\blog\models; namespace common\modules\blog\models;
use Yii; use Yii;
use yii\helpers\Url;
use common\modules\languages\models\Languages; use common\modules\languages\models\Languages;
use common\modules\blog\models\PostLang; use common\modules\blog\models\PostLang;
...@@ -191,7 +192,12 @@ class Post extends \common\components\ActiveRecordModel ...@@ -191,7 +192,12 @@ class Post extends \common\components\ActiveRecordModel
*/ */
public function getViews() public function getViews()
{ {
return SessionUrl::find()->where(['url' => '/blog/'.$this->url]); return SessionUrl::find()->where(['url' => $this->getFullUrl()]);
}
public function getFullUrl()
{
return Url::to(['/blog/' . $this->url]);
} }
public function getThumbnailUrl() public function getThumbnailUrl()
......
...@@ -87,11 +87,16 @@ class PostLang extends \common\components\ActiveRecordModel ...@@ -87,11 +87,16 @@ class PostLang extends \common\components\ActiveRecordModel
{ {
$text = strip_tags($this->text, '<a>'); $text = strip_tags($this->text, '<a>');
$text = $text . " "; if(strlen($text) > $chars)
$text = substr($text, 0, $chars); {
$text = substr($text, 0, strrpos($text, ' ')); $text = $text . " ";
$text = $text . "..."; $text = substr($text, 0, $chars);
$text = substr($text, 0, strrpos($text, ' '));
$text = $text . '...';
return '<p>'.$text.'</p>'; return '<p>'.$text.'</p><p><a href="'.$this->post->getFullUrl().'">Читать...</a></p>';
}
return $this->text;
} }
} }
...@@ -27,47 +27,53 @@ use common\modules\bids\models\Bid; ...@@ -27,47 +27,53 @@ use common\modules\bids\models\Bid;
], ],
]); ?> ]); ?>
<?php echo $form->field($model, 'form', ['template' => '{input}'])->hiddenInput(['class' => 'not_clear']); ?> <div class="message-box send_secce">Заявка на статью отправлена. Мы обязательно ее рассмотрим.</div>
<div class="blog_form_left form_resp"> <div class="content">
<div> <?php echo $form->field($model, 'form', ['template' => '{input}'])->hiddenInput(['class' => 'not_clear']); ?>
<?php echo $form->field($model, 'name')->textInput([ <div class="blog_form_left form_resp">
'placeholder' => 'Имя Фамилия',
'class' => 'input_st'
])->label(false); ?>
<?php echo $form->field($model, 'email')->textInput([ <div>
'placeholder' => 'E-mail',
'class' => 'input_st' <?php echo $form->field($model, 'name')->textInput([
])->label(false); ?> 'placeholder' => 'Имя Фамилия',
'class' => 'input_st'
])->label(false); ?>
<?php echo $form->field($model, 'email')->textInput([
'placeholder' => 'E-mail',
'class' => 'input_st'
])->label(false); ?>
</div>
</div> </div>
</div> <div class="blog_form_right form_resp">
<p><strong>Вы можете предложить статью для публикации или написать нам о том, что бы было интересно почитать.</strong></p>
<p><strong>Мы с радостью поделимся своим опытом и напишем интересную статью.</strong></p>
</div>
<div class="blog_form_right form_resp"> <div class="blog_lmg">
<p><strong>Вы можете предложить статью для публикации или написать нам о том, что бы было интересно почитать.</strong></p> <img src="/images/blog_form_img.png" height="123" width="118" alt="">
<p><strong>Мы с радостью поделимся своим опытом и напишем интересную статью.</strong></p> </div>
</div>
<div class="blog_lmg"> <div class="clear"></div>
<img src="/images/blog_form_img.png" height="123" width="118" alt="">
</div>
<div class="clear"></div> <br>
<?php echo $form->field($model, 'message')->textArea([
'placeholder' => 'Напишите краткие тезисы статьи или опишите интересующий вопрос.',
'class' => 'sect_cont_form__textarea'
])->label(false); ?>
<br> <div class="clear"></div>
<?php echo $form->field($model, 'message')->textArea([
'placeholder' => 'Напишите краткие тезисы статьи или опишите интересующий вопрос.',
'class' => 'sect_cont_form__textarea'
])->label(false); ?>
<div class="clear"></div> <?php echo Html::submitButton('Предложить статью', ['class' => 'save-button btn-default button-lg']); ?>
<?php echo Html::submitButton('Предложить статью', ['class' => 'save-button btn-default button-lg']); ?> </div>
<?php ActiveForm::end(); ?> <?php ActiveForm::end(); ?>
...@@ -95,42 +101,48 @@ use common\modules\bids\models\Bid; ...@@ -95,42 +101,48 @@ use common\modules\bids\models\Bid;
], ],
]); ?> ]); ?>
<?php echo $form->field($model, 'form', ['template' => '{input}'])->hiddenInput(['class' => 'not_clear']); ?> <div class="message-box send_secce">Заявка на статью по предложенной теме отправлена. Мы обязательно ее рассмотрим.</div>
<div class="content">
<?php echo $form->field($model, 'form', ['template' => '{input}'])->hiddenInput(['class' => 'not_clear']); ?>
<div class="blog_form_left50 form_resp"> <div class="blog_form_left50 form_resp">
<div> <div>
<?php echo $form->field($model, 'name')->textInput([
'placeholder' => 'Имя Фамилия',
'class' => 'input_st'
])->label(false); ?>
</div>
<?php echo $form->field($model, 'name')->textInput([
'placeholder' => 'Имя Фамилия',
'class' => 'input_st'
])->label(false); ?>
</div> </div>
</div> <div class="blog_form_right50 form_resp">
<div class="blog_form_right50 form_resp"> <?php echo $form->field($model, 'email')->textInput([
'placeholder' => 'E-mail',
'class' => 'input_st'
])->label(false); ?>
<?php echo $form->field($model, 'email')->textInput([ </div>
'placeholder' => 'E-mail',
'class' => 'input_st' <div class="clear"></div>
])->label(false); ?>
<?php echo $form->field($model, 'message')->textArea([
'placeholder' => 'Что хочу почитать?
Например: Хочу почитать про то, как настраивается контекстная реклама.
Про то как выставляются ставки.',
'class' => 'sect_cont_form__textarea'
])->label(false); ?>
<div class="clear"></div>
<?php echo Html::submitButton('Предложить тему', ['class' => 'save-button btn-default button-lg']); ?>
</div> </div>
<div class="clear"></div>
<?php echo $form->field($model, 'message')->textArea([
'placeholder' => 'Что хочу почитать?
Например: Хочу почитать про то, как настраивается контекстная реклама.
Про то как выставляются ставки.',
'class' => 'sect_cont_form__textarea'
])->label(false); ?>
<div class="clear"></div>
<?php echo Html::submitButton('Предложить тему', ['class' => 'save-button btn-default button-lg']); ?>
<?php ActiveForm::end(); ?> <?php ActiveForm::end(); ?>
......
...@@ -24,19 +24,25 @@ use common\modules\bids\models\Bid; ...@@ -24,19 +24,25 @@ use common\modules\bids\models\Bid;
'data-tag' => Bid::TAG_INVOLVEMENT 'data-tag' => Bid::TAG_INVOLVEMENT
], ],
]); ?> ]); ?>
<div class="message-box send_secce">Теперь вы подписаны на обновления блога.</div>
<div class="content">
<?php echo Html::hiddenInput('scenario', $model->scenario, ['class' => 'not_clear']); ?> <?php echo Html::hiddenInput('scenario', $model->scenario, ['class' => 'not_clear']); ?>
<?php echo $form->field($model, 'form', ['template' => '{input}'])->hiddenInput(['class' => 'not_clear']); ?>
<?php echo $form->field($model, 'form', ['template' => '{input}'])->hiddenInput(['class' => 'not_clear']); ?> <?php echo $form->field($model, 'email', [
'template' => '<div class="row"><div class="col-sm-4">{input}</div></div>',
'errorOptions' => []
])->textInput([
'placeholder' => 'E-mail*'
]); ?>
<?php echo $form->field($model, 'email', [ <?php echo Html::submitButton('Подписаться', ['class' => 'save-button']); ?>
'template' => '<div class="row"><div class="col-sm-4">{input}</div></div>',
'errorOptions' => []
])->textInput([
'placeholder' => 'E-mail*'
]); ?>
<?php echo Html::submitButton('Подписаться', ['class' => 'save-button']); ?> </div>
<?php ActiveForm::end(); ?> <?php ActiveForm::end(); ?>
......
<?php
namespace common\modules\testings\controllers;
use Yii;
use common\components\AdminController;
use yii\web\NotFoundHttpException;
use yii\filters\VerbFilter;
use common\modules\testings\models\Mistake;
use common\modules\testings\models\Passing;
class MistakeAdminController extends AdminController
{
public $errorSummaryCssClass = 'error-summary';
public $encodeErrorSummary = true;
public static function actionsTitles()
{
return array(
'View' => 'Просмотр ошибки',
'Create' => 'Создание ошибки',
'Update' => 'Редактирование ошибки',
);
}
public function actionView($passing)
{
return $this->render('view', [
'model' => Mistake::find()->where(['passing_id' => $passing])->one(),
]);
}
public function actionCreate($passing)
{
$model = new Mistake;
Yii::$app->controller->page_title = 'Добавить ошибку';
Yii::$app->controller->breadcrumbs = [
['Список прохождений' => '/testings/passing-admin/manage', 'session' => $model->passing->test->session_id],
'Добавить ошибку'
];
$model->load(Yii::$app->request->post());
$model->passing_id = $passing;
if (Yii::$app->request->isPost && $model->save())
{
if ($model->retest)
{
$pass = new Passing;
$oldpass = Passing::findOne($model->passing_id);
$pass->attributes = $oldpass->attributes;
$pass->is_passed = null;
$pass->pass_date = null;
$pass->attempt = 0;
$pass->pass_date_start = '';
$pass->save();
}
return $this->redirect(['/testings/passing-admin/manage', 'session' => $model->passing->test->session_id]);
}
else
{
$form = new \common\components\BaseForm('/common/modules/testings/forms/MistakeForm', $model);
return $this->render('create', [
'model' => $model,
'form' => $form->out
]);
}
}
public function actionUpdate($passing)
{
Yii::$app->controller->page_title = 'Редактировать ошибку';
Yii::$app->controller->breadcrumbs = [
['Список прохождений' => '/testings/passing-admin/manage', 'session' => $model->passing->test->session_id],
'Редактировать ошибку'
];
$model = Mistake::find()->where(['passing_id' => $passing])->one();
$model->load(Yii::$app->request->post());
$model->passing_id = $passing;
if (Yii::$app->request->isPost && $model->save())
{
if ($model->retest)
{
$pass = new Passing;
$pass->attributes = $model->passing->attributes;
$pass->is_passed = null;
$pass->pass_date = null;
$pass->attempt = 0;
$pass->pass_date_start = '';
$pass->save();
}
return $this->redirect(['/testings/passing-admin/manage', 'session' => $model->passing->test->session_id]);
}
else
{
$form = new \common\components\BaseForm('/common/modules/testings/forms/MistakeForm', $model);
return $this->render('update', [
'model' => $model,
'form' => $form->out
]);
}
}
/**
* Finds the Faq model based on its primary key value.
* If the model is not found, a 404 HTTP exception will be thrown.
* @param integer $id
* @return Faq the loaded model
* @throws NotFoundHttpException if the model cannot be found
*/
protected function findModel($id)
{
if (($model = Answer::findOne($id)) !== null) {
return $model;
} else {
throw new NotFoundHttpException('The requested page does not exist.');
}
}
}
<?php
namespace common\modules\testings\models;
use Yii;
use yii\behaviors\TimestampBehavior;
use yii\db\Expression;
class Mistake extends \common\components\ActiveRecordModel
{
const PAGE_SIZE = 10;
const NOT_AGREED = 0;
const AGREED = 1;
public $company;
public $managerField;
public $mistakeField;
public $retest = 0;
public static $state_list = [
self::NOT_AGREED => 'Не согласовано',
self::AGREED => 'Согласовано',
];
public static function tableName()
{
return 'testings_mistakes';
}
public function name()
{
return 'Сообщения об ошибках';
}
public function attributeLabels()
{
return [
'passing_id' => 'Прохождение',
'description' => 'Описание ошибки',
'is_expert_agreed' => 'Согласовано ли с экспертом',
'create_date' => 'Время создания',
];
}
/**
* @inheritdoc
*/
public function behaviors()
{
// $behaviors['FileManager'] = array(
// 'class' => 'application.components.activeRecordBehaviors.FileManagerBehavior'
// );
return [
[
'class' => TimestampBehavior::className(),
'createdAtAttribute' => 'create_date',
'updatedAtAttribute' => 'create_date',
'value' => new Expression('NOW()'),
],
];
}
public function rules()
{
return [
[['passing_id', 'description', 'is_expert_agreed'], 'required'],
[['passing_id', 'is_expert_agreed'], 'integer'],
[['description'], 'string', 'max' => 3000],
[['retest'], 'safe']
];
}
public function getPassing()
{
return $this->hasOne(Passing::className(), ['id' => 'passing_id']);
}
// public function getFiles()
// {
// return $this->hasMany(FileManager::className(), ['object_id' => 'id'])
// ->andWhere([
// 'files.model_id' => get_class($this),
// 'files.tag' => 'files'
// ])
// ->orderBy(['files.order DESC']);
// }
}
\ No newline at end of file
...@@ -12,24 +12,30 @@ class Passing extends \common\components\ActiveRecordModel ...@@ -12,24 +12,30 @@ class Passing extends \common\components\ActiveRecordModel
{ {
const PAGE_SIZE = 10; const PAGE_SIZE = 10;
const STARTED = 0; const NOT_STARTED = 0;
const STARTED = 11;
const ENDED = 1;
const FAILED = 0;
const PASSED = 1; const PASSED = 1;
const MISTAKE = 8;
const FAILED = 9;
const PASSING_PERCENT_RIGHT_CENTER = 50; const PASSING_PERCENT_RIGHT_CENTER = 50;
const PASSING_PERCENT_RIGHT_ALMOST = 75; const PASSING_PERCENT_RIGHT_ALMOST = 75;
const PASSING_PERCENT_RIGHT_ALL = 100; const PASSING_PERCENT_RIGHT_ALL = 100;
public static $state_list = [ public static $state_list = [
self::STARTED => 'Начал тестирование', self::NOT_STARTED => 'Не сдавал',
self::STARTED => 'Тестирование',
self::ENDED => 'Завершено',
];
public static $passed_list = [
self::FAILED => 'Не сдал', self::FAILED => 'Не сдал',
self::PASSED => 'Сдал', self::PASSED => 'Сдал',
self::MISTAKE => 'Ошибка',
]; ];
public static $answer_list = [ public static $answer_list = [
self::STARTED => 'Не верно', self::FAILED => 'Не верно',
self::PASSED => 'Верно', self::PASSED => 'Верно',
]; ];
...@@ -57,8 +63,8 @@ class Passing extends \common\components\ActiveRecordModel ...@@ -57,8 +63,8 @@ class Passing extends \common\components\ActiveRecordModel
{ {
return [ return [
[['user_id', 'test_id'], 'required'], [['user_id', 'test_id'], 'required'],
[['user_id', 'test_id', 'is_passed'], 'integer'], [['user_id', 'test_id', 'status', 'passed', 'percent', 'points'], 'integer'],
[['pass_date', 'pass_date_start', 'attempt'], 'safe'], [['start_date', 'attempt'], 'safe'],
[['end_date'], 'required', 'on' => 'extend'], [['end_date'], 'required', 'on' => 'extend'],
]; ];
} }
...@@ -66,14 +72,14 @@ class Passing extends \common\components\ActiveRecordModel ...@@ -66,14 +72,14 @@ class Passing extends \common\components\ActiveRecordModel
public function attributeLabels() public function attributeLabels()
{ {
return [ return [
'is_passed' => 'Состояние',
'test_id' => 'Tест', 'test_id' => 'Tест',
'user_id' => 'ФИО', 'user_id' => 'ФИО',
'create_date' => 'Дата создания', 'passed' => 'Сдал/Не сдал',
'pass_date' => 'Дата прохождения теста', 'status' => 'Статус',
'start_date' => 'Дата создания',
'end_date' => 'Дата прохождения теста',
'session_id' => 'Сессия', 'session_id' => 'Сессия',
'filter_user_email' => 'Email', 'filter_user_email' => 'Email',
'filter_user_company_name' => 'Наименование компании',
'filter_user_last_name' => 'ФИО', 'filter_user_last_name' => 'ФИО',
]; ];
} }
...@@ -113,7 +119,7 @@ class Passing extends \common\components\ActiveRecordModel ...@@ -113,7 +119,7 @@ class Passing extends \common\components\ActiveRecordModel
return $count; return $count;
} }
public function getPercent() public function getPercentRight()
{ {
$all = 0; $all = 0;
$right = 0; $right = 0;
...@@ -156,17 +162,18 @@ class Passing extends \common\components\ActiveRecordModel ...@@ -156,17 +162,18 @@ class Passing extends \common\components\ActiveRecordModel
public function getTime() public function getTime()
{ {
if($this->pass_date_start && $this->pass_date) if($this->start_date && $this->end_date)
{ {
return (strtotime($this->pass_date) - strtotime($this->pass_date_start)); return (strtotime($this->end_date) - strtotime($this->start_date));
} }
else else
{ {
$timeSummary = 0; $time = 0;
foreach ($this->questions as $q) { foreach ($this->questions as $q)
$timeSummary += $q->answer_time; {
$time += $q->answer_time;
} }
return $timeSummary; return $time;
} }
} }
...@@ -175,4 +182,18 @@ class Passing extends \common\components\ActiveRecordModel ...@@ -175,4 +182,18 @@ class Passing extends \common\components\ActiveRecordModel
$cases = array (2, 0, 1, 1, 1, 2); $cases = array (2, 0, 1, 1, 1, 2);
return $number." ".$titles[ ($number%100 > 4 && $number %100 < 20) ? 2 : $cases[min($number%10, 5)] ]; return $number." ".$titles[ ($number%100 > 4 && $number %100 < 20) ? 2 : $cases[min($number%10, 5)] ];
} }
public function recountPassResult()
{
if ($this->percent >= $this->test->pass_percent)
{
$this->passed = self::PASSED;
}
else
{
$this->passed = self::FAILED;
}
return true;
}
} }
...@@ -169,7 +169,7 @@ class Question extends \common\components\ActiveRecordModel ...@@ -169,7 +169,7 @@ class Question extends \common\components\ActiveRecordModel
break; break;
case self::USER_ANSWER: case self::USER_ANSWER:
$models = $query->one(); $model = $query->one();
if ($model) if ($model)
{ {
$answer = trim(preg_replace('/\s+/', ' ', $model->text)); $answer = trim(preg_replace('/\s+/', ' ', $model->text));
......
...@@ -46,17 +46,15 @@ class QuestionPassing extends \common\components\ActiveRecordModel ...@@ -46,17 +46,15 @@ class QuestionPassing extends \common\components\ActiveRecordModel
{ {
return [ return [
[['passing_id', 'question_id'], 'required'], [['passing_id', 'question_id'], 'required'],
[['passing_id', 'answer_time'], 'integer'], [['passing_id', 'question_id', 'answer_time'], 'integer'],
[['question_id'], 'string', 'max' => 11],
[['user_answer'], 'string', 'max' => 3000], [['user_answer'], 'string', 'max' => 3000],
// array('id, passing_id, question_id, user_answer, answer_time', 'safe', 'on' => 'search'),
]; ];
} }
public function attributeLabels() public function attributeLabels()
{ {
return [ return [
'question_id' => 'Наименование вопроса', 'question_id' => 'Вопрос',
'user_answer' => 'Ответ пользователя', 'user_answer' => 'Ответ пользователя',
'answer_time' => 'Время прохождения, секунд', 'answer_time' => 'Время прохождения, секунд',
'create_date' => 'Дата создания', 'create_date' => 'Дата создания',
...@@ -72,7 +70,7 @@ class QuestionPassing extends \common\components\ActiveRecordModel ...@@ -72,7 +70,7 @@ class QuestionPassing extends \common\components\ActiveRecordModel
public function getPassing() public function getPassing()
{ {
return $this->hasOne(Passing::className(), ['passing_id' => 'id']); return $this->hasOne(Passing::className(), ['id' => 'passing_id']);
} }
public function search($passing = null) public function search($passing = null)
......
...@@ -15,7 +15,6 @@ use common\modules\testings\models\Mistake; ...@@ -15,7 +15,6 @@ use common\modules\testings\models\Mistake;
class SearchPassing extends Passing class SearchPassing extends Passing
{ {
public $filter_user_email; public $filter_user_email;
public $filter_user_company_name;
public $filter_user_last_name; public $filter_user_last_name;
/** /**
...@@ -24,8 +23,8 @@ class SearchPassing extends Passing ...@@ -24,8 +23,8 @@ class SearchPassing extends Passing
public function rules() public function rules()
{ {
return [ return [
[['id', 'user_id', 'test_id', 'is_passed'], 'integer'], [['id', 'user_id', 'test_id', 'status'], 'integer'],
[['id', 'user_id', 'test_id', 'is_passed', 'pass_date', 'filter_user_email', 'filter_user_company_name', 'filter_user_last_name'], 'safe'], [['id', 'user_id', 'test_id', 'status', 'end_date', 'filter_user_email', 'filter_user_last_name'], 'safe'],
]; ];
} }
...@@ -53,7 +52,7 @@ class SearchPassing extends Passing ...@@ -53,7 +52,7 @@ class SearchPassing extends Passing
'query' => $query, 'query' => $query,
'pagination' => ['pageSize' => self::PAGE_SIZE], 'pagination' => ['pageSize' => self::PAGE_SIZE],
'sort' => [ 'sort' => [
'defaultOrder'=>'create_date DESC', 'defaultOrder'=>'start_date DESC',
], ],
]); ]);
...@@ -80,7 +79,7 @@ class SearchPassing extends Passing ...@@ -80,7 +79,7 @@ class SearchPassing extends Passing
'id' => $this->id, 'id' => $this->id,
'user_id' => $this->user_id, 'user_id' => $this->user_id,
'test_id' => $this->test_id, 'test_id' => $this->test_id,
'create_date' => $this->create_date, 'start_date' => $this->start_date,
Test::tableName() . '.session_id' => Yii::$app->request->get('session'), Test::tableName() . '.session_id' => Yii::$app->request->get('session'),
]); ]);
...@@ -90,12 +89,6 @@ class SearchPassing extends Passing ...@@ -90,12 +89,6 @@ class SearchPassing extends Passing
$query->andFilterWhere(['like', User::tableName() . '.email', $this->filter_user_email]); $query->andFilterWhere(['like', User::tableName() . '.email', $this->filter_user_email]);
} }
if($this->filter_user_company_name)
{
$with['user'] = true;
$query->andFilterWhere(['like', User::tableName() . '.company_name', $this->filter_user_company_name]);
}
if($this->filter_user_last_name) if($this->filter_user_last_name)
{ {
$with['user'] = true; $with['user'] = true;
...@@ -104,35 +97,35 @@ class SearchPassing extends Passing ...@@ -104,35 +97,35 @@ class SearchPassing extends Passing
// $tpassing = Yii::app()->request->getQuery('Passing'); // $tpassing = Yii::app()->request->getQuery('Passing');
// $pass_date = 'CONCAT( RIGHT( LEFT( pass_date, 10 ) , 4 ) , "-", TRIM( // $end_date = 'CONCAT( RIGHT( LEFT( end_date, 10 ) , 4 ) , "-", TRIM(
// TRAILING CONCAT( ".", SUBSTRING_INDEX( LEFT( pass_date, 10 ) , ".", -1 ) ) // TRAILING CONCAT( ".", SUBSTRING_INDEX( LEFT( end_date, 10 ) , ".", -1 ) )
// FROM TRIM( // FROM TRIM(
// LEADING CONCAT( SUBSTRING_INDEX( LEFT( pass_date, 10 ) , ".", 1 ) , "." ) // LEADING CONCAT( SUBSTRING_INDEX( LEFT( end_date, 10 ) , ".", 1 ) , "." )
// FROM LEFT( pass_date, 10 ) ) ) , "-", LEFT( pass_date, 2 ) )'; // FROM LEFT( end_date, 10 ) ) ) , "-", LEFT( end_date, 2 ) )';
// if (($tpassing['pass_date']) && (Yii::app()->request->getQuery('date_to'))) { // if (($tpassing['end_date']) && (Yii::app()->request->getQuery('date_to'))) {
// $criteria->addCondition($pass_date.' BETWEEN "'.$tpassing['pass_date'].'" AND "'.Yii::app()->request->getQuery('date_to').'"'); // $criteria->addCondition($end_date.' BETWEEN "'.$tpassing['end_date'].'" AND "'.Yii::app()->request->getQuery('date_to').'"');
// } // }
// elseif(Yii::app()->request->getQuery('date_to')) { // elseif(Yii::app()->request->getQuery('date_to')) {
// $criteria->addCondition($pass_date.' < "'.Yii::app()->request->getQuery('date_to').'"'); // $criteria->addCondition($end_date.' < "'.Yii::app()->request->getQuery('date_to').'"');
// } // }
// elseif($tpassing['pass_date']) { // elseif($tpassing['end_date']) {
// $criteria->addCondition($pass_date.' > "'.Yii::app()->request->getQuery('pass_date').'"'); // $criteria->addCondition($end_date.' > "'.Yii::app()->request->getQuery('end_date').'"');
// } // }
// switch ($this->is_passed) // switch ($this->status)
// { // {
// case Passing::AUTH: // case Passing::AUTH:
// $with['user'] = true; // $with['user'] = true;
// $query->andFilterWhere(['>', 'ser.create_date', '2014-06-05 00:00:00']); // $query->andFilterWhere(['>', 'ser.start_date', '2014-06-05 00:00:00']);
// $query->andFilterWhere([User::tableName() . '.is_auth' => 0]); // $query->andFilterWhere([User::tableName() . '.is_auth' => 0]);
// break; // break;
// case Passing::STARTED: // case Passing::STARTED:
// $query->andFilterWhere([ // $query->andFilterWhere([
// 'is_passed' => 0, // 'status' => 0,
// 'pass_date' => null, // 'end_date' => null,
// Mistake::tableName() . '.passing_id' => null // Mistake::tableName() . '.passing_id' => null
// ]); // ]);
// break; // break;
...@@ -145,7 +138,7 @@ class SearchPassing extends Passing ...@@ -145,7 +138,7 @@ class SearchPassing extends Passing
// case Passing::PASSED: // case Passing::PASSED:
// $with['mistake'] = true; // $with['mistake'] = true;
// $query->andFilterWhere([ // $query->andFilterWhere([
// 'is_passed' => 1, // 'status' => 1,
// Mistake::tableName() . '.passing_id' => null // Mistake::tableName() . '.passing_id' => null
// ]); // ]);
// break; // break;
...@@ -153,16 +146,16 @@ class SearchPassing extends Passing ...@@ -153,16 +146,16 @@ class SearchPassing extends Passing
// case Passing::FAILED: // case Passing::FAILED:
// $with['mistake'] = true; // $with['mistake'] = true;
// $query->andFilterWhere([ // $query->andFilterWhere([
// 'is_passed' => 0, // 'status' => 0,
// Mistake::tableName() . '.passing_id' => null // Mistake::tableName() . '.passing_id' => null
// ]); // ]);
// $query->andFilterWhere(['not', 'pass_date', null]); // $query->andFilterWhere(['not', 'end_date', null]);
// break; // break;
// case Passing::NOT_STARTED: // case Passing::NOT_STARTED:
// $with['mistake'] = true; // $with['mistake'] = true;
// $query->andFilterWhere([ // $query->andFilterWhere([
// 'is_passed' => null, // 'status' => null,
// Mistake::tableName() . '.passing_id' => null // Mistake::tableName() . '.passing_id' => null
// ]); // ]);
// break; // break;
...@@ -183,7 +176,7 @@ class SearchPassing extends Passing ...@@ -183,7 +176,7 @@ class SearchPassing extends Passing
{ {
$query = $this->query(Yii::$app->request->queryParams); $query = $this->query(Yii::$app->request->queryParams);
$query->andWhere(['is_passed' => 1]); $query->andWhere(['status' => 1]);
return $query->count(); return $query->count();
} }
...@@ -192,7 +185,7 @@ class SearchPassing extends Passing ...@@ -192,7 +185,7 @@ class SearchPassing extends Passing
{ {
$query = $this->query(Yii::$app->request->queryParams); $query = $this->query(Yii::$app->request->queryParams);
$query->andWhere(['is_passed' => 0]); $query->andWhere(['status' => 0]);
return $query->count(); return $query->count();
} }
...@@ -201,7 +194,7 @@ class SearchPassing extends Passing ...@@ -201,7 +194,7 @@ class SearchPassing extends Passing
{ {
$query = $this->query(Yii::$app->request->queryParams); $query = $this->query(Yii::$app->request->queryParams);
$query->andWhere(['is_passed' => 2]); $query->andWhere(['status' => 2]);
return $query->count(); return $query->count();
} }
...@@ -210,7 +203,7 @@ class SearchPassing extends Passing ...@@ -210,7 +203,7 @@ class SearchPassing extends Passing
{ {
$query = $this->query(Yii::$app->request->queryParams); $query = $this->query(Yii::$app->request->queryParams);
$query->andWhere(['is_passed' => null]); $query->andWhere(['status' => null]);
return $query->count(); return $query->count();
} }
......
...@@ -106,7 +106,7 @@ class Session extends \common\components\ActiveRecordModel ...@@ -106,7 +106,7 @@ class Session extends \common\components\ActiveRecordModel
$query->andWhere([ $query->andWhere([
Test::tableName() . '.session_id' => $this->id, Test::tableName() . '.session_id' => $this->id,
'is_passed' => Passing::PASSED, 'status' => Passing::PASSED,
]); ]);
$query->groupBy(['user_id', 'test_id']); $query->groupBy(['user_id', 'test_id']);
......
<?php
/*
$this->tabs = array(
'добавить' => $this->createUrl('create')
);
*/
$this->widget('AdminGrid', array(
'id' => 'testing-mistake-grid',
'dataProvider' => $model->search(),
'filter' => $model,
'columns' => array(
array('name' => 'passing_id'),
array('name' => 'description'),
array(
'name' => 'is_expert_agreed',
'value' => 'TestingMistake::$state_list[$data->is_expert_agreed]',
),
array('name' => 'create_date'),
array(
'class' => 'CButtonColumn',
),
),
));
<?php
echo $form;
\ No newline at end of file
<?php
use yii\helpers\Html;
use yii\widgets\DetailView;
use common\modules\testings\models\Mistake;
/* @var $this yii\web\View */
?>
<div class="faq-view">
<p>
<?= Html::a(Yii::t('content', 'Update'), ['update', 'passing' => $model->passing_id], ['class' => 'btn btn-primary']) ?>
</p>
<?= DetailView::widget([
'model' => $model,
'attributes' => [
'description',
[
'attribute' => 'is_expert_agreed',
'value' => Mistake::$state_list[$model->is_expert_agreed],
],
'create_date',
],
]) ?>
</div>
<?php
// if ($model->files) {
// $this->widget('fileManager.portlets.FileList', array(
// 'model' => $model,
// 'tag' => 'files',
// 'tagName' => 'div',
// 'htmlOptions' => array(
// 'class' => 'file-list',
// 'style' => 'margin: 20px 10px 0 10px;'
// ),
// ));
// }
\ No newline at end of file
...@@ -62,14 +62,6 @@ use common\modules\testings\models\Passing; ...@@ -62,14 +62,6 @@ use common\modules\testings\models\Passing;
return Html::a($model->user->email, "mailto:" . $model->user->email); return Html::a($model->user->email, "mailto:" . $model->user->email);
} }
], ],
[
'attribute' => 'filter_user_company_name',
'format' => 'html',
'value' => function($model)
{
return $model->user->company_name;
}
],
[ [
'attribute' => 'test_id', 'attribute' => 'test_id',
'format' => 'html', 'format' => 'html',
...@@ -80,7 +72,7 @@ use common\modules\testings\models\Passing; ...@@ -80,7 +72,7 @@ use common\modules\testings\models\Passing;
} }
], ],
[ [
'attribute' => 'is_passed', 'attribute' => 'status',
'format' => 'html', 'format' => 'html',
'filter' => Passing::$state_list, 'filter' => Passing::$state_list,
'value' => function($model) 'value' => function($model)
...@@ -88,46 +80,16 @@ use common\modules\testings\models\Passing; ...@@ -88,46 +80,16 @@ use common\modules\testings\models\Passing;
return Html::tag("span", Passing::$state_list[$model->status], ["class" => "STATE" . $model->status]); return Html::tag("span", Passing::$state_list[$model->status], ["class" => "STATE" . $model->status]);
} }
], ],
'pass_date', [
[ 'attribute' => 'passed',
'header' => 'Ответственный менеджер',
'format' => 'html',
'value' => function($model)
{
if($model->user && $model->user->manager)
{
return Html::a($model->user->manager->name, ["/users/user-admin/view", "id" => $model->user->manager->id]);
}
else
{
return "Пользователь удалён";
}
}
],
[
'header' => 'Загрузить сообщение об ошибке',
'format' => 'html', 'format' => 'html',
'filter' => false, 'filter' => Passing::$passed_list,
'value' => function($model) 'value' => function($model)
{ {
if($model->is_passed !== null) return Html::tag("span", Passing::$passed_list[$model->passed], ["class" => "STATE" . $model->passed]);
{
if($model->mistake)
{
$text = "Сведения " . $model->mistake->create_date;
}
else
{
$text = "Загрузить";
}
return Html::a($text, ["/testings/passing-admin/mistake", "id" => $model->id]);
}
else
{
return "";
}
} }
], ],
'end_date',
[ [
'class' => 'common\components\ColorActionColumn', 'class' => 'common\components\ColorActionColumn',
'template' => '{view} {delete}', 'template' => '{view} {delete}',
......
...@@ -66,14 +66,6 @@ use \common\components\zii\AdminGrid; ...@@ -66,14 +66,6 @@ use \common\components\zii\AdminGrid;
return Html::a("Список групп", ["/testings/user-admin/manage-group", "session" => $model->id]); return Html::a("Список групп", ["/testings/user-admin/manage-group", "session" => $model->id]);
}, },
], ],
[
'header' => 'Список пользователей',
'format' => 'html',
'value' => function($model)
{
// return Html::a("Список пользователей", ["/testings/user-admin/manage", "session" => $model->id]);
},
],
[ [
'header' => 'Список прохождений', 'header' => 'Список прохождений',
'format' => 'html', 'format' => 'html',
...@@ -82,14 +74,6 @@ use \common\components\zii\AdminGrid; ...@@ -82,14 +74,6 @@ use \common\components\zii\AdminGrid;
return Html::a("Список прохождений", ["/testings/passing-admin/manage", "session" => $model->id]); return Html::a("Список прохождений", ["/testings/passing-admin/manage", "session" => $model->id]);
}, },
], ],
// [
// 'header' => 'Статистика прохождений',
// 'format' => 'html',
// 'value' => function($model)
// {
// return Html::a("Статистика прохождений", ["/testings/passing-admin/statistics", "session" => $model->id]);
// },
// ],
[ [
'class' => 'common\components\ColorActionColumn', 'class' => 'common\components\ColorActionColumn',
'template' => '{view} {update}', 'template' => '{view} {update}',
......
<?php <?php
use yii\helpers\Html; use yii\helpers\Html;
use yii\widgets\ActiveForm;
use common\models\Settings;
?> ?>
...@@ -19,46 +22,34 @@ use yii\helpers\Html; ...@@ -19,46 +22,34 @@ use yii\helpers\Html;
<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="successfully_title">Тестирование не завершено.</h1> <h1 class="successfully_title">Тестирование не завершено.</h1>
<h6>Для переназначения теста позвоните в службу поддержки по телефону +7 903 961-42-29</h6> <h6>Для переназначения теста позвоните в службу поддержки по телефону <?=Settings::getValue('content-phone');?></h6>
</div> </div>
</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="error_fedback clearfix"> <div class="error_fedback clearfix">
<h6>Обратная связь</h6> <h6>Обратная связь</h6>
<?php $form = ActiveForm::begin([
'id' => 'error-testing-form',
'action' => ['/testing/send-not-attempt/'.$model->id]
])?>
<?=Html::textArea('message', '', ['placeholder' => 'Введите сообщение'])?>
<?=Html::submitButton('Отправить', [
'class' => 'error_fedback_btn'
])?>
<?=Html::beginForm();?> <?php ActiveForm::end()?>
<h6>Обратная связь</h6>
<?=Html::textArea('message', '', ['placeholder' => 'Введите сообщение']);?>
<?=Html::ajaxSubmitButton(
'Отправить',
Url::to(['/testings/testingTest/sendNotAttempt', 'id' => $model->id]),
[
'dataType' => 'json',
'success' => 'js:function(data){
if(data.success)
{
console.log("+");
$(".error_fedback").html("<div class=\"row\"><div class=\"col-sm-8\" style=\"margin:0 auto;float:none;\"><div class=\"gray_box\"><p>" + data.message + "</p></div></div></div>");
}
}'
],
[
'class' => 'error_fedback_btn'
]
);?>
<div class="clear"></div>
<?=Html::endForm();?>
</div> </div>
</div> </div>
</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="list_back"> <div class="list_back">
<a href="/testings/test/index">Вернуться к списку тестов <span>↑</span></a> <a href="#">Вернуться к списку тестов <span></span></a>
</div> </div>
</div> </div>
</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="read_box_wr"> <div class="read_box_wr">
......
<?php
$this->page_title = $model->test->session->name;
$this->crumbs = array(
'Тестирование' => array('/testings/testingTest/index'),
$model->test->name => false,
);
?>
<?php if (Yii::app()->user->hasFlash('flash')) : ?>
<div class="message"><span>
<?php echo Yii::app()->user->getFlash('flash'); ?>
</span></div>
<?php endif; ?>
<div class="row">
<div class="col-sm-12">
<div class="not_passed_text">
<?=Setting::getValue('text_pass_not_time');?>
</div>
</div>
</div>
<div class="test_parameters not_passed_test">
<div class="row">
<div class="col-sm-6">
<h6>Тест пройден на:</h6>
<h5><?php echo $model->percent; ?>%</h5>
</div>
<div class="col-sm-6">
<h6>Прохождение теста у Вас заняло:</h6>
<?php
$minutesText = TestingPassing::declOfNum(floor($model->time / 60), array(' минута ', ' минуты ', ' минут '));
$secondsText = TestingPassing::declOfNum($model->time % 60, array(' секунда', ' секунды', ' секунд'));
?>
<h5><?=$minutesText?><?=$secondsText?></h5>
</div>
</div>
<br>
</div>
<?php if($model->gammas && !$model->test->mix) : ?>
<div class="row">
<div class="col-sm-12">
<div class="statistics_test_wr">
<ul class="statistics_test">
<?php foreach ($model->gammas as $gamma) : ?>
<li><span><?php echo $model->gammaPercent($gamma->id); ?>%</span><?php echo $gamma->name; ?> (<?php echo TestingGamma::$type_list[$gamma->type]; ?>)</li>
<?php endforeach; ?>
</ul>
</div>
</div>
</div>
<?php endif; ?>
<div class="row">
<div class="col-sm-12">
<div class="list_back">
<a href="/testings/testingTest/index">Вернуться к списку тестов <span></span></a>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-12">
<div class="green_wr not_passed_test_progress">
<div class="green_box">
<div class="progress_ins">
<span class="col_text">Вопрос <strong class="green_text"><?=$model->test->questions?></strong> из <strong class="green_text"><?=$model->test->questions?></strong></span>
<div class="progress_wr">
<div class="progress">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100" style="width: 100%">
<span class="sr-only">100% Complete (success)</span>
</div>
</div>
</div>
<div class="progress_done">
Выполнено 100%
</div>
</div>
<div class="time_progress">
<p>Затраченное время:</p>
<span><?=date("H:i:s", mktime(0, 0, $model->time));?></span>
</div>
<div class="clear"></div>
</div>
</div>
</div>
</div>
<br>
\ No newline at end of file
This diff is collapsed.
<?php
use common\modules\testings\models\Passing;
?>
<section class="top_line_testing"> <section class="top_line_testing">
<div class="container"> <div class="container">
<div class="row"> <div class="row">
...@@ -12,10 +18,10 @@ ...@@ -12,10 +18,10 @@
<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">
<?php if ($model->is_passed == TestingPassing::PASSED) : ?> <?php if ($model->passed == Passing::PASSED) : ?>
<h1 class="successfully_title">Поздравляем, Вы сдали тест</h1> <h1 class="successfully_title">Поздравляем, Вы сдали тест</h1>
<div class="successfully_subtitle">Тестирование завершено</div> <div class="successfully_subtitle">Тестирование завершено</div>
<?php elseif ($model->is_passed == TestingPassing::FAILED) : ?> <?php elseif ($model->passed == Passing::FAILED) : ?>
<h1 class="successfully_title">Тест не сдан!</h1> <h1 class="successfully_title">Тест не сдан!</h1>
<div class="successfully_subtitle">Тестирование завершено</div> <div class="successfully_subtitle">Тестирование завершено</div>
<?php endif; ?> <?php endif; ?>
...@@ -61,4 +67,6 @@ ...@@ -61,4 +67,6 @@
</div> </div>
</div> </div>
</div> </div>
</section> </section>
\ No newline at end of file
<?php echo $this->render('@app/views/layouts/footer-testing'); ?>
\ No newline at end of file
<?php
use yii\helpers\Url;
use common\modules\testings\widgets\NotCloseTabsWidget;
use common\modules\testings\models\Question;
?>
<?php
$questions = [];
$count = 0;
foreach ($model->questions as $question)
{
$count++;
$pictures = [];
foreach ($question->question->files as $file)
{
$pictures[] = $file->url;
}
$answers = [];
// если ответ вводит сам пользователь, нельзя отправлять ответ - поскольку в нём указан верный ответ.
foreach ($question->question->answers as $answer)
{
if ($question->question->type <> Question::USER_ANSWER)
{
$answers[] = $answer->text;
}
else
{
$answers[] = 'тут должен быть ответ';
}
}
$questions[$count] = [
'id' => $question->question->id,
'text' => $question->question->text,
'type' => $question->question->type,
'pictures' => $pictures,
'answers' => $answers,
'userAnswer' => '',
'time' => 0,
'theme' => $question->question->theme->name,
];
}
?>
<script type="text/javascript">
$(function(){
countDown.init({
continue: <?=($model->start_date?'true':'false')?>,
startDate: '<?=date("d F Y H:i:s", strtotime($model->start_date))?>',
startDateTime: <?=strtotime($model->start_date)?>,
minutes: <?=$model->test->minutes;?>,
time: <?=time()?>
});
tester.init({
global_id: <?=$current_answer?>,
one_option: <?=Question::ONE_OPTION?>,
few_options: <?=Question::FEW_OPTIONS?>,
user_answer: <?=Question::USER_ANSWER?>,
delimiter: '<?=Question::DELIMITER?>',
questions_count: <?=count($questions)?>,
questions: <?=\yii\helpers\Json::encode($questions)?>,
answerUrl: '<?=Url::to(["/testing/set-answer/".$model->id])?>',
finishUrl: '<?=Url::to(["/testing/finish-test/".$model->id])?>',
passUrl: '<?=Url::to(["/testing/pass/".$model->id])?>'
});
$('#answerBox').on('change','*',tester.answersChangeStatus);
});
</script>
<section class="top_line_testing">
<div class="container">
<div class="row">
<div class="col-md-12 col-xs-12 col-sm-12">
<strong>Тест: </strong>
<p><?=$model->test->name?> | <span id="questionThemeBox"></span></p>
</div>
</div>
</div>
</section>
<section class="testing_block">
<div class="container">
<?= NotCloseTabsWidget::widget() ?>
<br>
<div class="row">
<div class="col-md-1 col-xs-1 col-sm-2">
<span class="testing_num questionNumber"></span>
</div>
<div class="col-md-11 col-xs-11 col-sm-10">
<h1 class="testing_block_title" id="questionTextBox"></h1>
</div>
</div>
<div class="row">
<div class="col-md-4 col-xs-4 col-sm-12">
<div class="number_questions_img_box" id="questionPictureBox"></div>
</div>
</div>
<div class="row">
<div class="col-md-12 col-xs-12 col-sm-12">
<form class="testing_form">
<div class="questions" id="answerBox"></div>
<div class="answer" id="sendInfoBox"></div>
<button id="clickNext" class="testing_form_btn" onClick="tester.nextQuestion(); return false;">Подтвердить ответ</button>
</form>
</div>
</div>
<div class="row col-md-12 col-xs-12 col-sm-12">
<h4 class="testing_info_foot" id="messageStep50"></h4>
<h4 class="testing_info_foot" id="messageStep75"></h4>
<h4 class="testing_info_foot" id="messageStep100"></h4>
</div>
</div>
</section>
<section class="testing_foot">
<div class="container">
<div class="row">
<div class="test_ft clearfix">
<div class="col-md-6 col-xs-8 col-sm-12">
<div class="testing_votes">Вопрос <strong class="questionNumber">1</strong> из <strong><?=count($questions)?></strong></div>
<div class="testing_progress"><div class="testing_progress_proc" id="progressbar" style="width:0%;"></div></div>
</div>
<div class="col-md-6 col-xs-4 col-sm-12">
<div class="testing_time">До конца осталось: <span id="countdown_timer"></span></div>
</div>
</div>
</div>
</div>
</section>
<?php echo $this->render('@app/views/layouts/footer-testing'); ?>
\ No newline at end of file
...@@ -10,7 +10,7 @@ class NotCloseTabsWidget extends Widget ...@@ -10,7 +10,7 @@ class NotCloseTabsWidget extends Widget
public function run() public function run()
{ {
return $this->render('NotCloseTabsWidget', [ return $this->render('NotCloseTabsWidget', [
'message' => Settings::getValue('not_close_tabs_message'); 'message' => Settings::getValue('not_close_tabs_message')
]); ]);
} }
} }
......
<?php
use yii\db\Schema;
use yii\db\Migration;
class m160225_043622_fix_passing_table extends Migration
{
// Use safeUp/safeDown to run migration code within a transaction
public function safeUp()
{
$this->alterColumn('testings_passings', 'attempt', Schema::TYPE_INTEGER . '(3) NOT NULL DEFAULT 0');
$this->addColumn('testings_passings', 'percent', Schema::TYPE_INTEGER . '(11) NOT NULL DEFAULT 0 AFTER points');
$this->addColumn('testings_passings', 'passed', Schema::TYPE_INTEGER . '(1) NOT NULL DEFAULT 0 AFTER status');
$this->dropTable('testings_mistakes');
}
public function safeDown()
{
$this->alterColumn('testings_passings', 'attempt', Schema::TYPE_INTEGER . '(3) NOT NULL');
$this->dropColumn('testings_passings', 'percent');
$this->dropColumn('testings_passings', 'passed');
$this->createTable('testings_mistakes', [
'id' => Schema::TYPE_PK,
'passing_id' => Schema::TYPE_INTEGER . '(11) NOT NULL',
'description' => Schema::TYPE_STRING . '(3000) NOT NULL',
'is_expert_agreed' => 'tinyint(1) NOT NULL',
'create_date' => Schema::TYPE_TIMESTAMP . ' NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP',
]);
}
}
...@@ -27,27 +27,33 @@ use common\modules\bids\models\Bid; ...@@ -27,27 +27,33 @@ use common\modules\bids\models\Bid;
], ],
]); ?> ]); ?>
<?php echo Html::hiddenInput('scenario', $model->scenario, ['class' => 'not_clear']); ?> <div class="message-box callback send_secce">Ваша заявка отправлена, мы вам перезвоним.</div>
<?php echo $form->field($model, 'form', ['template' => '{input}'])->hiddenInput(['class' => 'not_clear']); ?> <div class="content">
<?php echo $form->field($model, 'name', [ <?php echo Html::hiddenInput('scenario', $model->scenario, ['class' => 'not_clear']); ?>
'template' => '<div class="row"><div class="col-sm-4">{input}</div></div>',
'errorOptions' => [] <?php echo $form->field($model, 'form', ['template' => '{input}'])->hiddenInput(['class' => 'not_clear']); ?>
])->textInput([
'placeholder' => 'Ваше имя', <?php echo $form->field($model, 'name', [
'class' => 'input_st' 'template' => '<div class="row"><div class="col-sm-4">{input}</div></div>',
])->label(false); ?> 'errorOptions' => []
])->textInput([
<?php echo $form->field($model, 'phone', [ 'placeholder' => 'Ваше имя',
'template' => '<div class="row"><div class="col-sm-4">{input}</div></div>', 'class' => 'input_st'
'errorOptions' => [] ])->label(false); ?>
])->textInput([
'placeholder' => 'Ваш телефон', <?php echo $form->field($model, 'phone', [
'class' => 'input_st' 'template' => '<div class="row"><div class="col-sm-4">{input}</div></div>',
])->label(false); ?> 'errorOptions' => []
])->textInput([
<?php echo Html::submitButton('Заказать звонок', ['class' => 'save-button popup_bt_send']); ?> 'placeholder' => 'Ваш телефон',
'class' => 'input_st'
])->label(false); ?>
<?php echo Html::submitButton('Заказать звонок', ['class' => 'save-button popup_bt_send']); ?>
</div>
<?php ActiveForm::end(); ?> <?php ActiveForm::end(); ?>
</div> </div>
......
...@@ -58,18 +58,24 @@ $more = CoContent::find() ...@@ -58,18 +58,24 @@ $more = CoContent::find()
], ],
]); ?> ]); ?>
<?php echo Html::hiddenInput('scenario', $model->scenario, ['class' => 'not_clear']); ?> <div class="message-box send_secce">Теперь вы подписаны на обновления кейсов.</div>
<?php echo $form->field($model, 'form', ['template' => '{input}'])->hiddenInput(['class' => 'not_clear']); ?> <div class="content">
<?php echo $form->field($model, 'email', [ <?php echo Html::hiddenInput('scenario', $model->scenario, ['class' => 'not_clear']); ?>
'template' => '<div class="row"><div class="col-sm-4">{input}</div></div>',
'errorOptions' => []
])->textInput([
'placeholder' => 'E-mail*'
]); ?>
<?php echo Html::submitButton('Подписаться', ['class' => 'save-button']); ?> <?php echo $form->field($model, 'form', ['template' => '{input}'])->hiddenInput(['class' => 'not_clear']); ?>
<?php echo $form->field($model, 'email', [
'template' => '<div class="row"><div class="col-sm-4">{input}</div></div>',
'errorOptions' => []
])->textInput([
'placeholder' => 'E-mail*'
]); ?>
<?php echo Html::submitButton('Подписаться', ['class' => 'save-button']); ?>
</div>
<?php ActiveForm::end(); ?> <?php ActiveForm::end(); ?>
</div> </div>
......
...@@ -25,22 +25,26 @@ use common\modules\bids\models\Bid; ...@@ -25,22 +25,26 @@ use common\modules\bids\models\Bid;
], ],
]); ?> ]); ?>
<?php echo Html::hiddenInput('scenario', $model->scenario, ['class' => 'not_clear']); ?> <div class="message-box send_secce">Теперь вы подписаны на обновления кейсов.</div>
<?php echo $form->field($model, 'form', ['template' => '{input}'])->hiddenInput(['class' => 'not_clear']); ?> <div class="content">
<?php echo $form->field($model, 'email', [ <?php echo Html::hiddenInput('scenario', $model->scenario, ['class' => 'not_clear']); ?>
'template' => '<div class="row"><div class="col-sm-4">{input}</div></div>',
'errorOptions' => [] <?php echo $form->field($model, 'form', ['template' => '{input}'])->hiddenInput(['class' => 'not_clear']); ?>
])->textInput([
'placeholder' => 'E-mail*' <?php echo $form->field($model, 'email', [
]); ?> 'template' => '<div class="row"><div class="col-sm-4">{input}</div></div>',
'errorOptions' => []
])->textInput([
'placeholder' => 'E-mail*'
]); ?>
<?php echo Html::submitButton('Подписаться', ['class' => 'save-button']); ?>
<?php echo Html::submitButton('Подписаться', ['class' => 'save-button']); ?> </div>
<?php ActiveForm::end(); ?> <?php ActiveForm::end(); ?>
<div class="send_secce" style="display:none;">Вы успешно подписались на обновление раздела «Кейсы». Нам приятно, что вы следите за нашим развитием :-)</div>
</div> </div>
</div> </div>
</div> </div>
\ No newline at end of file
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
<?php $this->registerJsFile('/js/modernizr.min.js', ['position' => yii\web\View::POS_END ]);?> <?php $this->registerJsFile('/js/modernizr.min.js', ['position' => yii\web\View::POS_END ]);?>
<?php $this->registerJsFile('/js/libs/bootstrap/js/bootstrap.min.js', ['position' => yii\web\View::POS_END ]);?> <?php $this->registerJsFile('/js/libs/bootstrap/js/bootstrap.js', ['position' => yii\web\View::POS_END ]);?>
<?php $this->registerJsFile('/js/libs/waypoints/waypoints.min.js', ['position' => yii\web\View::POS_END ]);?> <?php $this->registerJsFile('/js/libs/waypoints/waypoints.min.js', ['position' => yii\web\View::POS_END ]);?>
<?php $this->registerJsFile('/js/libs/magnific/jquery.magnific-popup.min.js', ['position' => yii\web\View::POS_END ]);?> <?php $this->registerJsFile('/js/libs/magnific/jquery.magnific-popup.min.js', ['position' => yii\web\View::POS_END ]);?>
<?php $this->registerJsFile('/js/libs/bxslider/jquery.bxslider.min.js', ['position' => yii\web\View::POS_END ]);?> <?php $this->registerJsFile('/js/libs/bxslider/jquery.bxslider.min.js', ['position' => yii\web\View::POS_END ]);?>
......
...@@ -37,55 +37,61 @@ FileUploadBundle::register($this); ...@@ -37,55 +37,61 @@ FileUploadBundle::register($this);
'data-tag' => Bid::TAG_TREATMENT 'data-tag' => Bid::TAG_TREATMENT
], ],
]); ?> ]); ?>
<?php echo Html::hiddenInput('scenario', $model->scenario, ['class' => 'not_clear']); ?>
<?php echo $form->field($model, 'form', ['template' => '{input}'])->hiddenInput(['class' => 'not_clear']); ?>
<?php echo $form->field($model, 'name', [
'template' => '<div class="row"><div class="col-sm-4">{input}</div></div>',
'errorOptions' => []
])->textInput([
'placeholder' => 'Ваше имя',
'class' => 'footer_form__input'
]); ?>
<?php echo $form->field($model, 'phone', [
'template' => '<div class="row"><div class="col-sm-4">{input}</div></div>',
'errorOptions' => []
])->textInput([
'placeholder' => 'Телефон',
'class' => 'footer_form__input'
]); ?>
<?php echo $form->field($model, 'email', [ <div class="message-box send_secce">Ваша заявка на проект успешно отправлена!</div>
'template' => '<div class="row"><div class="col-sm-4">{input}</div></div>',
'errorOptions' => [] <div class="content">
])->textInput([
'placeholder' => 'E-mail*',
'class' => 'footer_form__input'
]); ?>
<?php echo $form->field($model, 'text')->textArea([
'placeholder' => 'Опишите в двух словах ваш проект',
'class' => 'footer_form__textarea'
])->label(false); ?>
<div class="file-upload_block dropzone" id="block_upload"> <?php echo Html::hiddenInput('scenario', $model->scenario, ['class' => 'not_clear']); ?>
<div class="file_upload_bt">
<div class="file-upload"> <?php echo $form->field($model, 'form', ['template' => '{input}'])->hiddenInput(['class' => 'not_clear']); ?>
<label>
<span>Выбрать файл</span> <?php echo $form->field($model, 'name', [
</label> 'template' => '<div class="row"><div class="col-sm-4">{input}</div></div>',
'errorOptions' => []
])->textInput([
'placeholder' => 'Ваше имя',
'class' => 'footer_form__input'
]); ?>
<?php echo $form->field($model, 'phone', [
'template' => '<div class="row"><div class="col-sm-4">{input}</div></div>',
'errorOptions' => []
])->textInput([
'placeholder' => 'Телефон',
'class' => 'footer_form__input'
]); ?>
<?php echo $form->field($model, 'email', [
'template' => '<div class="row"><div class="col-sm-4">{input}</div></div>',
'errorOptions' => []
])->textInput([
'placeholder' => 'E-mail*',
'class' => 'footer_form__input'
]); ?>
<?php echo $form->field($model, 'text')->textArea([
'placeholder' => 'Опишите в двух словах ваш проект',
'class' => 'footer_form__textarea'
])->label(false); ?>
<div class="file-upload_block dropzone" id="block_upload">
<div class="file_upload_bt">
<div class="file-upload">
<label>
<span>Выбрать файл</span>
</label>
</div>
<!--<input type="text" id="filename" class="filename" disabled>-->
<div class="file_drop">Перетащите файл в данную область<br/> или выберите файл с компьютера</div>
</div> </div>
<!--<input type="text" id="filename" class="filename" disabled>-->
<div class="file_drop">Перетащите файл в данную область<br/> или выберите файл с компьютера</div>
</div> </div>
<div id="files-zone">
</div>
<?php echo Html::submitButton('Рассчитать проект', ['class' => 'btn-default save-button']); ?>
</div> </div>
<div id="files-zone">
</div>
<?php echo Html::submitButton('Рассчитать проект', ['class' => 'btn-default save-button']); ?>
<?php ActiveForm::end(); ?> <?php ActiveForm::end(); ?>
</div> </div>
......
...@@ -100,46 +100,52 @@ FileUploadBundle::register($this); ...@@ -100,46 +100,52 @@ FileUploadBundle::register($this);
], ],
]); ?> ]); ?>
<?php echo Html::hiddenInput('scenario', $model->scenario, ['class' => 'not_clear']); ?> <div class="message-box send_secce">Ваша заявка отправлена, мы вам перезвоним.</div>
<?php echo $form->field($model, 'form', ['template' => '{input}'])->hiddenInput(['class' => 'not_clear']); ?> <div class="content">
<?php echo $form->field($model, 'name', [ <?php echo Html::hiddenInput('scenario', $model->scenario, ['class' => 'not_clear']); ?>
'template' => '<div class="row"><div class="col-sm-4">{input}</div></div>',
'errorOptions' => [] <?php echo $form->field($model, 'form', ['template' => '{input}'])->hiddenInput(['class' => 'not_clear']); ?>
])->textInput([
'placeholder' => 'Ваше имя', <?php echo $form->field($model, 'name', [
'class' => 'sect_cont_form__input' 'template' => '<div class="row"><div class="col-sm-4">{input}</div></div>',
]); ?> 'errorOptions' => []
])->textInput([
<?php echo $form->field($model, 'phone', [ 'placeholder' => 'Ваше имя',
'template' => '<div class="row"><div class="col-sm-4">{input}</div></div>', 'class' => 'sect_cont_form__input'
'errorOptions' => [] ]); ?>
])->textInput([
'placeholder' => 'Телефон*', <?php echo $form->field($model, 'phone', [
'class' => 'sect_cont_form__input' 'template' => '<div class="row"><div class="col-sm-4">{input}</div></div>',
]); ?> 'errorOptions' => []
])->textInput([
<?php echo $form->field($model, 'text')->textArea([ 'placeholder' => 'Телефон*',
'placeholder' => 'Опишите в двух словах ваш проект', 'class' => 'sect_cont_form__input'
'class' => 'sect_cont_form__textarea' ]); ?>
])->label(false); ?>
<?php echo $form->field($model, 'text')->textArea([
<div class="file-upload_block_cs dropzone" id="block_upload"> 'placeholder' => 'Опишите в двух словах ваш проект',
<div class="file_upload_bt_cs"> 'class' => 'sect_cont_form__textarea'
<div class="file-upload_cs"> ])->label(false); ?>
<label>
<span>Выбрать файл</span> <div class="file-upload_block_cs dropzone" id="block_upload">
</label> <div class="file_upload_bt_cs">
<div class="file-upload_cs">
<label>
<span>Выбрать файл</span>
</label>
</div>
<div class="file_drop_cs">Перетащите файл в данную область<br/> или выберите файл с компьютера</div>
</div> </div>
<div class="file_drop_cs">Перетащите файл в данную область<br/> или выберите файл с компьютера</div>
</div> </div>
</div> <div id="files-zone">
<div id="files-zone">
</div>
<?php echo Html::submitButton('Отправить', ['class' => 'btn-default save-button']); ?>
</div> </div>
<?php echo Html::submitButton('Отправить', ['class' => 'btn-default save-button']); ?>
<?php ActiveForm::end(); ?> <?php ActiveForm::end(); ?>
</div> </div>
......
...@@ -48,6 +48,13 @@ section .container ol:not([class]) li { ...@@ -48,6 +48,13 @@ section .container ol:not([class]) li {
section.reviews-block .row { section.reviews-block .row {
margin-bottom: 50px; margin-bottom: 50px;
} }
.input_bg {
padding: 6px 10px 13px;
line-height: 18px;
}
.input_bg label {
padding: 6px 0px 0px 35px !important;
}
a.login_form_link, a.login_form_popup_link, a.reg_popup_link, a.reg_form_link{ a.login_form_link, a.login_form_popup_link, a.reg_popup_link, a.reg_form_link{
margin-top: 20px; margin-top: 20px;
display: block; display: block;
...@@ -187,7 +194,31 @@ a.toggle_bottom:hover .icon-arrowDown2:after, a.toggle_bottom:active .icon-arrow ...@@ -187,7 +194,31 @@ a.toggle_bottom:hover .icon-arrowDown2:after, a.toggle_bottom:active .icon-arrow
margin: 0 auto; margin: 0 auto;
display: none; display: none;
} }
.article_short_txt img {
margin-top: 0;
}
.article_short_tags {
margin-bottom: 14px;
}
.bids-form .message-box {
position: absolute;
z-index: 110;
text-align: center;
width: 480px;
left: 50%;
top: 50%;
margin: -11px 0 0 -240px;
display: none;
line-height: 30px;
}
.bids-form .message-box.callback {
width: 300px;
margin-left: -150px;
margin-top: 20px;
}
.subsc_blog_form {
position: relative;
}
/* ------------ BLOG MODAL ------------------ */ /* ------------ BLOG MODAL ------------------ */
......
...@@ -36,8 +36,18 @@ $('form.bids-form').on('beforeSubmit', function(e) { ...@@ -36,8 +36,18 @@ $('form.bids-form').on('beforeSubmit', function(e) {
if(response.success) if(response.success)
{ {
if(form.find('.message-box').length > 0)
{
form.find('.message-box').fadeIn('fast');
form.find('.content').css('visibility','hidden');
setTimeout(function(){
form.find('.message-box').fadeOut('fast');
form.find('.content').css('visibility','visible');
}, 2000);
}
form.find('input:not(.not_clear), textarea').val(''); form.find('input:not(.not_clear), textarea').val('');
$('.send_secce').show();
form.find('#files-zone').html(''); form.find('#files-zone').html('');
$('.dz-preview.dz-processing').remove(); $('.dz-preview.dz-processing').remove();
......
...@@ -53,4 +53,22 @@ $(document).ready(function() { ...@@ -53,4 +53,22 @@ $(document).ready(function() {
}, 1000 * 60 * 5); }, 1000 * 60 * 5);
$('form#error-testing-form').on('beforeSubmit', function(e) {
$.ajax({
url: $('form#error-testing-form').attr('action'),
method: 'POST',
dataType: 'json',
data: {
message: $('[name="message"]').val()
},
success: function(response){
if(response.success)
{
$(".error_fedback").html('<div class="row"><div class="col-sm-8" style="margin:0 auto;float:none;"><div class="gray_box"><p>' + response.message + '</p></div></div></div>');
}
}
});
}).on('submit', function(e){
return false;
});
}); });
\ No newline at end of file
This diff is collapsed.
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