Commit c8dead9418d7e26972dd48ab034c1cd21a5faadb

Authored by Yarik
2 parents 6c8e3423 1740bcd4

Merge remote-tracking branch 'origin/master'

frontend/controllers/BlogController.php
@@ -3,8 +3,11 @@ @@ -3,8 +3,11 @@
3 namespace frontend\controllers; 3 namespace frontend\controllers;
4 4
5 use artbox\weblog\models\Article; 5 use artbox\weblog\models\Article;
  6 + use artbox\weblog\models\Category;
  7 + use artbox\weblog\models\Tag;
6 use yii\data\ActiveDataProvider; 8 use yii\data\ActiveDataProvider;
7 use yii\web\Controller; 9 use yii\web\Controller;
  10 + use yii\web\NotFoundHttpException;
8 11
9 /** 12 /**
10 * Class BlogController 13 * Class BlogController
@@ -13,8 +16,15 @@ @@ -13,8 +16,15 @@
13 */ 16 */
14 class BlogController extends Controller 17 class BlogController extends Controller
15 { 18 {
16 - public function actionIndex() 19 + public function actionIndex($q = '')
17 { 20 {
  21 + $tags = Tag::find()
  22 + ->with(
  23 + [
  24 + 'lang',
  25 + ]
  26 + )
  27 + ->all();
18 $dataProvider = new ActiveDataProvider( 28 $dataProvider = new ActiveDataProvider(
19 [ 29 [
20 'query' => Article::find() 30 'query' => Article::find()
@@ -22,6 +32,19 @@ @@ -22,6 +32,19 @@
22 [ 32 [
23 'created_at' => SORT_DESC, 33 'created_at' => SORT_DESC,
24 ] 34 ]
  35 + )
  36 + ->joinWith(
  37 + [
  38 + 'lang',
  39 + 'categories.lang',
  40 + ]
  41 + )
  42 + ->andFilterWhere(
  43 + [
  44 + 'like',
  45 + 'blog_article_lang.title',
  46 + $q,
  47 + ]
25 ), 48 ),
26 'pagination' => [ 49 'pagination' => [
27 'pageSize' => 3, 50 'pageSize' => 3,
@@ -32,8 +55,167 @@ @@ -32,8 +55,167 @@
32 return $this->render( 55 return $this->render(
33 'index', 56 'index',
34 [ 57 [
  58 + 'tags' => $tags,
35 'dataProvider' => $dataProvider, 59 'dataProvider' => $dataProvider,
36 ] 60 ]
37 ); 61 );
38 } 62 }
  63 +
  64 + public function actionArticle($id)
  65 + {
  66 + $model = $this->findModel($id);
  67 +
  68 + $tags = Tag::find()
  69 + ->with([ 'lang' ])
  70 + ->all();
  71 +
  72 + return $this->render(
  73 + 'view',
  74 + [
  75 + 'tags' => $tags,
  76 + 'model' => $model,
  77 + ]
  78 + );
  79 + }
  80 +
  81 + public function actionCategory($id)
  82 + {
  83 + $tags = Tag::find()
  84 + ->with(
  85 + [
  86 + 'lang',
  87 + ]
  88 + )
  89 + ->all();
  90 +
  91 + /**
  92 + * @var Category $model
  93 + */
  94 + $model = Category::find()
  95 + ->where(
  96 + [
  97 + 'id' => $id,
  98 + ]
  99 + )
  100 + ->with(
  101 + [
  102 + 'articles',
  103 + ]
  104 + )
  105 + ->one();
  106 +
  107 + $dataProvider = new ActiveDataProvider(
  108 + [
  109 + 'query' => $model->getArticles()
  110 + ->with(
  111 + [
  112 + 'lang',
  113 + 'categories.lang',
  114 + ]
  115 + )
  116 + ->orderBy(
  117 + [
  118 + 'created_at' => SORT_DESC,
  119 + ]
  120 + ),
  121 + 'pagination' => [
  122 + 'pageSize' => 3,
  123 + ],
  124 + ]
  125 + );
  126 +
  127 + return $this->render(
  128 + 'category',
  129 + [
  130 + 'tags' => $tags,
  131 + 'dataProvider' => $dataProvider,
  132 + 'model' => $model,
  133 + ]
  134 + );
  135 + }
  136 +
  137 + public function actionTag($id)
  138 + {
  139 + $tags = Tag::find()
  140 + ->with(
  141 + [
  142 + 'lang',
  143 + ]
  144 + )
  145 + ->all();
  146 +
  147 + /**
  148 + * @var Category $model
  149 + */
  150 + $model = Tag::find()
  151 + ->where(
  152 + [
  153 + 'id' => $id,
  154 + ]
  155 + )
  156 + ->with(
  157 + [
  158 + 'articles',
  159 + ]
  160 + )
  161 + ->one();
  162 +
  163 + $dataProvider = new ActiveDataProvider(
  164 + [
  165 + 'query' => $model->getArticles()
  166 + ->with(
  167 + [
  168 + 'lang',
  169 + 'categories.lang',
  170 + ]
  171 + )
  172 + ->orderBy(
  173 + [
  174 + 'created_at' => SORT_DESC,
  175 + ]
  176 + ),
  177 + 'pagination' => [
  178 + 'pageSize' => 3,
  179 + ],
  180 + ]
  181 + );
  182 +
  183 + return $this->render(
  184 + 'tag',
  185 + [
  186 + 'tags' => $tags,
  187 + 'dataProvider' => $dataProvider,
  188 + 'model' => $model,
  189 + ]
  190 + );
  191 + }
  192 +
  193 + /**
  194 + * @param $id
  195 + *
  196 + * @return Article
  197 + * @throws \yii\web\NotFoundHttpException
  198 + */
  199 + protected function findModel($id)
  200 + {
  201 + /**
  202 + * @var Article | null $model
  203 + */
  204 + $model = Article::find()
  205 + ->where([ 'id' => $id ])
  206 + ->with(
  207 + [
  208 + 'lang',
  209 + 'categories.lang',
  210 + 'tags.lang',
  211 + ]
  212 + )
  213 + ->one();
  214 +
  215 + if (empty($model)) {
  216 + throw new NotFoundHttpException(\Yii::t('app', 'Article not found'));
  217 + } else {
  218 + return $model;
  219 + }
  220 + }
39 } 221 }
40 \ No newline at end of file 222 \ No newline at end of file
frontend/views/blog/_article.php
1 <?php 1 <?php
2 2
  3 + use artbox\core\helpers\ImageHelper;
3 use artbox\weblog\models\Article; 4 use artbox\weblog\models\Article;
  5 + use yii\bootstrap\Html;
  6 + use yii\helpers\Url;
4 7
5 /** 8 /**
6 * @var Article $model 9 * @var Article $model
@@ -11,25 +14,73 @@ @@ -11,25 +14,73 @@
11 <section class="post"> 14 <section class="post">
12 <div class="row"> 15 <div class="row">
13 <div class="col-md-4"> 16 <div class="col-md-4">
14 - <div class="video">  
15 - <div class="embed-responsive embed-responsive-4by3">  
16 - <iframe class="embed-responsive-item" src="//www.youtube.com/embed/upZJpGrppJA"></iframe>  
17 - </div> 17 + <div class="image">
  18 + <a href="<?= Url::to(
  19 + [
  20 + 'blog/article',
  21 + 'id' => $model->id,
  22 + ]
  23 + ) ?>">
  24 + <?= ImageHelper::set($model->image ? $model->image->getPath() : '@frontend/web/img/no-image.png')
  25 + ->cropResize(263, 197)
  26 + ->renderImage(
  27 + [
  28 + 'class' => 'img-responsive',
  29 + 'alt' => $model->lang->title,
  30 + ]
  31 + ) ?>
  32 + </a>
18 </div> 33 </div>
19 </div> 34 </div>
20 <div class="col-md-8"> 35 <div class="col-md-8">
21 - <h2><a href="blog-post.html">Название статьи</a></h2> 36 + <h2><a href="<?= Url::to(
  37 + [
  38 + 'blog/article',
  39 + 'id' => $model->id,
  40 + ]
  41 + ) ?>"><?= $model->lang->title; ?></a></h2>
22 <div class="clearfix"> 42 <div class="clearfix">
23 - <p class="author-category">Автор: <a href="#">John Snow</a> в <a href="blog.html">Webdesign</a>  
24 - </p> 43 + <?php if (empty($model->categories)) { ?>
  44 + <p class="author-category">Без категории </p>
  45 + <?php } else {
  46 + $i = 0;
  47 + foreach ($model->categories as $category) {
  48 + $i++;
  49 + ?>
  50 + <p class="author-category"><?php
  51 + echo Html::a(
  52 + $category->lang->title,
  53 + [
  54 + 'blog/category',
  55 + 'id' => $category->id,
  56 + ]
  57 + );
  58 + if ($i === count($model->categories)) {
  59 + echo '&#160';
  60 + } else {
  61 + echo '&#44&#160';
  62 + }
  63 + ?></p>
  64 + <?php
  65 + }
  66 + } ?>
25 <p class="date-comments"> 67 <p class="date-comments">
26 - <a href="blog-post.html"><i class="fa fa-calendar-o"></i> 20 июня 2013</a>  
27 - <a href="blog-post.html"><i class="fa fa-comment-o"></i> 8 комментариев</a> 68 + <i class="fa fa-calendar-o"></i> <?= \Yii::$app->formatter->asDate($model->created_at); ?>
  69 + <!-- <a href="blog-post.html"><i class="fa fa-comment-o"></i> 8 комментариев</a>-->
28 </p> 70 </p>
29 </div> 71 </div>
30 - <p class="intro">Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper.  
31 - Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p>  
32 - <p class="read-more"><a href="blog-post.html" class="btn btn-template-main">Продолжить чтение</a> 72 + <p class="intro"><?= $model->lang->body_preview; ?></p>
  73 + <p class="read-more">
  74 + <?= Html::a(
  75 + 'Продолжить чтение',
  76 + [
  77 + 'blog/article',
  78 + 'id' => $model->id,
  79 + ],
  80 + [
  81 + 'class' => 'btn btn-template-main',
  82 + ]
  83 + ) ?>
33 </p> 84 </p>
34 </div> 85 </div>
35 </div> 86 </div>
frontend/views/blog/category.php 0 → 100644
  1 +<?php
  2 +
  3 + use artbox\core\components\SeoComponent;
  4 + use artbox\weblog\models\Category;
  5 + use artbox\weblog\models\Tag;
  6 + use frontend\widgets\BlogSearch;
  7 + use yii\data\ActiveDataProvider;
  8 + use yii\helpers\Url;
  9 + use yii\web\View;
  10 + use yii\widgets\ListView;
  11 +
  12 + /**
  13 + * @var View $this
  14 + * @var ActiveDataProvider $dataProvider
  15 + * @var SeoComponent $seo
  16 + * @var Tag[] $tags
  17 + * @var Category $model
  18 + */
  19 + $seo = \Yii::$app->get('seo');
  20 +
  21 + $this->params[ 'breadcrumbs' ][] = [
  22 + 'label' => \Yii::t('app', 'Блог'),
  23 + 'url' => [ 'blog/index' ],
  24 + ];
  25 +
  26 + $this->params[ 'breadcrumbs' ][] = $seo->title;
  27 +
  28 +?>
  29 +
  30 +<div id="content">
  31 + <div class="container">
  32 + <div class="row">
  33 + <!-- *** LEFT COLUMN ***
  34 +_________________________________________________________ -->
  35 +
  36 +
  37 + <!-- <ul class="pager">-->
  38 + <!-- <li class="previous"><a href="#">&larr; Назад</a>-->
  39 + <!-- </li>-->
  40 + <!-- <li class="next disabled"><a href="#">Вперед &rarr;</a>-->
  41 + <!-- </li>-->
  42 + <!-- </ul>-->
  43 +
  44 + <!-- /.col-md-9 -->
  45 +
  46 +
  47 + <?= ListView::widget(
  48 + [
  49 + 'dataProvider' => $dataProvider,
  50 + 'itemView' => '_article',
  51 + 'options' => [
  52 + 'class' => 'col-md-9',
  53 + 'id' => 'blog-listing-medium',
  54 + ],
  55 + 'layout' => '{items}{pager}',
  56 + ]
  57 + ); ?>
  58 +
  59 +
  60 + <!-- *** LEFT COLUMN END *** -->
  61 +
  62 + <!-- *** RIGHT COLUMN ***
  63 +_________________________________________________________ -->
  64 +
  65 + <div class="col-md-3">
  66 +
  67 + <!-- *** MENUS AND WIDGETS ***
  68 +_________________________________________________________ -->
  69 + <div class="panel panel-default sidebar-menu">
  70 +
  71 + <div class="panel-heading">
  72 + <h3 class="panel-title">Блог компании</h3>
  73 + </div>
  74 +
  75 + <div class="panel-body text-widget">
  76 + <p>
  77 + Мы собираем полезные материалы по тематике бытовой техники и электроники
  78 + </p>
  79 +
  80 + </div>
  81 + </div>
  82 +
  83 + <?= BlogSearch::widget(); ?>
  84 +
  85 + <div class="panel sidebar-menu">
  86 + <div class="panel-heading">
  87 + <h3 class="panel-title">Поиск по тегам</h3>
  88 + </div>
  89 +
  90 + <div class="panel-body">
  91 + <ul class="tag-cloud">
  92 + <?php foreach ($tags as $tag) { ?>
  93 + <li><a href="<?= Url::to(
  94 + [
  95 + 'blog/tag',
  96 + 'id' => $tag->id,
  97 + ]
  98 + ) ?>"><i class="fa fa-tags"></i>&#160<?= $tag->lang->label; ?></a>
  99 + </li>
  100 + <?php } ?>
  101 + </ul>
  102 + </div>
  103 + </div>
  104 +
  105 + <!-- *** MENUS AND FILTERS END *** -->
  106 +
  107 + </div>
  108 + <!-- /.col-md-3 -->
  109 +
  110 + <!-- *** RIGHT COLUMN END *** -->
  111 +
  112 + </div>
  113 + <!-- /.row -->
  114 + </div>
  115 + <!-- /.container -->
  116 +</div>
  117 +<!-- /#content -->
0 \ No newline at end of file 118 \ No newline at end of file
frontend/views/blog/index.php
1 <?php 1 <?php
2 2
  3 + use artbox\core\components\SeoComponent;
  4 + use artbox\weblog\models\Tag;
  5 + use frontend\widgets\BlogSearch;
3 use yii\data\ActiveDataProvider; 6 use yii\data\ActiveDataProvider;
  7 + use yii\helpers\Url;
4 use yii\web\View; 8 use yii\web\View;
5 use yii\widgets\ListView; 9 use yii\widgets\ListView;
6 10
7 /** 11 /**
8 * @var View $this 12 * @var View $this
9 * @var ActiveDataProvider $dataProvider 13 * @var ActiveDataProvider $dataProvider
  14 + * @var SeoComponent $seo
  15 + * @var Tag[] $tags
10 */ 16 */
  17 + $seo = \Yii::$app->get('seo');
  18 +
  19 + $this->params[ 'breadcrumbs' ][] = $seo->title;
11 20
12 ?> 21 ?>
13 22
@@ -16,19 +25,15 @@ @@ -16,19 +25,15 @@
16 <div class="row"> 25 <div class="row">
17 <!-- *** LEFT COLUMN *** 26 <!-- *** LEFT COLUMN ***
18 _________________________________________________________ --> 27 _________________________________________________________ -->
  28 +
  29 +
  30 + <!-- <ul class="pager">-->
  31 + <!-- <li class="previous"><a href="#">&larr; Назад</a>-->
  32 + <!-- </li>-->
  33 + <!-- <li class="next disabled"><a href="#">Вперед &rarr;</a>-->
  34 + <!-- </li>-->
  35 + <!-- </ul>-->
19 36
20 - <div class="col-md-9" id="blog-listing-medium">  
21 -  
22 -  
23 - <ul class="pager">  
24 - <li class="previous"><a href="#">&larr; Назад</a>  
25 - </li>  
26 - <li class="next disabled"><a href="#">Вперед &rarr;</a>  
27 - </li>  
28 - </ul>  
29 -  
30 -  
31 - </div>  
32 <!-- /.col-md-9 --> 37 <!-- /.col-md-9 -->
33 38
34 39
@@ -40,6 +45,7 @@ _________________________________________________________ --&gt; @@ -40,6 +45,7 @@ _________________________________________________________ --&gt;
40 'class' => 'col-md-9', 45 'class' => 'col-md-9',
41 'id' => 'blog-listing-medium', 46 'id' => 'blog-listing-medium',
42 ], 47 ],
  48 + 'layout' => '{items}{pager}',
43 ] 49 ]
44 ); ?> 50 ); ?>
45 51
@@ -66,26 +72,8 @@ _________________________________________________________ --&gt; @@ -66,26 +72,8 @@ _________________________________________________________ --&gt;
66 72
67 </div> 73 </div>
68 </div> 74 </div>
69 -  
70 - <div class="panel panel-default sidebar-menu">  
71 -  
72 - <div class="panel-heading">  
73 - <h3 class="panel-title">Поиск</h3>  
74 - </div>  
75 -  
76 - <div class="panel-body">  
77 - <form role="search">  
78 - <div class="input-group">  
79 - <input type="text" class="form-control" placeholder="Поиск по статьям">  
80 - <span class="input-group-btn">  
81 -  
82 - <button type="submit" class="btn btn-template-main"><i class="fa fa-search"></i></button>  
83 -  
84 - </span>  
85 - </div>  
86 - </form>  
87 - </div>  
88 - </div> 75 +
  76 + <?= BlogSearch::widget(); ?>
