Commit 68e726516f98676897e110db1face144d6d4d143

Authored by Anastasia
1 parent a8b692cf

- blog

- edit comments
backend/views/comment/_form.php
@@ -30,9 +30,11 @@ JS; @@ -30,9 +30,11 @@ JS;
30 30
31 <?php $form = ActiveForm::begin(); ?> 31 <?php $form = ActiveForm::begin(); ?>
32 32
33 - <?=$form->field($model, 'service_id')->dropDownList($services, [  
34 - 'class' => 'select_service'  
35 - ])?> 33 + <?php
  34 + if ($model->entityObject !== null){
  35 + $model->entityObject->language->title;
  36 + }
  37 + ?>
36 <?= $form->field($model, 'name') 38 <?= $form->field($model, 'name')
37 ->textInput([ 'maxlength' => true ]) ?> 39 ->textInput([ 'maxlength' => true ]) ?>
38 40
common/models/Comment.php
@@ -47,7 +47,7 @@ @@ -47,7 +47,7 @@
47 { 47 {
48 return [ 48 return [
49 [ 49 [
50 - [ 'comment' ], 50 + [ 'comment', 'entity' ],
51 'string', 51 'string',
52 ], 52 ],
53 [ 53 [
@@ -59,7 +59,7 @@ @@ -59,7 +59,7 @@
59 ], 59 ],
60 [ 60 [
61 [ 61 [
62 - 'service_id', 62 + 'entity_id',
63 'created_at', 63 'created_at',
64 'updated_at', 64 'updated_at',
65 ], 65 ],
@@ -68,7 +68,7 @@ @@ -68,7 +68,7 @@
68 ], 68 ],
69 [ 69 [
70 [ 70 [
71 - 'service_id', 71 + 'entity_id',
72 'created_at', 72 'created_at',
73 'updated_at', 73 'updated_at',
74 ], 74 ],
@@ -111,4 +111,11 @@ @@ -111,4 +111,11 @@
111 'updated_at' => Yii::t('app', 'Updated At'), 111 'updated_at' => Yii::t('app', 'Updated At'),
112 ]; 112 ];
113 } 113 }
  114 +
  115 + public function getEntityObject(){
  116 + if ($this->entity !== null){
  117 + return $this->hasOne($this->entity, ['id' => 'entity_id']);
  118 + }
  119 + return null;
  120 + }
114 } 121 }
common/models/Service.php
@@ -155,7 +155,7 @@ class Service extends ActiveRecord @@ -155,7 +155,7 @@ class Service extends ActiveRecord
155 } 155 }
156 156
157 public function getComments(){ 157 public function getComments(){
158 - return $this->hasMany(Comment::className(), ['service_id' => 'id']); 158 + return $this->hasMany(Comment::className(), ['entity_id' => 'id'])->andWhere(['entity' => Service::className()]);
159 } 159 }
160 160
161 public function getQuestions(){ 161 public function getQuestions(){
common/models/blog/Article.php
@@ -4,7 +4,7 @@ @@ -4,7 +4,7 @@
4 4
5 use artbox\core\models\Image; 5 use artbox\core\models\Image;
6 use artbox\core\models\traits\AliasableTrait; 6 use artbox\core\models\traits\AliasableTrait;
7 - use artbox\webcomment\models\CommentModel; 7 + use common\models\Comment;
8 use yii\behaviors\TimestampBehavior; 8 use yii\behaviors\TimestampBehavior;
9 use yii\db\ActiveRecord; 9 use yii\db\ActiveRecord;
10 use artbox\core\models\Language; 10 use artbox\core\models\Language;
@@ -107,6 +107,7 @@ @@ -107,6 +107,7 @@
107 'sort', 107 'sort',
108 'author_id', 108 'author_id',
109 'image_id', 109 'image_id',
  110 + 'views'
110 ], 111 ],
111 'integer', 112 'integer',
112 ], 113 ],
@@ -262,4 +263,8 @@ @@ -262,4 +263,8 @@
262 return $this->hasMany(Tag::className(), [ 'id' => 'blog_tag_id' ]) 263 return $this->hasMany(Tag::className(), [ 'id' => 'blog_tag_id' ])
263 ->viaTable('blog_article_to_tag', [ 'blog_article_id' => 'id' ]); 264 ->viaTable('blog_article_to_tag', [ 'blog_article_id' => 'id' ]);
264 } 265 }
  266 +
  267 + public function getComments(){
  268 + return $this->hasMany(Comment::className(), ['entity_id' => 'id'])->andWhere(['entity' => Article::className()]);
  269 + }
265 } 270 }
console/migrations/m180605_072337_alter_table_comment.php 0 → 100644
  1 +<?php
  2 +
  3 +use yii\db\Migration;
  4 +
  5 +/**
  6 + * Class m180605_072337_alter_table_comment
  7 + */
  8 +class m180605_072337_alter_table_comment extends Migration
  9 +{
  10 + /**
  11 + * {@inheritdoc}
  12 + */
  13 + public function safeUp()
  14 + {
  15 + $this->dropColumn('comment', 'service_id');
  16 + $this->addColumn('comment', 'entity', $this->string());
  17 + $this->addColumn('comment', 'entity_id', $this->integer());
  18 + }
  19 +
  20 + /**
  21 + * {@inheritdoc}
  22 + */
  23 + public function safeDown()
  24 + {
  25 + echo "m180605_072337_alter_table_comment cannot be reverted.\n";
  26 +
  27 + return false;
  28 + }
  29 +
  30 + /*
  31 + // Use up()/down() to run migration code without a transaction.
  32 + public function up()
  33 + {
  34 +
  35 + }
  36 +
  37 + public function down()
  38 + {
  39 + echo "m180605_072337_alter_table_comment cannot be reverted.\n";
  40 +
  41 + return false;
  42 + }
  43 + */
  44 +}
