?
Current File : /home/sanghavirealty/public_html/appazwer/Http/Controllers/SalespageController.php
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
use Carbon\Carbon;

use Illuminate\Support\Facades\Auth;
use App\Models\Profile;
use App\Models\Salespage;
use App\Models\Courses;
use App\Models\Widget;

use App\Models\Questions;
use App\Models\Banner;
use App\Models\Slugemit;
use App\Models\WidgetSetting;

class SalespageController extends Controller
{

 

  function landingPageViewer ($slug){



  

    $dataViewer = Salespage::WHERE('currentstatus','0')
    ->WHERE('slug',$slug)
    ->orderBy('id', 'DESC')
    ->first();


    $bannerSlider = Banner::ShowData('BannerSlider');
    $faqlist = Questions::getHomePageFEaturedQuestion(10);
    $CTAFull  = Widget::ShowData('CTAFull');
    $aboutusBlock = Widget::SingleDataSpecific('AboutIndex');
    $indexBlurp = Widget::ShowData('IndexBlurp');
    $gettheVideo = WidgetController::GetTheWidgetValue($dataViewer->videotemplateid);


 

    $templateName = 'lp' ;


    return view('landingpage.view',[

      'dataViewer' => $dataViewer,
      'indexBlurp' => $indexBlurp,
      'templateName' => $templateName,
      'videoTemplate'=>$gettheVideo,
      'bannerSlider' => $bannerSlider,
      'faqlist' => $faqlist,
       'aboutusBlock'=>$aboutusBlock,
        'CTAFull' => $CTAFull,
     
  
  ]);




  }