89 77
90 <div class="panel sidebar-menu"> 78 <div class="panel sidebar-menu">
91 <div class="panel-heading"> 79 <div class="panel-heading">
@@ -94,16 +82,15 @@ _________________________________________________________ --&gt; @@ -94,16 +82,15 @@ _________________________________________________________ --&gt;
94 82
95 <div class="panel-body"> 83 <div class="panel-body">
96 <ul class="tag-cloud"> 84 <ul class="tag-cloud">
97 - <li><a href="#"><i class="fa fa-tags"></i> Обзор</a>  
98 - </li>  
99 - <li><a href="#"><i class="fa fa-tags"></i> Ноутбук</a>  
100 - </li>  
101 - <li><a href="#"><i class="fa fa-tags"></i> ПК</a>  
102 - </li>  
103 - <li><a href="#"><i class="fa fa-tags"></i> Моноблок</a>  
104 - </li>  
105 - <li><a href="#"><i class="fa fa-tags"></i> Смартфоны</a>  
106 - </li> 85 + <?php foreach ($tags as $tag) { ?>
  86 + <li><a href="<?= Url::to(
  87 + [
  88 + 'blog/tag',
  89 + 'id' => $tag->id,
  90 + ]
  91 + ) ?>"><i class="fa fa-tags"></i>&#160<?= $tag->lang->label; ?></a>
  92 + </li>
  93 + <?php } ?>
