diff --git a/frontend/config/main.php b/frontend/config/main.php index 46edc31..20c8701 100755 --- a/frontend/config/main.php +++ b/frontend/config/main.php @@ -180,7 +180,7 @@ 'formId' => 'question-form', 'scenario' => 'question', 'successCallback' => 'function (data) { - document.getElementById("comment-form").reset(); + document.getElementById("question-form").reset(); var data = $("#question-form").data(\'yiiActiveForm\'); $("#question-form").find(".submit-close-c-a span").click(); $("#question-form").parent().parent().parent().find(".service-c-a-btns").after("

Спасибо за Вваш вопрос. Мы обязательно на него ответим

") diff --git a/frontend/controllers/SiteController.php b/frontend/controllers/SiteController.php index f93d27b..26f722c 100755 --- a/frontend/controllers/SiteController.php +++ b/frontend/controllers/SiteController.php @@ -4,10 +4,12 @@ use artbox\core\models\Feedback; use common\models\Comment; use common\models\Package; + use common\models\Question; use common\models\Service; use common\models\Settings; use common\models\slider\Slide; use Yii; + use yii\data\ActiveDataProvider; use yii\db\ActiveQuery; use yii\db\Expression; use yii\filters\VerbFilter; @@ -217,4 +219,37 @@ public function actionPage6(){ return $this->render('page6'); } + + public function actionQuestions($service_id = null){ + + if (\Yii::$app->request->isAjax){ + Yii::$app->response->format = Response::FORMAT_JSON; + $model = new Question(); + $model->scenario = Question::SCENARIO_QUESTION; + if ($model->load(\Yii::$app->request->post()) and $model->save()){ + return [ + 'status' => true, + 'message' => 'Спасибо за Ваш вопрос' + ]; + }else{ + return [ + 'status' => false, + 'message' => 'Ошибка' + ]; + } + } + $dataProvider = new ActiveDataProvider([ + 'query' => Question::find()->where(['status' => true])->andFilterWhere(['service_id' => $service_id]), + 'pagination' => [ + 'pageSize' => 10, + ], + ]); + $services = Service::find()->where(['status' => true])->andWhere(['parent_id' => null])->all(); + + return $this->render('questions', [ + 'dataProvider' => $dataProvider, + 'services' => $services, + 'service_id' => $service_id + ]); + } } diff --git a/frontend/views/service/_prices.php b/frontend/views/service/_prices.php index 899013a..2e6baa6 100644 --- a/frontend/views/service/_prices.php +++ b/frontend/views/service/_prices.php @@ -20,4 +20,7 @@ +
+ Записаться на прием +
diff --git a/frontend/views/site/_question.php b/frontend/views/site/_question.php new file mode 100644 index 0000000..b6cabc7 --- /dev/null +++ b/frontend/views/site/_question.php @@ -0,0 +1,22 @@ + +
+
name?>
+
question?>
+
+ created_at)?>