console/migrations/m180605_082938_alter_table_article.php 0 → 100644
  1 +<?php
  2 +
  3 +use yii\db\Migration;
  4 +
  5 +/**
  6 + * Class m180605_082938_alter_table_article
  7 + */
  8 +class m180605_082938_alter_table_article extends Migration
  9 +{
  10 + /**
  11 + * {@inheritdoc}
  12 + */
  13 + public function safeUp()
  14 + {
  15 + $this->addColumn('blog_article', 'views', $this->integer()->defaultValue(0));
  16 + }
  17 +
  18 + /**
  19 + * {@inheritdoc}
  20 + */
  21 + public function safeDown()
  22 + {
  23 + $this->dropColumn('blog_article', 'views');
  24 + }
  25 +
  26 + /*
  27 + // Use up()/down() to run migration code without a transaction.
  28 + public function up()
  29 + {
  30 +
  31 + }
  32 +
  33 + public function down()
  34 + {
  35 + echo "m180605_082938_alter_table_article cannot be reverted.\n";
  36 +
  37 + return false;
  38 + }
  39 + */
  40 +}
frontend/config/main.php
@@ -87,7 +87,8 @@ @@ -87,7 +87,8 @@
87 'name', 87 'name',
88 'email', 88 'email',
89 'comment', 89 'comment',
90 - 'service_id' 90 + 'entity_id',
  91 + 'entity'
