Egorka
6 years ago
7 changed files with 99 additions and 8 deletions
@ -0,0 +1,42 @@
|
||||
<?php |
||||
/** |
||||
* Created by Error202 |
||||
* Date: 24.01.2018 |
||||
*/ |
||||
|
||||
namespace common\modules\blog\widgets; |
||||
|
||||
|
||||
use common\modules\blog\entities\BlogTagAssignment; |
||||
use common\modules\blog\repositories\read\BlogPostReadRepository; |
||||
use yii\base\Widget; |
||||
use yii\helpers\ArrayHelper; |
||||
use yii\helpers\Url; |
||||
|
||||
class PostByTagsWidget extends Widget |
||||
{ |
||||
public $count; |
||||
public $view; |
||||
public $post; |
||||
|
||||
public $posts; |
||||
|
||||
public function __construct(BlogPostReadRepository $posts, $config = []) |
||||
{ |
||||
parent::__construct($config); |
||||
$this->count = $this->count ? $this->count : 5; |
||||
$this->posts = $posts; |
||||
} |
||||
|
||||
public function run(): string |
||||
{ |
||||
$tag_ids = ArrayHelper::getColumn(BlogTagAssignment::find()->andWhere(['post_id' => $this->post->id])->all(), 'tag_id'); |
||||
$posts = $this->posts->getByTagsId($this->post, $tag_ids, $this->count)->getModels(); |
||||
|
||||
return $this->render($this->view, [ |
||||
'posts' => $posts, |
||||
'view' => $this->view, |
||||
'url' => Url::canonical(), |
||||
]); |
||||
} |
||||
} |
@ -0,0 +1,38 @@
|
||||
<?php |
||||
|
||||
/** |
||||
* @var $this \yii\web\View |
||||
* @var $view string |
||||
* @var $posts \common\modules\blog\entities\BlogPost[] |
||||
*/ |
||||
|
||||
?> |
||||
|
||||
<div class="row"> |
||||
<div class="col-sm-12 owl-carousel-outer-navigation"> |
||||
<!-- Heading Component--> |
||||
<article class="heading-component"> |
||||
<div class="heading-component-inner"> |
||||
<h5 class="heading-component-title"><?= Yii::t('post', 'Related') ?> |
||||
</h5> |
||||
<div class="owl-carousel-arrows-outline"> |
||||
<div class="owl-nav"> |
||||
<button class="owl-arrow owl-arrow-prev" id="relative-button-prev"></button> |
||||
<button class="owl-arrow owl-arrow-next" id="relative-button-next"></button> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</article> |
||||
|
||||
<!-- Blog Carousel--> |
||||
<div id="relative_carousel" class="owl-carousel row"> |
||||
<?php foreach ($posts as $post): ?> |
||||
|
||||
<?= $this->render($view . '_item', [ |
||||
'post' => $post |
||||
]) ?> |
||||
|
||||
<?php endforeach; ?> |
||||
</div> |
||||
</div> |
||||
</div> |
Loading…
Reference in new issue