отделение: + service_id != null) {?> + service->title?>

+ +
+
+
врач-гинеколог Алексей нестеренко
+
+ answer?> +
+
+
diff --git a/frontend/views/site/questions.php b/frontend/views/site/questions.php new file mode 100644 index 0000000..dd285a4 --- /dev/null +++ b/frontend/views/site/questions.php @@ -0,0 +1,107 @@ +params[ 'breadcrumbs'][] = \Yii::t('app', 'Вопрос-ответ'); + + $model = new Question(['service_id' => $service_id]); + $model->scenario = Question::SCENARIO_QUESTION; + + $data = ['' => 'Общие вопросы'] + ArrayHelper::map($services, 'id', 'title'); + ?> + + +
+
+
+
+

Вопрос-Ответ

+
+
+
+
+
+ Задать вопрос +
+ +
+
+ +
+
+
+ [ + ], + 'layout' => '{items}', + 'dataProvider' => $dataProvider, + 'itemView' => '_question' + ] + );?> + + + + + +
+
+
+
+
diff --git a/frontend/web/js/script.js b/frontend/web/js/script.js index 222e24e..83938a7 100644 --- a/frontend/web/js/script.js +++ b/frontend/web/js/script.js @@ -425,12 +425,26 @@ $(document).ready(function() { } - $('nav').addClass('hide_') - $('body').addClass('start-preloader') + $('nav').addClass('hide_'); + $('body').addClass('start-preloader'); + $(document).on('submit', '#total_question_form', function(e) { + e.preventDefault(); + var form = $(this); + var url = form.attr('action'); + $.post( + $(this).attr("action"), $(this).serialize(), function(data) { + document.getElementById("total_question-form").reset(); + form.find('.submit-close-c-a').click(); + $(".add-answer-forms").after("

"+data.message+"

"); + var dat = form.data('yiiActiveForm'); + dat.validate = false; + }).fail(function(){ + }); + }); }); diff --git a/frontend/widgets/FrontendPager.php b/frontend/widgets/FrontendPager.php new file mode 100644 index 0000000..6b658f0 --- /dev/null +++ b/frontend/widgets/FrontendPager.php @@ -0,0 +1,149 @@ +pagination->getPageCount(); + if ($pageCount < 2 && $this->hideOnSinglePage) { + return ''; + } + + $buttons = []; + $currentPage = $this->pagination->getPage(); + + // first page + + // prev page + if ($this->prevPageLabel !== false) { + if (( $page = $currentPage - 1 ) < 0) { + $page = 0; + } + $buttons[] = $this->renderPageButton( + $this->prevPageLabel, + $page, + $this->prevPageCssClass, + $currentPage <= 0, + false + ); + } + $firstPageLabel = '1'; + list($beginPage, $endPage) = $this->getPageRange(); + if ($beginPage !== 0) { + $buttons[] = $this->renderPageButton( + $firstPageLabel, + 0, + $this->firstPageCssClass, + $currentPage <= 0, + false + ); + } + + // internal pages + + for ($i = $beginPage; $i <= $endPage; ++$i) { + $buttons[] = $this->renderPageButton( + $i + 1, + $i, + null, + $this->disableCurrentPageButton && $i == $currentPage, + $i == $currentPage + ); + } + // last page + $lastPageLabel = $this->lastPageLabel === true ? $pageCount : $this->lastPageLabel; + if ($lastPageLabel !== false and $endPage !== $pageCount - 1) { + if ($endPage + 1 < $pageCount - 1 and $this->dots) { + $buttons[] = $this->renderPageButton('...', $endPage + 1, $this->dotsClass, true, false); + } + if ($lastPageLabel == 'last_number') { + $lastPageLabel = $pageCount; + } + $buttons[] = $this->renderPageButton( + $lastPageLabel, + $pageCount - 1, + $this->lastPageCssClass, + $currentPage >= $pageCount - 1, + false + ); + } + // next page + if ($this->nextPageLabel !== false) { + if (( $page = $currentPage + 1 ) >= $pageCount - 1) { + $page = $pageCount - 1; + } + $buttons[] = $this->renderPageButton( + $this->nextPageLabel, + $page, + $this->nextPageCssClass, + $currentPage >= $pageCount - 1, + false + ); + } + return Html::tag('ul', implode("\n", $buttons), $this->options); + } + + protected function renderPageButton($label, $page, $class, $disabled, $active) + { + $options = [ 'class' => empty($class) ? $this->pageCssClass : $class ]; + if ($active) { + Html::addCssClass($options, $this->activePageCssClass); + } + if ($disabled) { + Html::addCssClass($options, $this->disabledPageCssClass); + $tag = ArrayHelper::remove($this->disabledListItemSubTagOptions, 'tag', 'span'); + + return Html::tag('li', Html::tag($tag, $label, $this->disabledListItemSubTagOptions), $options); + } + $linkOptions = $this->linkOptions; + $linkOptions[ 'data-page' ] = $page; + if ($page == 0 and !$active) { + $link = stristr($this->pagination->createUrl(0), '?', true); + /** + * @var \artbox\catalog\models\Filter $filter + */ + $filter = \Yii::$app->get('filter')->filterObj; + if (key_exists($link, $filter->getReplacedFilters())) { + $link = $filter->getReplacedFilters()[ $link ]; + } + return Html::tag( + 'li', + Html::a($label, $link, $linkOptions), + $options + ); + } + if ($active) { + return Html::tag('li', Html::a($label, null, $linkOptions), $options); + } else { + return Html::tag('li', Html::a($label, $this->pagination->createUrl($page), $linkOptions), $options); + } + + } + + } \ No newline at end of file -- libgit2 0.21.4