107 </ul> 94 </ul>
108 </div> 95 </div>
109 </div> 96 </div>
frontend/views/blog/tag.php 0 → 100644
  1 +<?php
  2 +
  3 + use artbox\core\components\SeoComponent;
  4 + use artbox\weblog\models\Tag;
  5 + use frontend\widgets\BlogSearch;
  6 + use yii\data\ActiveDataProvider;
  7 + use yii\helpers\Url;
  8 + use yii\web\View;
  9 + use yii\widgets\ListView;
  10 +
  11 + /**
  12 + * @var View $this
  13 + * @var ActiveDataProvider $dataProvider
  14 + * @var SeoComponent $seo
  15 + * @var Tag[] $tags
  16 + * @var Tag $model
  17 + */
  18 + $seo = \Yii::$app->get('seo');
  19 +
  20 + $this->params[ 'breadcrumbs' ][] = [
  21 + 'label' => \Yii::t('app', 'Блог'),
  22 + 'url' => [ 'blog/index' ],
  23 + ];
  24 +
  25 + $this->params[ 'breadcrumbs' ][] = $seo->title;
  26 +
  27 +?>
  28 +
  29 +<div id="content">
  30 + <div class="container">
  31 + <div class="row">
  32 + <!-- *** LEFT COLUMN ***
  33 +_________________________________________________________ -->
  34 +
  35 +
  36 + <!-- <ul class="pager">-->
  37 + <!-- <li class="previous"><a href="#">&larr; Назад</a>-->
  38 + <!-- </li>-->
  39 + <!-- <li class="next disabled"><a href="#">Вперед &rarr;</a>-->
  40 + <!-- </li>-->
  41 + <!-- </ul>-->
  42 +
  43 + <!-- /.col-md-9 -->
  44 +
  45 +
  46 + <?= ListView::widget(
  47 + [
  48 + 'dataProvider' => $dataProvider,
  49 + 'itemView' => '_article',
  50 + 'options' => [
  51 + 'class' => 'col-md-9',
  52 + 'id' => 'blog-listing-medium',
  53 + ],
  54 + 'layout' => '{items}{pager}',
  55 + ]
  56 + ); ?>
  57 +
  58 +
  59 + <!-- *** LEFT COLUMN END *** -->
  60 +
  61 + <!-- *** RIGHT COLUMN ***
  62 +_________________________________________________________ -->
  63 +
  64 + <div class="col-md-3">
  65 +
  66 + <!-- *** MENUS AND WIDGETS ***
  67 +_________________________________________________________ -->
  68 + <div class="panel panel-default sidebar-menu">
  69 +
  70 + <div class="panel-heading">
  71 + <h3 class="panel-title">Блог компании</h3>
  72 + </div>
  73 +
  74 + <div class="panel-body text-widget">
  75 + <p>
  76 + Мы собираем полезные материалы по тематике бытовой техники и электроники
  77 + </p>
  78 +
  79 + </div>
  80 + </div>
  81 +
  82 + <?= BlogSearch::widget(); ?>
  83 +
  84 + <div class="panel sidebar-menu">
  85 + <div class="panel-heading">
  86 + <h3 class="panel-title">Поиск по тегам</h3>
  87 + </div>
  88 +
  89 + <div class="panel-body">
  90 + <ul class="tag-cloud">
  91 + <?php foreach ($tags as $tag) { ?>
  92 + <li><a href="<?= Url::to(
  93 + [
  94 + 'blog/tag',
  95 + 'id' => $tag->id,
  96 + ]
  97 + ) ?>"><i class="fa fa-tags"></i>&#160<?= $tag->lang->label; ?></a>
  98 + </li>
  99 + <?php } ?>
  100 + </ul>
  101 + </div>
  102 + </div>
  103 +
  104 + <!-- *** MENUS AND FILTERS END *** -->
  105 +
  106 + </div>
  107 + <!-- /.col-md-3 -->
  108 +
  109 + <!-- *** RIGHT COLUMN END *** -->
  110 +
  111 + </div>
  112 + <!-- /.row -->
  113 + </div>
  114 + <!-- /.container -->
  115 +</div>
  116 +<!-- /#content -->
