Files
register/marko_unpacked/marko/portal/widgets/Slider.php
T
Admin Nasledstvo ac168868ee Initial import
2026-05-01 20:52:04 +03:00

103 lines
3.1 KiB
PHP

<?php
namespace app\widgets;
use app\models\Navigation;
use app\models\register\Partner;
use app\models\RegisterObjects;
use app\models\Slides;
use yii\base\Widget;
class Slider extends _Base
{
public $type;
public function run()
{
switch ($this->type) {
case 'home_page':
return $this->render('slider/home_page', ['slides' => $this->getSlider()]);
case 'home_page_e_library':
return $this->render('slider/home_page_e_library', ['slides' => $this->getELibrary()]);
case 'join_to_us':
return $this->render('slider/join_to_us', ['slides' => $this->getJoinToUs()]);
case 'home_page_partners':
return $this->render('slider/home_page_partners', ['slides' => $this->getPartners()]);
}
}
private function getSlider()
{
return Slides::find()->where(['is_active' => 1, 'type' => $this->type])
->orderBy(['order_index' => SORT_ASC])
->parseAll('id, media_key', [
'title' => 'ts_en_title',
'text' => 'ts_en_text',
'relation' => 'ts_en_relation'
])->all();
}
private function getELibrary()
{
$library = RegisterObjects::find()->andWhere(['is_active' => 1, 'lib_type' => 2])->orderBy(['date_updated' => SORT_DESC])->limit(20)->all();
$books = [];
foreach ($library as $book) {
$books[] = (object)[
'img' => $book->getImg(),
'title' => $book->getTitle(),
'url' => $book->getLibraryUrl()
];
}
return $books;
}
public function getJoinToUs()
{
$data = Navigation::find()
->where(['is_active' => 1, 'home_conn' => 1])->orderBy(['order_index' => SORT_ASC])->all();
$imgNum = 0;
$result = [];
foreach ($data as $link) {
$imgNum++;
if(file_exists($_SERVER['DOCUMENT_ROOT'].'/_public/images/dev/join-us-' . $imgNum . '.png')) {
$plateImg = '/_public/images/dev/join-us-' . $imgNum . '.png';
} else {
$plateImg = '/_public/images/dev/join-us-1.png';
}
$result[] = (object)[
'img' => $plateImg,
'title' => \Yii::$app->language == 'en' ? $link->ts_en_name : $link->name,
'text' => '',
'url' => $link->url ? $link->url : $link->page->getUrl(),
];
//if ($imgNum == 4) $imgNum = 0;
}
return $result;
}
public function getPartners()
{
$partnersArr = [];
$partners = Partner::find()->where(['active' => 1, 'deleted' => 0])
->andWhere(['<', 'type', 2])
->all();
foreach ($partners as $partner) {
$partnersArr[] = (object)[
'url' => $partner->getUrl(),
'name' => $partner->getTsName(),
'logo' => $partner->getSrcOfSingleImage('partner_logo_image', '1:1', '/_public/assets/images/emptysq.png')
];
}
return $partnersArr;
}
}