    function salespageUpdate (Request $req){

        // return $req->all();
        $getUserID = Auth::user()->id ;
      
        $getlistingid = $req->id;




        if( empty($getlistingid) )
   {
   
     $req->validate([
       'title' => 'bail|unique:salespagetbl,title|required',
       'template' => 'required|numeric',
       'status' => 'required|numeric',    
       'coursesid' => 'required|numeric'

       
         ]
       );
     
       $title = $req->title ;
       $finalSlug = Slugemit::slugGenerator($title);

       Salespage::insert([
         'courses'=>$req->coursesid,
         'type'=>$req->preview,
         'status'=>$req->status,
         'template'=>$req->template,
         'title'=>$req->title,
         'subtitle'=>$req->subtitle,
         'metadescription'=>$req->metadescription,
         'description'=>$req->description,
         'highlight'=>$req->highlight,
         'highlightdesc'=>$req->highlightdesc,
         'testimonial'=>$req->testimonial,
         'testimonialdesc'=>$req->testimonialdesc,
         'videotemplateid'=>$req->videotemplateid,
         'slug'=>$finalSlug,
         'sort'=>$req->sort,
         'embed'=>$req->embed,
         'createby'=>$getUserID,
         'createdate'=>Carbon::Now(),
         'createip'=>$req->ip()
   
       ]);
   
   
       $getPOSTid =  Salespage::WHERE('currentstatus','0')
       ->WHERE('slug',$finalSlug)
       ->orderBy('id', 'DESC')
       ->first();
   
   
   
   }else{
   
     $getPOSTid = $getlistingid ;
   
     $PostUpdate = Salespage::find($getPOSTid) ; 
   
     $PostUpdate->courses = $req->coursesid ;
     $PostUpdate->type = $req->preview ;
     $PostUpdate->status = $req->status ;
     $PostUpdate->title = $req->title ;
     $PostUpdate->description = $req->description ;
     $PostUpdate->template = $req->template ;
     $PostUpdate->subtitle = $req->subtitle ;
     $PostUpdate->metadescription = $req->metadescription ;
     $PostUpdate->highlight = $req->highlight;
     $PostUpdate->highlightdesc = $req->highlightdesc;
     $PostUpdate->testimonial = $req->testimonial;
     $PostUpdate->testimonialdesc= $req->testimonialdesc;
     $PostUpdate->videotemplateid = $req->videotemplateid;
     $PostUpdate->sort = $req->sort ;
     $PostUpdate->embed = $req->embed ;
     $PostUpdate->modifyby = $getUserID ;
     $PostUpdate->modifyip = $req->ip() ;
     $PostUpdate->modifydate = Carbon::Now() ;
     
     $PostUpdate->isDirty('courses');
     $PostUpdate->isDirty('type');
     $PostUpdate->isDirty('status');
     $PostUpdate->isDirty('title');
     $PostUpdate->isDirty('description');     
     $PostUpdate->isDirty('template');
     $PostUpdate->isDirty('subtitle');
     $PostUpdate->isDirty('metadescription');
     $PostUpdate->isDirty('highlight');
     $PostUpdate->isDirty('highlightdesc');
     $PostUpdate->isDirty('testimonial');
     $PostUpdate->isDirty('testimonialdesc');
     $PostUpdate->isDirty('videotemplateid');
     $PostUpdate->isDirty('sort');
     $PostUpdate->isDirty('embed');
     $PostUpdate->isDirty('modifyby');
     $PostUpdate->isDirty('modifyip');
     $PostUpdate->isDirty('modifydate');
   
     $PostUpdate->save();
   
   
   }
   
   
           //upload multiple images    
   
           if($req->hasfile('image'))
           {
             $indexcount = 1 ;
     
              foreach($req->file('image') as $file)
              {
                  
     
               $getExt = $file->extension();
               $random = substr(md5(mt_rand()), 0, 5);
               $fileName = 'spage24'.$getPOSTid.'_'.$random.'.'.$getExt ;        
               $path = $file->storeAs('public/salespageassets/cover', $fileName );
               $path = $file->storeAs('public/salespageassets/thumb', $fileName );

               $ListImageUpdate = Salespage::where('id',$getPOSTid)->update(['image'.$indexcount => $fileName]);
            //    $ListImageUpdate = Salespage::where('id',$getPOSTid)->update(['thumbnail' => $fileName]);
     
               $indexcount++ ;
     
             
              }
           }
     
         //upload single document
     
           if($req->hasfile('document'))
           {
             $indexcount = 1 ;
     
              foreach($req->file('document') as $filedoc)
              {
     
               $getExt = $filedoc->extension();
               $random = substr(md5(mt_rand()), 0, 5);
               $fileName = 'spage'.$getPOSTid.'_'.$random.'.'.$getExt ;        
               $path = $filedoc->storeAs('public/salespageassets/docu', $fileName );
     
               $ListDocUpdate = Salespage::where('id',$getPOSTid)->update(['document' => $fileName]);
     
               // echo  $fileName ;
             
              }
           }

           if($req->hasfile('video'))
           {
             $indexcount = 1 ;
     
              foreach($req->file('video') as $filedoc)
              {
     
               $getExt = $filedoc->extension();
               $random = substr(md5(mt_rand()), 0, 5);
               $fileName = 'spage'.$getPOSTid.'_'.$random.'.'.$getExt ;        
               $path = $filedoc->storeAs('public/salespageassets/video', $fileName );
     
               $ListDocUpdate = Salespage::where('id',$getPOSTid)->update(['video' => $fileName]);
     
               // echo  $fileName ;
             
              }
           }
   

   
       return redirect('instructor-sales-page/')->with('sucess', 'updated sucessfully');




    }



    function salespageView ($slug = 0){

        $getUserID = Auth::user()->id ;
      

       $CoursesType = (new WidgetController)->ShowData('CoursesType');
       $PreviewType = (new WidgetController)->ShowData('PreviewType');
       $TemplateType = (new WidgetController)->ShowData('Template');
       $Video = (new WidgetController)->ShowData('Video');


       $getTheUsersCourseList = (new CoursesController)->getTheUsersCourseList($getUserID);
       
        if( (!empty($slug))) {

           $PostData = Salespage::Where('slug',$slug)
           ->Where('currentstatus',0)
           ->Where('createby',$getUserID)
           ->get();

            
 
         return view('salespage.Instructor-Salespage-Create',[
           'PreviewType' =>$PreviewType ,
           'CoursesType' =>$CoursesType ,
           'VideoTemplateData'=>$Video,
           'CourseList'=>$getTheUsersCourseList,
           'TemplateType'=>$TemplateType,
           'SalesPageData' =>$PostData 
       
       ]);
 
        }   else {

           $PostData = collect([0]);
 
         return view('salespage.Instructor-Salespage-Create',[
         
           'PreviewType' =>$PreviewType ,
           'CourseList'=>$getTheUsersCourseList,
           'CoursesType' =>$CoursesType,
           'VideoTemplateData'=>$Video,
           'TemplateType'=>$TemplateType,
           'SalesPageData' =>$PostData 

       
       ]);
 
 
        }





   }