0 \ No newline at end of file 117 \ No newline at end of file
frontend/views/blog/view.php 0 → 100644
  1 +<?php
  2 +
  3 + use artbox\weblog\models\Article;
  4 + use artbox\weblog\models\Tag;
  5 + use frontend\widgets\BlogSearch;
  6 + use yii\helpers\Url;
  7 + use yii\web\View;
  8 +
  9 + /**
  10 + * @var View $this
  11 + * @var Article $model
  12 + * @var Tag[] $tags
  13 + */
  14 +
  15 + $this->params[ 'breadcrumbs' ][] = [
  16 + 'label' => \Yii::t('app', 'Блог'),
  17 + 'url' => [ 'blog/index' ],
  18 + ];
  19 +
  20 + $this->params[ 'breadcrumbs' ][] = $model->lang->title;
  21 +
  22 +?>
  23 +
  24 +<div id="content">
  25 + <div class="container">
  26 +
  27 + <div class="row">
  28 +
  29 + <!-- *** LEFT COLUMN ***
  30 +_________________________________________________________ -->
  31 +
  32 + <div class="col-md-9" id="blog-post">
  33 +
  34 + <h2><?= $model->lang->title; ?></h2>
  35 +
  36 + <?php if (!empty($model->tags)) { ?>
  37 + <div class="panel sidebar-menu">
  38 + <div class="panel-body">
  39 + <ul class="tag-cloud">
  40 + <?php foreach ($model->tags as $tag) { ?>
  41 + <li><a href="<?= Url::to(
  42 + [
  43 + 'blog/tag',
  44 + 'id' => $tag->id,
  45 + ]
  46 + ) ?>"><i class="fa fa-tags"></i>&#160<?= $tag->lang->label; ?></a>
  47 + </li>
  48 + <?php } ?>
  49 + </ul>
  50 + </div>
  51 + </div>
  52 + <?php } ?>
  53 +
  54 + <p class="text-muted text-uppercase mb-small text-left"><?= \Yii::$app->formatter->asDate(
  55 + $model->created_at
  56 + ); ?></p>
  57 +
  58 + <div id="post-content">
  59 +
  60 + <?= $model->lang->body; ?>
  61 +
  62 + </div>
  63 + <!-- /#post-content -->
  64 +
  65 + <?php
  66 + /*
  67 +
  68 + <div id="comments">
  69 + <h4 class="text-uppercase">2 comments</h4>
  70 +
  71 +
  72 + <div class="row comment">
  73 + <div class="col-sm-3 col-md-2 text-center-xs">
  74 + <p>
  75 + <img src="img/blog-avatar2.jpg" class="img-responsive img-circle" alt="">
  76 + </p>
  77 + </div>
  78 + <div class="col-sm-9 col-md-10">
  79 + <h5 class="text-uppercase">Julie Alma</h5>
  80 + <p class="posted"><i class="fa fa-clock-o"></i> September 23, 2011 в 12:00</p>
  81 + <p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper.
  82 + Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p>
  83 + <p class="reply"><a href="#"><i class="fa fa-reply"></i> Ответить</a>
  84 + </p>
  85 + </div>
  86 + </div>
  87 + <!-- /.comment -->
  88 +
  89 +
  90 + <div class="row comment last">
  91 +
  92 + <div class="col-sm-3 col-md-2 text-center-xs">
  93 + <p>
  94 + <img src="img/blog-avatar.jpg" class="img-responsive img-circle" alt="">
  95 + </p>
  96 + </div>
  97 +
  98 + <div class="col-sm-9 col-md-10">
  99 + <h5 class="text-uppercase">Louise Armero</h5>
  100 + <p class="posted"><i class="fa fa-clock-o"></i> 23 сентября 2012 в 12:00</p>
  101 + <p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper.
  102 + Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p>
  103 + <p class="reply"><a href="#"><i class="fa fa-reply"></i> Ответить</a>
  104 + </p>
  105 + </div>
  106 +
  107 + </div>
  108 + <!-- /.comment -->
  109 + </div>
  110 + <!-- /#comments -->
  111 +
  112 +
  113 + <div id="comment-form">
  114 +
  115 + <h4 class="text-uppercase">Leave comment</h4>
  116 +
  117 + <form>
  118 + <div class="row">
  119 +
  120 + <div class="col-sm-6">
  121 + <div class="form-group">
  122 + <label for="name">Name <span class="required">*</span>
  123 + </label>
  124 + <input type="text" class="form-control" id="name">
  125 + </div>
  126 + </div>
  127 +
  128 + </div>
  129 +
  130 + <div class="row">
  131 + <div class="col-sm-6">
  132 + <div class="form-group">
  133 + <label for="email">Email <span class="required">*</span>
  134 + </label>
  135 + <input type="text" class="form-control" id="email">
  136 + </div>
  137 + </div>
  138 + </div>
  139 +
  140 + <div class="row">
  141 + <div class="col-sm-12">
  142 + <div class="form-group">
  143 + <label for="comment">Comment <span class="required">*</span>
  144 + </label>
  145 + <textarea class="form-control" id="comment" rows="4"></textarea>
  146 + </div>
  147 + </div>
  148 + </div>
  149 +
  150 + <div class="row">
  151 + <div class="col-sm-12 text-right">
  152 + <button class="btn btn-template-main"><i class="fa fa-comment-o"></i> Post comment</button>
  153 + </div>
  154 + </div>
  155 +
  156 +
  157 + </form>
  158 +
  159 + </div>
  160 + <!-- /#comment-form -->
  161 + */
  162 + ?>
  163 + </div>
  164 + <!-- /#blog-post -->
  165 +
  166 + <!-- *** LEFT COLUMN END *** -->
  167 +
  168 + <!-- *** RIGHT COLUMN ***
  169 + _________________________________________________________ -->
  170 +
  171 + <div class="col-md-3">
  172 +
  173 + <!-- *** MENUS AND WIDGETS ***
  174 +_________________________________________________________ -->
  175 + <div class="panel panel-default sidebar-menu">
  176 +
  177 + <div class="panel-heading">
  178 + <h3 class="panel-title">Блог компании</h3>
  179 + </div>
  180 +
  181 + <div class="panel-body text-widget">
  182 + <p>
  183 + Мы собираем полезные материалы по тематике бытовой техники и электроники
  184 + </p>
  185 +
  186 + </div>
  187 + </div>
  188 +
  189 + <?= BlogSearch::widget(); ?>
  190 +
  191 + <div class="panel sidebar-menu">
  192 + <div class="panel-heading">
  193 + <h3 class="panel-title">Поиск по тегам</h3>
  194 + </div>
  195 +
  196 + <div class="panel-body">
  197 + <ul class="tag-cloud">
  198 + <?php foreach ($tags as $tag) { ?>
  199 + <li><a href="<?= Url::to(
  200 + [
  201 + 'blog/tag',
  202 + 'id' => $tag->id,
  203 + ]
  204 + ) ?>"><i class="fa fa-tags"></i>&#160<?= $tag->lang->label; ?></a>
  205 + </li>
  206 + <?php } ?>
  207 + </ul>
  208 + </div>
  209 + </div>
  210 +
  211 + <!-- *** MENUS AND FILTERS END *** -->
  212 +
  213 + </div>
  214 + <!-- /.col-md-3 -->
  215 + <!-- *** RIGHT COLUMN END *** -->
  216 +
  217 +
  218 + </div>
  219 + <!-- /.row -->
  220 +
  221 + </div>
  222 + <!-- /.container -->
  223 +</div>
  224 +<!-- /#content -->
  225 +