91 ], 92 ],
92 'rules' => [ 93 'rules' => [
93 [ 94 [
@@ -102,7 +103,8 @@ @@ -102,7 +103,8 @@
102 'name' => 'ФИО', 103 'name' => 'ФИО',
103 'email' => 'Email', 104 'email' => 'Email',
104 'comment' => 'Ваш отзыв', 105 'comment' => 'Ваш отзыв',
105 - 'service_id' => false 106 + 'entity_id' => false,
  107 + 'entity' => false
106 ], 108 ],
107 109
108 'inputOptions' => [ 110 'inputOptions' => [
frontend/controllers/BlogController.php
@@ -6,6 +6,8 @@ @@ -6,6 +6,8 @@
6 use common\models\blog\Category; 6 use common\models\blog\Category;
7 use common\models\blog\Tag; 7 use common\models\blog\Tag;
8 use yii\data\ActiveDataProvider; 8 use yii\data\ActiveDataProvider;
  9 + use yii\db\ActiveQuery;
  10 + use yii\helpers\ArrayHelper;
9 use yii\web\Controller; 11 use yii\web\Controller;
10 use yii\web\NotFoundHttpException; 12 use yii\web\NotFoundHttpException;
11 13
@@ -16,16 +18,8 @@ @@ -16,16 +18,8 @@
16 */ 18 */
17 class BlogController extends Controller 19 class BlogController extends Controller
18 { 20 {
19 - public function actionIndex($q = '') 21 + public function actionIndex()
20 { 22 {
21 - $tags = Tag::find()  
22 - ->with(  
23 - [  
24 - 'language',  
25 - ]  
26 - )  
27 - ->orderBy([ 'sort' => SORT_ASC ])  
28 - ->all();  
29 23
30 $categories = Category::find() 24 $categories = Category::find()
31 ->with( 25 ->with(
@@ -36,7 +30,7 @@ @@ -36,7 +30,7 @@
36 ->where(['status' => true]) 30 ->where(['status' => true])
37 ->orderBy([ 'sort' => SORT_ASC ]) 31 ->orderBy([ 'sort' => SORT_ASC ])
38 ->all(); 32 ->all();
39 - 33 + $data = ArrayHelper::map($categories, 'id', 'language.title');
40 $dataProvider = new ActiveDataProvider( 34 $dataProvider = new ActiveDataProvider(
41 [ 35 [
42 'query' => Article::find() 36 'query' => Article::find()
@@ -50,19 +44,14 @@ @@ -50,19 +44,14 @@
50 'categories.language', 44 'categories.language',
51 ] 45 ]
52 46
53 - ) 47 + )->with(['comments' => function (ActiveQuery $query){
  48 + $query->andWhere(['status' => true]);
  49 + }])
54 ->joinWith('language') 50 ->joinWith('language')
55 ->where([ 'blog_article.status' => true ]) 51 ->where([ 'blog_article.status' => true ])
56 - ->andFilterWhere(  
57 - [  
58 - 'ilike',  
59 - 'blog_article_lang.title',  
60 - $q,  
61 - ]  
62 - )  
63 ->distinct(), 52 ->distinct(),
64 'pagination' => [ 53 'pagination' => [
65 - 'pageSize' => 3, 54 + 'pageSize' => 6,
66 ], 55 ],
67 ] 56 ]
68 ); 57 );
@@ -70,28 +59,29 @@ @@ -70,28 +59,29 @@
70 return $this->render( 59 return $this->render(
71 'index', 60 'index',
72 [ 61 [
73 - 'tags' => $tags,  
74 - 'categories' => $categories, 62 + 'categories' => $data,
75 'dataProvider' => $dataProvider, 63 'dataProvider' => $dataProvider,
76 ] 64 ]
77 ); 65 );
78 } 66 }
79 67
80 - public function actionView() 68 + public function actionView($id)
81 { 69 {
82 -// $model = $this->findModel($id);  
83 -//  
84 -// $tags = Tag::find()  
85 -// ->with([ 'language' ])  
86 -// ->orderBy([ 'sort' => SORT_ASC ])  
87 -// ->all();  
88 -// 70 + $model = $this->findModel($id);
  71 + $model->views +=1;
  72 + $model->save();
  73 +
  74 + $tags = Tag::find()
  75 + ->with([ 'language' ])
  76 + ->orderBy([ 'sort' => SORT_ASC ])
  77 + ->all();
  78 +
89 return $this->render( 79 return $this->render(
90 - 'view'  
91 -// [  
92 -// 'tags' => $tags,  
93 -// 'model' => $model,  
94 -// ] 80 + 'view',
  81 + [
  82 + 'tags' => $tags,
  83 + 'model' => $model,
  84 + ]
95 ); 85 );
96 } 86 }
97 87
frontend/controllers/SiteController.php
@@ -272,7 +272,7 @@ @@ -272,7 +272,7 @@
272 } 272 }
273 } 273 }
274 $dataProvider = new ActiveDataProvider([ 274 $dataProvider = new ActiveDataProvider([
275 - 'query' => Comment::find()->where(['status' => true])->andFilterWhere(['service_id' => $service_id]), 275 + 'query' => Comment::find()->where(['status' => true])->andWhere(['entity' => Service::className()])->andFilterWhere(['entity_id' => $service_id]),
276 'pagination' => [ 276 'pagination' => [
277 'pageSize' => 10, 277 'pageSize' => 10,
278 ], 278 ],
frontend/views/blog/_article.php
1 <?php 1 <?php
2 2
3 use artbox\core\helpers\ImageHelper; 3 use artbox\core\helpers\ImageHelper;
4 - use yii\bootstrap\Html;  
5 use artbox\core\helpers\Url; 4 use artbox\core\helpers\Url;
6 5
7 /** 6 /**
@@ -10,70 +9,29 @@ @@ -10,70 +9,29 @@
10 9
11 ?> 10 ?>
12 11
13 -<section class="post">  
14 - <div class="row">  
15 - <div class="col-xs-4 col-sm-4 col-md-4">  
16 - <div class="image">  
17 - <a href="<?= Url::to(  
18 - [  
19 - 'alias' => $model->alias  
20 - ]  
21 - ) ?>">  
22 - <?= ImageHelper::set($model->image ? $model->image->getPath() : '@frontend/web/img/no-image.png')  
23 - ->cropResize(263, 197)  
24 - ->renderImage(  
25 - [  
26 - 'class' => 'img-responsive',  
27 - 'alt' => $model->title,  
28 - ]  
29 - ) ?>  
30 - </a>  
31 - </div>  
32 - </div>  
33 - <div class="col-xs-8 col-sm-8 col-md-8">  
34 - <h2><a href="<?= Url::to(  
35 - [  
36 - 'alias' => $model->alias  
37 - ]  
38 - ) ?>"><?= $model->title; ?></a></h2>  
39 - <div class="clearfix">  
40 - <?php if (empty($model->categories)) { ?>  
41 - <p class="author-category">Без категории </p>  
42 - <?php } else {  
43 - $i = 0;  
44 - foreach ($model->categories as $category) {  
45 - $i++;  
46 - ?>  
47 - <p class="author-category">  
48 - <a href="<?=Url::to(['alias' => $category->alias])?>"><?=$category->title?></a>  
49 - <?php  
50 -  
51 - if ($i === count($model->categories)) {  
52 - echo '&#160';  
53 - } else {  
54 - echo '&#44&#160';  
55 - }  
56 - ?></p>  
57 - <?php  
58 - }  
59 - } ?>  
60 - <p class="date-comments">  
61 - <i class="fa fa-calendar-o"></i> <?= \Yii::$app->formatter->asDate($model->created_at); ?>  
62 - <!-- <a href="blog-post.html"><i class="fa fa-comment-o"></i> 8 комментариев</a>-->  
63 - </p>  
64 - </div>  
65 - <p class="intro"><?= $model->body_preview; ?></p>  
66 - <p class="read-more">  
67 - <?= Html::a(  
68 - 'Продолжить чтение',  
69 - [  
70 - '', 'alias' => $model->alias  
71 - ],  
72 - [  
73 - 'class' => 'btn btn-template-main',  
74 - ]  
75 - ) ?>  
76 - </p> 12 +<div class="blog-list-wr">
  13 + <div class="img-blog-list">
  14 + <a href="<?=Url::to(['alias' => $model->language->alias])?>">
  15 + <!--360x240-->
  16 + <?=ImageHelper::set(($model->image) ? $model->image->getPath() : null)
  17 + ->cropResize(360, 240)
  18 + ->quality(84)
  19 + ->renderImage()?>
  20 + </a>
  21 + </div>
  22 + <div class="blog-all-date-views">
  23 + <div class="blog-date"><?=date('d.m.Y', $model->created_at)?></div>
  24 + <div class="blog-views-comments-ico">
  25 + <div class="blog-comments-ico"><?=count($model->comments)?></div>
  26 + <div class="blog-views-ico"><?=$model->views?></div>
77 </div> 27 </div>
78 </div> 28 </div>
79 -</section> 29 + <div class="blog-list-link"><a href="<?=Url::to(['alias' => $model->language->alias])?>"><span><?=$model->body_preview?></span></a></div>
  30 + <?php if (!empty($model->tags)){?>
  31 + <div class="blog-list-tags">
  32 + <?php foreach ($model->tags as $tag){?>
  33 + <a href="<?=Url::to(['alias' => $tag->language->alias])?>"><?=$tag->title?></a>
  34 + <?php } ?>
  35 + </div>
  36 + <?php } ?>
  37 +</div>
frontend/views/blog/index.php
@@ -2,8 +2,9 @@ @@ -2,8 +2,9 @@
2 2
3 use artbox\core\components\SeoComponent; 3 use artbox\core\components\SeoComponent;
4 use yii\data\ActiveDataProvider; 4 use yii\data\ActiveDataProvider;
5 - use artbox\core\helpers\Url; 5 + use yii\helpers\Html;
6 use yii\web\View; 6 use yii\web\View;
  7 + use yii\widgets\ActiveForm;
7 use yii\widgets\ListView; 8 use yii\widgets\ListView;
8 9
9 /** 10 /**
@@ -49,169 +50,38 @@ @@ -49,169 +50,38 @@
49 <div class="row"> 50 <div class="row">
50 <div class="col-xs-12 col-sm-12 select-blog-col"> 51 <div class="col-xs-12 col-sm-12 select-blog-col">
51 <div class="select-blog"> 52 <div class="select-blog">
52 - <form action=""> 53 + <?php $form = ActiveForm::begin();?>
53 <div class="input-wr"> 54 <div class="input-wr">
54 - <select name="" id="">  
55 - <option value="">Все рубрики</option>  
56 - <option value="">Рубрика 2</option>  
57 - <option value="">Рубрика 3</option>  
58 - <option value="">Рубрика 4</option>  
59 - <option value="">Рубрика 5</option>  
60 - <option value="">Рубрика 6</option>  
61 - <option value="">Рубрика 7</option>  
62 - <option value="">Рубрика 8</option>  
63 - </select> 55 + <?=Html::dropDownList('categories', null, ['' => 'Все рубрики']+$categories)?>
64 </div> 56 </div>
65 - </form> 57 + <?php ActiveForm::end()?>
66 </div> 58 </div>
67 </div> 59 </div>
68 </div> 60 </div>
69 <div class="row blog-list-row"> 61 <div class="row blog-list-row">
70 - <div class="col-xs-12 col-sm-4 col-md-4 blog-list-col">  
71 - <div class="blog-list-wr">  
72 - <div class="img-blog-list">  
73 - <a href="#">  
74 - <!--360x240-->  
75 - <img src="/images/blog/blog-img-1.jpg" alt="">  
76 - </a>  
77 - </div>  
78 - <div class="blog-all-date-views">  
79 - <div class="blog-date">20.05.2018</div>  
80 - <div class="blog-views-comments-ico">  
81 - <div class="blog-comments-ico">246</div>  
82 - <div class="blog-views-ico">317</div>  
83 - </div>  
84 - </div>  
85 - <div class="blog-list-link"><a href="#"><span>Желающие забеременеть женщины должны заниматься спортом не менее 4 часов в неделю – ученые</span></a></div>  
86 - <div class="blog-list-tags">  
87 - <a href="#">гинекология</a>  
88 - <a href="#">роды</a>  
89 - <a href="#">беременность</a>  
90 - </div>  
91 - </div>  
92 - </div>  
93 - <div class="col-xs-12 col-sm-4 col-md-4 blog-list-col">  
94 - <div class="blog-list-wr">  
95 - <div class="img-blog-list">  
96 - <a href="#">  
97 - <img src="/images/blog/blog-img-2.jpg" alt="">  
98 - </a>  
99 - </div>  
100 - <div class="blog-all-date-views">  
101 - <div class="blog-date">20.05.2018</div>  
102 - <div class="blog-views-comments-ico">  
103 - <div class="blog-comments-ico">246</div>  
104 - <div class="blog-views-ico">317</div>  
105 - </div>  
106 - </div>  
107 - <div class="blog-list-link"><a href="#"><span>Ученые установили связь между насморком и женским оргазмом</span></a></div>  
108 - <div class="blog-list-tags">  
109 - <a href="#">гинекология</a>  
110 - <a href="#">роды</a>  
111 - <a href="#">беременность</a>  
112 - </div>  
113 - </div>  
114 - </div>  
115 - <div class="col-xs-12 col-sm-4 col-md-4 blog-list-col">  
116 - <div class="blog-list-wr">  
117 - <div class="img-blog-list">  
118 - <a href="#">  
119 - <img src="/images/blog/blog-img-3.jpg" alt="">  
120 - </a>  
121 - </div>  
122 - <div class="blog-all-date-views">  
123 - <div class="blog-date">20.05.2018</div>  
124 - <div class="blog-views-comments-ico">  
125 - <div class="blog-comments-ico">246</div>  
126 - <div class="blog-views-ico">317</div>  
127 - </div>  
128 - </div>  
129 - <div class="blog-list-link"><a href="#"><span>В грудном молоке содержится ещё один секрет</span></a></div>  
130 - <div class="blog-list-tags">  
131 - <a href="#">гинекология</a>  
132 - <a href="#">роды</a>  
133 - <a href="#">беременность</a>  
134 - </div>  
135 - </div>  
136 - </div>  
137 -  
138 - <div class="col-xs-12 col-sm-4 col-md-4 blog-list-col">  
139 - <div class="blog-list-wr">  
140 - <div class="img-blog-list">  
141 - <a href="#">  
142 - <img src="/images/blog/blog-img-1.jpg" alt="">  
143 - </a>  
144 - </div>  
145 - <div class="blog-all-date-views">  
146 - <div class="blog-date">20.05.2018</div>  
147 - <div class="blog-views-comments-ico">  
148 - <div class="blog-comments-ico">246</div>  
149 - <div class="blog-views-ico">317</div>  
150 - </div>  
151 - </div>  
152 - <div class="blog-list-link"><a href="#"><span>Диетологи: Финики помогут в борьбе с лишним весом</span></a></div>  
153 - <div class="blog-list-tags">  
154 - <a href="#">гинекология</a>  
155 - <a href="#">роды</a>  
156 - <a href="#">беременность</a>  
157 - </div>  
158 - </div>  
159 - </div>  
160 - <div class="col-xs-12 col-sm-4 col-md-4 blog-list-col">  
161 - <div class="blog-list-wr">  
162 - <div class="img-blog-list">  
163 - <a href="#">  
164 - <img src="/images/blog/blog-img-2.jpg" alt="">  
165 - </a>  
166 - </div>  
167 - <div class="blog-all-date-views">  
168 - <div class="blog-date">20.05.2018</div>  
169 - <div class="blog-views-comments-ico">  
170 - <div class="blog-comments-ico">246</div>  
171 - <div class="blog-views-ico">317</div>  
172 - </div>  
173 - </div>  
174 - <div class="blog-list-link"><a href="#"><span>Ученые установили связь между насморком и женским оргазмом</span></a></div>  
175 - <div class="blog-list-tags">  
176 - <a href="#">гинекология</a>  
177 - <a href="#">роды</a>  
178 - <a href="#">беременность</a>  
179 - </div>  
180 - </div>  
181 - </div>  
182 - <div class="col-xs-12 col-sm-4 col-md-4 blog-list-col">  
183 - <div class="blog-list-wr">  
184 - <div class="img-blog-list">  
185 - <a href="#">  
186 - <img src="/images/blog/blog-img-3.jpg" alt="">  
187 - </a>  
188 - </div>  
189 - <div class="blog-all-date-views">  
190 - <div class="blog-date">20.05.2018</div>  
191 - <div class="blog-views-comments-ico">  
192 - <div class="blog-comments-ico">246</div>  
193 - <div class="blog-views-ico">317</div>  
194 - </div>  
195 - </div>  
196 - <div class="blog-list-link"><a href="#"><span>В грудном молоке содержится ещё один секрет</span></a></div>  
197 - <div class="blog-list-tags">  
198 - <a href="#">гинекология</a>  
199 - <a href="#">роды</a>  
200 - <a href="#">беременность</a>  
201 - </div>  
202 - </div>  
203 - </div> 62 + <?= ListView::widget(
  63 + [
  64 + 'dataProvider' => $dataProvider,
  65 + 'itemView' => '_article',
  66 + 'options' => [
  67 + 'class' => 'col-xs-12 col-sm-4 col-md-4 blog-list-col',
  68 + ],
  69 + 'layout' => '{items}{pager}',
  70 + ]
  71 + ); ?>
204 72
205 <div class="col-xs-12 col-sm-12"> 73 <div class="col-xs-12 col-sm-12">
206 <div class="style navi-c-a"> 74 <div class="style navi-c-a">
207 - <ul class="pagination"><li class="prev disabled"><span>«</span></li>  
208 - <li class="active"><a data-page="0">1</a></li>  
209 - <li><a href="#" data-page="1">2</a></li>  
210 - <li><a href="#" data-page="1">3</a></li>  
211 - <li><a href="#" data-page="1">4</a></li>  
212 - <li><a href="#" data-page="1">5</a></li>  
213 - <li class="next"><a href="#" data-page="1">»</a></li>  
214 - </ul> 75 +
  76 + <?php echo \frontend\widgets\FrontendPager::widget(
  77 + [
  78 + 'pagination' => $dataProvider->pagination,
  79 + 'prevPageLabel' => 'previous',
  80 + 'nextPageLabel' => 'next',
  81 + 'maxButtonCount' => 5,
  82 + 'lastPageLabel' => 'last_number',
  83 + ]
  84 + );?>
215 </div> 85 </div>
216 </div> 86 </div>
217 </div> 87 </div>
frontend/views/blog/view.php
1 <?php 1 <?php
2 2
  3 + use artbox\core\helpers\ImageHelper;
3 use common\models\blog\Article; 4 use common\models\blog\Article;
4 use common\models\blog\Tag; 5 use common\models\blog\Tag;
5 - use frontend\widgets\BlogSearch;  
6 use artbox\core\helpers\Url; 6 use artbox\core\helpers\Url;
7 use yii\web\View; 7 use yii\web\View;
8 8
@@ -10,28 +10,39 @@ @@ -10,28 +10,39 @@
10 * @var View $this 10 * @var View $this
11 * @var Article $model 11 * @var Article $model
12 * @var Tag[] $tags 12 * @var Tag[] $tags
  13 + * @var \artbox\core\forms\Module $moduleComment
13 */ 14 */
14 -//  
15 -// $this->params[ 'breadcrumbs' ][] = [  
16 -// 'label' => \Yii::t('app', 'Блог'),  
17 -// 'url' => [ 'blog/index' ],  
18 -// ];  
19 -//  
20 -// $this->params[ 'breadcrumbs' ][] = $model->title;  
21 15
  16 + $this->params[ 'breadcrumbs' ][] = [
  17 + 'label' => \Yii::t('app', 'Блог'),
  18 + 'url' => [ 'blog/index' ],
  19 + ];
  20 +
  21 + $this->params[ 'breadcrumbs' ][] = $model->title;
  22 +
  23 + $moduleComment = \Yii::$app->getModule('comments');
  24 + $moduleComment->inputOptions = array_merge($moduleComment->inputOptions, ['entity_id' => [
  25 + 'type' => 'hiddenInput',
  26 + 'options' => ['value' => $model->id],
  27 + ],
  28 + 'entity' => [
  29 + 'type' => 'hiddenInput',
  30 + 'options' => ['value' => Article::className()],
  31 + ]]);
  32 +
  33 +
  34 + $moduleComment->buttonTemplate = '<div class="button-wr submit-close-wr-c-a">{button}</div>';
  35 +
  36 + $moduleComment->successCallback = 'function (data) {
  37 + document.getElementById("comment-form").reset();
  38 + var data = $("#comment-form").data(\'yiiActiveForm\');
  39 + $("#comment-form").find(".submit-close-c-a span").click();
  40 + $("#comment-form").find(".field-comment-comment").parent().after("<p>Ваш отзыв появиться после проверки модератором</p>")
  41 + data.validated = false;
  42 + }'
22 ?> 43 ?>
23 44
24 45
25 -<section class="section-breadcrumb">  
26 - <div class="container">  
27 - <div class="row">  
28 - <div class="col-xs-12 col-sm-12 breadcrumb-wrapp">  
29 - <!-- копия с сайта -->  
30 - <ul class="breadcrumb" itemscope="" itemtype=" http://schema.org/BreadcrumbList"><li itemprop="itemListElement" itemscope="" itemtype="http://schema.org/ListItem"><a href="/" itemprop="item"><span itemprop="name">Главная</span></a><meta itemprop="position" content="1"></li>  
31 - <li class="active" itemprop="itemListElement" itemscope="" itemtype="http://schema.org/ListItem"><span itemprop="name">Диетологи: Финики помогут в борьбе с лишним весом</span><link itemprop="item" content="№"><meta itemprop="position" content="2"></li></ul> </div>  
32 - </div>  
33 - </div>  
34 -</section>  
35 46
36 <section class="section-service-page section-package-page"> 47 <section class="section-service-page section-package-page">
37 <div class="container"> 48 <div class="container">
@@ -39,35 +50,31 @@ @@ -39,35 +50,31 @@
39 <div class="col-xs-12 col-sm-12"> 50 <div class="col-xs-12 col-sm-12">
40 <div class="row"> 51 <div class="row">
41 <div class="col-xs-12"> 52 <div class="col-xs-12">
42 - <h1 class="title-pages">Диетологи: Финики помогут в борьбе с лишним весом</h1> 53 + <h1 class="title-pages"><?=$model->title?></h1>
43 </div> 54 </div>
44 </div> 55 </div>
45 <div class="row"> 56 <div class="row">
46 <div class="col-xs-12 service-text-table-wrapp editor-text"> 57 <div class="col-xs-12 service-text-table-wrapp editor-text">
47 <!---555X370--> 58 <!---555X370-->
48 - <img class="blog-view-img" src="/images/blog/view-img.jpg" alt=""> 59 + <?=ImageHelper::set(($model->image) ? $model->image->getPath() : null)
  60 + ->cropResize(555, 370)
  61 + ->quality(84)
  62 + ->renderImage()?>
49 <div class="blog-view-date-all"> 63 <div class="blog-view-date-all">
50 - <span class="blog-view-date">20.05.2018</span>  
51 - <span class="blog-view-comments-ico">246</span>  
52 - <span class="blog-view-views-ico">317</span> 64 + <span class="blog-view-date"><?=date('d.m.Y', $model->created_at)?></span>
  65 + <span class="blog-view-comments-ico"><?=count($model->comments)?></span>
  66 + <span class="blog-view-views-ico"><?=$model->views?></span>
53 </div> 67 </div>
54 -  
55 -  
56 - <p>Женщины продолжают интересоваться тем, помогают ли финики бороться с лишним весом, и можно ли их употреблять в большом количестве при диете. Оказывается, что для насыщения организма достаточно съесть несколько плодов.</p>  
57 - <p>Данный продукт обладает довольно высокой калорийностью, благодаря чему они являются сытными и помогают быстро избавиться от ощущения голода.</p>  
58 - <p>В некоторых системных диетах финики вводят для снижения веса, как раз на основе этих плодов можно устраивать разгрузочный день. Этим фруктом можно перекусить, ведь преимущество заключается в том, что по итогу не тянет к сладкому, а в составе есть сахароза, которая в виде жира не откладывается, и сразу расходуется организмом.</p>  
59 - <p>Если применять финиковую диету несколько раз в месяц, это поможет вашему организму избавиться от лишней воды, и восстановит обмен веществ, а также ускорит метаболизм. Растительные волокна плода очищают кишечник от токсинов и шлаков. Диетологи считают нормой около десяти плодов в день, чего будет достаточно для восполнения недостатка полезных веществ.</p>  
60 - <p><br />Женщины продолжают интересоваться тем, помогают ли финики бороться с лишним весом, и можно ли их употреблять в большом количестве при диете. Оказывается, что для насыщения организма достаточно съесть несколько плодов.</p>  
61 - <p>Данный продукт обладает довольно высокой калорийностью, благодаря чему они являются сытными и помогают быстро избавиться от ощущения голода.</p>  
62 - <p>В некоторых системных диетах финики вводят для снижения веса, как раз на основе этих плодов можно устраивать разгрузочный день. Этим фруктом можно перекусить, ведь преимущество заключается в том, что по итогу не тянет к сладкому, а в составе есть сахароза, которая в виде жира не откладывается, и сразу расходуется организмом.</p>  
63 - <p>Если применять финиковую диету несколько раз в месяц, это поможет вашему организму избавиться от лишней воды, и восстановит обмен веществ, а также ускорит метаболизм. Растительные волокна плода очищают кишечник от токсинов и шлаков. Диетологи считают нормой около десяти плодов в день, чего будет достаточно для восполнения недостатка полезных веществ.</p> 68 + <?=$model->body?>
  69 + <?php if (!empty($model->tags)){?>
64 <div class="style tags-view-blog"> 70 <div class="style tags-view-blog">
65 <div class="blog-list-tags"> 71 <div class="blog-list-tags">
66 - <a href="#">гинекология</a>  
67 - <a href="#">роды</a>  
68 - <a href="#">беременность</a> 72 + <?php foreach ($model->tags as $tag){?>
  73 + <a href="<?=Url::to(['alias' => $tag->language->alias])?>"><?=$tag->title?></a>
  74 + <?php } ?>
69 </div> 75 </div>
70 </div> 76 </div>
  77 + <?php }?>
71 </div> 78 </div>
72 </div> 79 </div>
73 </div> 80 </div>
@@ -78,54 +85,30 @@ @@ -78,54 +85,30 @@
78 <section class="section-comments-blog"> 85 <section class="section-comments-blog">
79 <div class="container"> 86 <div class="container">
80 <div class="row"> 87 <div class="row">
  88 +
81 <div class="col-xs-12 col-sm-6"> 89 <div class="col-xs-12 col-sm-6">
  90 +
82 <div class="title-c-a">Отзывы</div> 91 <div class="title-c-a">Отзывы</div>
  92 + <?php if(!empty($model->comments)){?>
83 <div class="service-comments-wr style"> 93 <div class="service-comments-wr style">
  94 + <?php foreach ($model->comments as $comment){?>
84 <div class="service-comments style"> 95 <div class="service-comments style">
85 - <div class="style comments-h-autor">Мария</div>  
86 - <div class="style comments-h-text">Спасибо за профессиональное и качественное лечение. Медсестрам за проведенные процедуры. Результатом лечения довольна.</div>  
87 - <div class="style comments-h-date">20.05.2018</div>  
88 - </div>  
89 -  
90 - <div class="service-comments style">  
91 - <div class="style comments-h-autor">Наталья</div>  
92 - <div class="style comments-h-text">Спасибо за профессиональное и качественное лечение. Медсестрам за проведенные процедуры. Результатом лечения довольна.</div>  
93 - <div class="style comments-h-date">20.05.2018</div>  
94 - </div>  
95 -  
96 - <div class="service-comments style">  
97 - <div class="style comments-h-autor">Татьяна</div>  
98 - <div class="style comments-h-text">Спасибо за профессиональное и качественное лечение. Медсестрам за проведенные процедуры. Результатом лечения довольна.</div>  
99 - <div class="style comments-h-date">20.05.2018</div> 96 + <div class="style comments-h-autor"><?=$comment->name?></div>
  97 + <div class="style comments-h-text"><?=$comment->comment?></div>
  98 + <div class="style comments-h-date"><?=date('d.m.Y', $comment->created_at)?></div>
100 </div> 99 </div>
  100 + <?php } ?>
101 </div> 101 </div>
102 102
103 - <div class="style service-links-c-a"><a href="#">Все отзывы</a></div> 103 +<!-- <div class="style service-links-c-a"><a href="#">Все отзывы</a></div>-->
  104 + <?php } ?>
104 </div> 105 </div>
  106 +
105 <div class="col-xs-12 col-sm-6"> 107 <div class="col-xs-12 col-sm-6">
106 <div class="style blog-view-comments-form"> 108 <div class="style blog-view-comments-form">
107 <div class="style hidden-form-c-a"> 109 <div class="style hidden-form-c-a">
108 <div class="title-forms-c-a style">Оставить отзыв</div> 110 <div class="title-forms-c-a style">Оставить отзыв</div>
109 - <form action="">  
110 - <div class="input-wr required">  
111 - <label class="control-label" for="feedback-name">ФИО</label>  
112 - <input type="text">  
113 - </div>  
114 -  
115 - <div class="input-wr required">  
116 - <label class="control-label" for="feedback-name">Email</label>  
117 - <input type="text">  
118 - </div>  
119 -  
120 - <div class="input-wr">  
121 - <label class="control-label" for="feedback-name">Ваш отзыв</label>  
122 - <textarea name="" id="" cols="30" rows="10"></textarea>  
123 - </div>  
124 -  
125 - <div class="button-wr submit-close-wr-c-a">  
126 - <button type="submit">Оставить отзыв</button>  
127 - </div>  
128 - </form> 111 + <?=$moduleComment->renderForm($this)?>
129 </div> 112 </div>
130 </div> 113 </div>
131 </div> 114 </div>
frontend/views/service/view.php
@@ -17,10 +17,14 @@ @@ -17,10 +17,14 @@
17 $moduleComment = \Yii::$app->getModule('comments'); 17 $moduleComment = \Yii::$app->getModule('comments');
18 $this->params[ 'breadcrumbs' ][] = (!empty($seo->h1)) ? $seo->h1 :$model->title; 18 $this->params[ 'breadcrumbs' ][] = (!empty($seo->h1)) ? $seo->h1 :$model->title;
19 19
20 - $moduleComment->inputOptions += ['service_id' => [ 20 + $moduleComment->inputOptions = array_merge($moduleComment->inputOptions, ['entity_id' => [
21 'type' => 'hiddenInput', 21 'type' => 'hiddenInput',
22 'options' => ['value' => $model->id], 22 'options' => ['value' => $model->id],
23 - ]]; 23 + ],
  24 + 'entity' => [
  25 + 'type' => 'hiddenInput',
  26 + 'options' => ['value' => Service::className()],
  27 + ]]);
24 28
25 $moduleQuestion = \Yii::$app->getModule('questions'); 29 $moduleQuestion = \Yii::$app->getModule('questions');
26 $moduleQuestion->inputOptions += ['service_id' => [ 30 $moduleQuestion->inputOptions += ['service_id' => [
@@ -43,7 +47,7 @@ @@ -43,7 +47,7 @@
43 <li class="<?=($model->id == $item->id ? 'active' : '')?>"><a href="<?=Url::to(['alias' => $item->language->alias])?>"><?=$item->title?></a></li> 47 <li class="<?=($model->id == $item->id ? 'active' : '')?>"><a href="<?=Url::to(['alias' => $item->language->alias])?>"><?=$item->title?></a></li>
44 <?php }?> 48 <?php }?>
45 </ul> 49 </ul>
46 - <?php }?> 50 + <?php } ?>
47 </li> 51 </li>
48 <?php }?> 52 <?php }?>
49 </ul> 53 </ul>
frontend/views/site/comments.php
@@ -8,7 +8,7 @@ @@ -8,7 +8,7 @@
8 8
9 use artbox\core\helpers\Url; 9 use artbox\core\helpers\Url;
10 use common\models\Comment; 10 use common\models\Comment;
11 - use common\models\Question; 11 + use common\models\Service;
12 use yii\helpers\ArrayHelper; 12 use yii\helpers\ArrayHelper;
13 use yii\helpers\Html; 13 use yii\helpers\Html;
14 use yii\widgets\ActiveForm; 14 use yii\widgets\ActiveForm;
@@ -16,7 +16,7 @@ @@ -16,7 +16,7 @@
16 16
17 $this->params[ 'breadcrumbs'][] = \Yii::t('app', 'Вопрос-ответ'); 17 $this->params[ 'breadcrumbs'][] = \Yii::t('app', 'Вопрос-ответ');
18 18
19 - $model = new Comment(['service_id' => $service_id]); 19 + $model = new Comment(['entity_id' => $service_id, 'entity' => Service::className()]);
20 20
21 $data = ['' => 'Общие вопросы'] + ArrayHelper::map($services, 'id', 'title'); 21 $data = ['' => 'Общие вопросы'] + ArrayHelper::map($services, 'id', 'title');
22 ?> 22 ?>
@@ -39,7 +39,7 @@ @@ -39,7 +39,7 @@
39 <?php $form = ActiveForm::begin(['id' => 'total_comment_form'])?> 39 <?php $form = ActiveForm::begin(['id' => 'total_comment_form'])?>
40 <div class="col-xs-12 col-sm-6"> 40 <div class="col-xs-12 col-sm-6">
41 <div class="input-wr"> 41 <div class="input-wr">
42 - <?=$form->field($model, 'service_id')->dropDownList($data)->label('Выбор отделения')?> 42 + <?=$form->field($model, 'entity_id')->dropDownList($data)->label('Выбор отделения')?>
43 </div> 43 </div>
44 44
45 <div class="input-wr required"> 45 <div class="input-wr required">