    function salespageList(){

        $GetCoursesID = '' ;
        $getUserID = Auth::user()->id ;
       

        $dataviewer = Salespage::Where('currentstatus','0')
        ->Where('createby',$getUserID)
        ->with('getWidgetStatus')
        ->with('getPreviewStatus')
        ->with('getTemplate')
        ->with('getCoursesTitle')
        ->orderBy('sort', 'asc')
        ->paginate(10);

        

        return view('salespage.Instructor-Salespage-List',[           
            'data'=>$dataviewer]);






    }

    function SalespageStatus($sid=0,$id=0){

      
      $GetTheSalesPageID = $sid ;
      $getUserID = Auth::user()->id ;

      $PostUpdate = Salespage::find($GetTheSalesPageID) ; 
      $GetTheCoursesID = $PostUpdate->coursesid ;
     
      if (is_numeric($id) && $id == '1' && $id < '50' ) {

       
        abort(403);


      } elseif (is_numeric($id) && $id == '21'  && $id < '50' ) {

         // File::delete(public_path('lectureassets/cover/'.$PostUpdate->image));

          Storage::delete('public/salespageassets/cover/.$PostUpdate->image1');


          $PostUpdate->image1 = null ;
          $PostUpdate->save();

      } elseif (is_numeric($id) && $id == '22'  && $id < '50' ) {

        // File::delete(public_path('lectureassets/cover/'.$PostUpdate->image));

         Storage::delete('public/salespageassets/cover/.$PostUpdate->image2');


         $PostUpdate->image2 = null ;
         $PostUpdate->save();

     } elseif (is_numeric($id) && $id == '23'  && $id < '50' ) {

      // File::delete(public_path('lectureassets/cover/'.$PostUpdate->image));

       Storage::delete('public/salespageassets/cover/.$PostUpdate->image3');


       $PostUpdate->image3 = null ;
       $PostUpdate->save();

   }  elseif (is_numeric($id) && $id == '3'  && $id < '10'  ) {

        //File::delete(public_path('public/lectureassets/cover/'.$PostUpdate->document));

        Storage::delete('public/salespageassets/docu/.$PostUpdate->image3');
        $PostUpdate->document = null ;
        $PostUpdate->save();

       } elseif (is_numeric($id) && $id == '4'  && $id < '10'  ) {

         // File::delete(public_path('salespageassets/docu/'.$PostUpdate->video));
          Storage::delete('public/salespageassets/video/.$PostUpdate->video');

          $PostUpdate->video = null ;
          $PostUpdate->save();


      } elseif (is_numeric($id) && $id == '9'  && $id < '10'  ) {

          if (is_numeric($GetTheSalesPageID) > 0 ) {

          //query based deletes the record

          $deletedRow = Salespage::where('currentstatus', 0)
          ->where('id', $GetTheSalesPageID)
          ->where('createby', $getUserID)
          ->delete();
          
          //model based delete
          // $PostUpdate->delete();

          return redirect('instructor-sales-page/')->with('sucess', 'Record has been deleted');

          } else { 
              abort(403);
          }            
       } else {       
          abort(403);
          }

          $gettheSalePageSlug  = $PostUpdate->slug ;
          return redirect('instructor-sales-page-create/'.$gettheSalePageSlug)->with('sucess', 'Record has been updated');

  }





}