0 \ No newline at end of file 226 \ No newline at end of file
frontend/views/layouts/main.php
@@ -414,7 +414,34 @@ _________________________________________________________ --&gt; @@ -414,7 +414,34 @@ _________________________________________________________ --&gt;
414 ?> 414 ?>
415 415
416 <!-- *** LOGIN MODAL END *** --> 416 <!-- *** LOGIN MODAL END *** -->
417 - 417 +
  418 +
  419 + <!-- *** SUCCESS MODAL BEGIN ***
  420 + _________________________________________________________ -->
  421 + <div class="modal fade" id="success-modal" tabindex="-1" role="dialog" aria-labelledby="Success" aria-hidden="true">
  422 + <div class="modal-dialog modal-sm">
  423 +
  424 + <div class="modal-content">
  425 + <div class="modal-header">
  426 + <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
  427 + <h4 class="modal-title" id="Success">
  428 + Success Title
  429 + </h4>
  430 + </div>
  431 + <div class="modal-body">
  432 + <p class="text-center text-muted">
  433 + Success text 1</p>
  434 + <p class="text-center text-muted">
  435 + Success text 2
  436 + </p>
  437 +
  438 + </div>
  439 + </div>
  440 + </div>
  441 + </div>
  442 +
  443 + <!-- *** SUCCESS MODAL END *** -->
  444 +
