Commit 68e726516f98676897e110db1face144d6d4d143

Authored by Anastasia
1 parent a8b692cf

- blog

- edit comments
backend/views/comment/_form.php
... ... @@ -30,9 +30,11 @@ JS;
30 30  
31 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 38 <?= $form->field($model, 'name')
37 39 ->textInput([ 'maxlength' => true ]) ?>
38 40  
... ...
common/models/Comment.php
... ... @@ -47,7 +47,7 @@
47 47 {
48 48 return [
49 49 [
50   - [ 'comment' ],
  50 + [ 'comment', 'entity' ],
51 51 'string',
52 52 ],
53 53 [
... ... @@ -59,7 +59,7 @@
59 59 ],
60 60 [
61 61 [
62   - 'service_id',
  62 + 'entity_id',
63 63 'created_at',
64 64 'updated_at',
65 65 ],
... ... @@ -68,7 +68,7 @@
68 68 ],
69 69 [
70 70 [
71   - 'service_id',
  71 + 'entity_id',
72 72 'created_at',
73 73 'updated_at',
74 74 ],
... ... @@ -111,4 +111,11 @@
111 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 155 }
156 156  
157 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 161 public function getQuestions(){
... ...
common/models/blog/Article.php
... ... @@ -4,7 +4,7 @@
4 4  
5 5 use artbox\core\models\Image;
6 6 use artbox\core\models\traits\AliasableTrait;
7   - use artbox\webcomment\models\CommentModel;
  7 + use common\models\Comment;
8 8 use yii\behaviors\TimestampBehavior;
9 9 use yii\db\ActiveRecord;
10 10 use artbox\core\models\Language;
... ... @@ -107,6 +107,7 @@
107 107 'sort',
108 108 'author_id',
109 109 'image_id',
  110 + 'views'
110 111 ],
111 112 'integer',
112 113 ],
... ... @@ -262,4 +263,8 @@
262 263 return $this->hasMany(Tag::className(), [ 'id' => 'blog_tag_id' ])
263 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 87 'name',
88 88 'email',
89 89 'comment',
90   - 'service_id'
  90 + 'entity_id',
  91 + 'entity'
91 92 ],
92 93 'rules' => [
93 94 [
... ... @@ -102,7 +103,8 @@
102 103 'name' => 'ФИО',
103 104 'email' => 'Email',
104 105 'comment' => 'Ваш отзыв',
105   - 'service_id' => false
  106 + 'entity_id' => false,
  107 + 'entity' => false
106 108 ],
107 109  
108 110 'inputOptions' => [
... ...
frontend/controllers/BlogController.php
... ... @@ -6,6 +6,8 @@
6 6 use common\models\blog\Category;
7 7 use common\models\blog\Tag;
8 8 use yii\data\ActiveDataProvider;
  9 + use yii\db\ActiveQuery;
  10 + use yii\helpers\ArrayHelper;
9 11 use yii\web\Controller;
10 12 use yii\web\NotFoundHttpException;
11 13  
... ... @@ -16,16 +18,8 @@
16 18 */
17 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 24 $categories = Category::find()
31 25 ->with(
... ... @@ -36,7 +30,7 @@
36 30 ->where(['status' => true])
37 31 ->orderBy([ 'sort' => SORT_ASC ])
38 32 ->all();
39   -
  33 + $data = ArrayHelper::map($categories, 'id', 'language.title');
40 34 $dataProvider = new ActiveDataProvider(
41 35 [
42 36 'query' => Article::find()
... ... @@ -50,19 +44,14 @@
50 44 'categories.language',
51 45 ]
52 46  
53   - )
  47 + )->with(['comments' => function (ActiveQuery $query){
  48 + $query->andWhere(['status' => true]);
  49 + }])
54 50 ->joinWith('language')
55 51 ->where([ 'blog_article.status' => true ])
56   - ->andFilterWhere(
57   - [
58   - 'ilike',
59   - 'blog_article_lang.title',
60   - $q,
61   - ]
62   - )
63 52 ->distinct(),
64 53 'pagination' => [
65   - 'pageSize' => 3,
  54 + 'pageSize' => 6,
66 55 ],
67 56 ]
68 57 );
... ... @@ -70,28 +59,29 @@
70 59 return $this->render(
71 60 'index',
72 61 [
73   - 'tags' => $tags,
74   - 'categories' => $categories,
  62 + 'categories' => $data,
75 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 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 272 }
273 273 }
274 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 276 'pagination' => [
277 277 'pageSize' => 10,
278 278 ],
... ...
frontend/views/blog/_article.php
1 1 <?php
2 2  
3 3 use artbox\core\helpers\ImageHelper;
4   - use yii\bootstrap\Html;
5 4 use artbox\core\helpers\Url;
6 5  
7 6 /**
... ... @@ -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 27 </div>
78 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 2  
3 3 use artbox\core\components\SeoComponent;
4 4 use yii\data\ActiveDataProvider;
5   - use artbox\core\helpers\Url;
  5 + use yii\helpers\Html;
6 6 use yii\web\View;
  7 + use yii\widgets\ActiveForm;
7 8 use yii\widgets\ListView;
8 9  
9 10 /**
... ... @@ -49,169 +50,38 @@
49 50 <div class="row">
50 51 <div class="col-xs-12 col-sm-12 select-blog-col">
51 52 <div class="select-blog">
52   - <form action="">
  53 + <?php $form = ActiveForm::begin();?>
53 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 56 </div>
65   - </form>
  57 + <?php ActiveForm::end()?>
66 58 </div>
67 59 </div>
68 60 </div>
69 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 73 <div class="col-xs-12 col-sm-12">
206 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 85 </div>
216 86 </div>
217 87 </div>
... ...
frontend/views/blog/view.php
1 1 <?php
2 2  
  3 + use artbox\core\helpers\ImageHelper;
3 4 use common\models\blog\Article;
4 5 use common\models\blog\Tag;
5   - use frontend\widgets\BlogSearch;
6 6 use artbox\core\helpers\Url;
7 7 use yii\web\View;
8 8  
... ... @@ -10,28 +10,39 @@
10 10 * @var View $this
11 11 * @var Article $model
12 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 47 <section class="section-service-page section-package-page">
37 48 <div class="container">
... ... @@ -39,35 +50,31 @@
39 50 <div class="col-xs-12 col-sm-12">
40 51 <div class="row">
41 52 <div class="col-xs-12">
42   - <h1 class="title-pages">Диетологи: Финики помогут в борьбе с лишним весом</h1>
  53 + <h1 class="title-pages"><?=$model->title?></h1>
43 54 </div>
44 55 </div>
45 56 <div class="row">
46 57 <div class="col-xs-12 service-text-table-wrapp editor-text">
47 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 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 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 70 <div class="style tags-view-blog">
65 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 75 </div>
70 76 </div>
  77 + <?php }?>
71 78 </div>
72 79 </div>
73 80 </div>
... ... @@ -78,54 +85,30 @@
78 85 <section class="section-comments-blog">
79 86 <div class="container">
80 87 <div class="row">
  88 +
81 89 <div class="col-xs-12 col-sm-6">
  90 +
82 91 <div class="title-c-a">Отзывы</div>
  92 + <?php if(!empty($model->comments)){?>
83 93 <div class="service-comments-wr style">
  94 + <?php foreach ($model->comments as $comment){?>
84 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 99 </div>
  100 + <?php } ?>
101 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 105 </div>
  106 +
105 107 <div class="col-xs-12 col-sm-6">
106 108 <div class="style blog-view-comments-form">
107 109 <div class="style hidden-form-c-a">
108 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 112 </div>
130 113 </div>
131 114 </div>
... ...
frontend/views/service/view.php
... ... @@ -17,10 +17,14 @@
17 17 $moduleComment = \Yii::$app->getModule('comments');
18 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 21 'type' => 'hiddenInput',
22 22 'options' => ['value' => $model->id],
23   - ]];
  23 + ],
  24 + 'entity' => [
  25 + 'type' => 'hiddenInput',
  26 + 'options' => ['value' => Service::className()],
  27 + ]]);
24 28  
25 29 $moduleQuestion = \Yii::$app->getModule('questions');
26 30 $moduleQuestion->inputOptions += ['service_id' => [
... ... @@ -43,7 +47,7 @@
43 47 <li class="<?=($model->id == $item->id ? 'active' : '')?>"><a href="<?=Url::to(['alias' => $item->language->alias])?>"><?=$item->title?></a></li>
44 48 <?php }?>
45 49 </ul>
46   - <?php }?>
  50 + <?php } ?>
47 51 </li>
48 52 <?php }?>
49 53 </ul>
... ...
frontend/views/site/comments.php
... ... @@ -8,7 +8,7 @@
8 8  
9 9 use artbox\core\helpers\Url;
10 10 use common\models\Comment;
11   - use common\models\Question;
  11 + use common\models\Service;
12 12 use yii\helpers\ArrayHelper;
13 13 use yii\helpers\Html;
14 14 use yii\widgets\ActiveForm;
... ... @@ -16,7 +16,7 @@
16 16  
17 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 21 $data = ['' => 'Общие вопросы'] + ArrayHelper::map($services, 'id', 'title');
22 22 ?>
... ... @@ -39,7 +39,7 @@
39 39 <?php $form = ActiveForm::begin(['id' => 'total_comment_form'])?>
40 40 <div class="col-xs-12 col-sm-6">
41 41 <div class="input-wr">
42   - <?=$form->field($model, 'service_id')->dropDownList($data)->label('Выбор отделения')?>
  42 + <?=$form->field($model, 'entity_id')->dropDownList($data)->label('Выбор отделения')?>
43 43 </div>
44 44  
45 45 <div class="input-wr required">
... ...