Server : Apache System : Linux 145.162.205.92.host.secureserver.net 5.14.0-611.45.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Apr 1 05:56:53 EDT 2026 x86_64 User : tradze ( 1001) PHP Version : 8.1.34 Disable Function : NONE Directory : /home/tradze/public_html/test.tradze.com/app_old/Modules/Banners/Repositories/ |
<?php
namespace App\Modules\Banners\Repositories;
use App\Modules\Banners\Models\Banner;
class BannersRepo
{
/**
* Get page banners or return default banner
*
* @param $obj
* @return array
*/
public function getBanners($obj)
{
//get page banners
$slides = collect($this->getByPosition($obj));
if (!array_key_exists('top',$slides->toArray())){
$top = $this->getByPosition($obj,"top","top");
$slides = $slides->merge($top);
} //endif
//return slides
return $slides->all();
}
/**
* @param $obj
* @param $position
* @param string $mandatory
*/
protected function getByPosition($obj, $position=false, $mandatory="top")
{
$slides = [];
if ($position){
$banners = $obj->banners->where('position','=',$position);
}
else
$banners = $obj->banners;
if (!$banners)
return $slides;
if (!$banners->count() && ($position==$mandatory)){
$banners = Banner::where('slug','like','default%')
->where('position','=','top')
->get();
foreach($banners as $banner){
foreach($banner->files as $slide){
$slides[$banner->position][] = [
'image' => $slide->image_url,
'title' => $slide->title,
'url' => $slide->url,
];
} //end foreach
} //end foreach
}
else
{
foreach($banners as $banner){
foreach($banner->files as $slide){
$slides[$banner->position][] = [
'image' => $slide->image_url,
'title' => $slide->title,
'url' => $slide->url,
];
} //end foreach
} //end foreach
}
//return slides array
return $slides;
}
/**
* Get free by position
* @param $position
* @return array
*/
public function getFreeByPosition($position, $slug='bottom')
{
$slides = [];
$banners = Banner::where('slug', 'like', "%{$slug}%")
->where('position', '=', $position)
->get();
foreach ($banners as $banner) {
foreach ($banner->files()->orderBy('order','asc')->get() as $slide) {
$slides[] = [
'image' => $slide->image_url,
'title' => $slide->title,
'url' => $slide->url,
];
}//endforeach
}//endforeach
//return slides
return $slides;
}
}