418 <!-- *** Breadcrumbs *** --> 445 <!-- *** Breadcrumbs *** -->
419 <?php 446 <?php
420 if (!$isHome) { 447 if (!$isHome) {
frontend/widgets/BlogSearch.php 0 → 100644
  1 +<?php
  2 +
  3 + namespace frontend\widgets;
  4 +
  5 + use yii\base\Widget;
  6 +
  7 + /**
  8 + * Class BlogSearch
  9 + *
  10 + * @package frontend\widgets
  11 + */
  12 + class BlogSearch extends Widget
  13 + {
  14 + public function run()
  15 + {
  16 + return $this->render('_blog_search');
  17 + }
  18 + }
0 \ No newline at end of file 19 \ No newline at end of file
frontend/widgets/views/_blog_search.php 0 → 100644
  1 +<?php
  2 +
  3 + use yii\helpers\Url;
  4 + use yii\web\View;
  5 +
  6 + /**
  7 + * @var View $this
  8 + */
  9 +
  10 +?>
  11 +
  12 +<div class="panel panel-default sidebar-menu">
  13 +
  14 + <div class="panel-heading">
  15 + <h3 class="panel-title">Поиск</h3>
  16 + </div>
  17 +
  18 + <div class="panel-body">
  19 + <form role="search" action="<?= Url::to([ 'blog/index' ]) ?>" method="GET">
  20 + <div class="input-group">
  21 + <input type="text" class="form-control" name="q" placeholder="Поиск по статьям" value="<?= \Yii::$app->request->get(
  22 + 'q',
  23 + ''
  24 + ) ?>">
  25 + <span class="input-group-btn">
  26 +
  27 + <button type="submit" class="btn btn-template-main"><i class="fa fa-search"></i></button>
  28 +
  29 + </span>
  30 + </div>
  31 + </form>
  32 + </div>
  33 +</div>