diff --git a/app/Http/Controllers/EventViewController.php b/app/Http/Controllers/EventViewController.php index 42d11db7..8de47233 100644 --- a/app/Http/Controllers/EventViewController.php +++ b/app/Http/Controllers/EventViewController.php @@ -8,6 +8,7 @@ use App\Models\Event; use App\Models\EventAccessCodes; use App\Models\EventStats; use Auth; +use Carbon\Carbon; use Cookie; use Illuminate\Http\Request; use Mail; @@ -33,6 +34,7 @@ class EventViewController extends Controller } $tickets = $event->tickets()->where('is_hidden', false) + ->whereDate('ticket_date','>=',Carbon::now(config('app.timezone'))) ->orderBy('sort_order', 'asc')->get(); $ticket_dates = array(); diff --git a/app/Http/Controllers/PublicController.php b/app/Http/Controllers/PublicController.php index b39b5fca..7b975fcf 100644 --- a/app/Http/Controllers/PublicController.php +++ b/app/Http/Controllers/PublicController.php @@ -44,47 +44,30 @@ class PublicController extends Controller ]); } - public function showEvents($cat_id = null, Request $request){ - $date = $request->get('date'); - //$cat_id = $request->get('cat_id'); - - $e_query = Event::onLive(); - $nav_query = Category::select('id','title_tk','title_ru','parent_id') - ->orderBy('lft','asc'); - $category = null; - if(!empty($cat_id)){ - $category = Category::findOrFail($cat_id); - - if($category->parent_id > 0){ - $e_query->where('sub_category_id',$category->id); - $nav_query->where('parent_id',$category->parent_id); - } - else{ - $e_query->where('category_id',$category->id); - $nav_query->where('parent_id',$category->id); - } - - }else{ - $nav_query->main(); - } - - if(!empty($date)){ - $e_query->whereDate('start_date','>=',Carbon::parse($date)); - } - - $events = $e_query->with('images')->paginate(5); - $navigation = $nav_query->get(); -// dd($events); - return view('Bilettm.Public.EventsPage')->with([ - 'events' => $events, - 'category' => $category, - 'navigation' => $navigation - ]); - } - public function showCategoryEvents($cat_id, Request $request){ $date = $request->get('date'); - $popular = $request->get('popular'); + $sort = $request->get('sort'); + $filter =$request->get('filter');//today,tomorrow,week,month,date + + if($sort == 'new') + $orderBy = ['field'=>'created_at','order'=>'desc']; + if ($sort =='pop') + $orderBy = ['field'=>'views','order'=>'desc']; + else + { + $orderBy =['field'=>'start_date','order'=>'asc']; + $sort = 'start_date'; + } + + switch ($filter){ + case 'today' : $date_start = Carbon::now(); $date_end = $date_start->endOfDay(); break; + case 'tomorrow' : $date_start = Carbon::tomorrow(); $date_end = $date_start->endOfDay();break; + case 'week' : $date_start = Carbon::now(); $date_end = $date_start->endOfWeek(); break; + case 'month' : $date_start = Carbon::now(); $date_end = $date_start->endOfMonth(); break; + case 'date' : $date_start = Carbon::parse($date); $date_end = $date_start->endOfDay(); break; + default : $date_start = null; $date_end = null; + } +// dd(url('path')); // setlocale(LC_TIME, 'tk'); // Carbon::setLocale('tk'); // dd(Carbon::parse('2019-01-01',config('app.timezone')) ->formatLocalized('%d %B')); @@ -92,27 +75,27 @@ class PublicController extends Controller $category = Category::select('id','title_tk','title_ru','view_type','events_limit','parent_id') ->findOrFail($cat_id); + $data = ['sort' => $sort, 'category' => $category, 'filter' => $filter]; + if($category->parent_id >0 || $category->view_type === 'concert'){ $events = $category->cat_events() - ->onLive($date) - ->orderBy($popular ? 'start_date' : 'views') + ->onLive($date_start,$date_end) + ->orderBy($orderBy) ->get(); - return view("Bilettm.EventsList.subCategoryList")->with([ - 'category' => $category, - 'events' => $events - ]); + $data['events'] = $events; + + return view("Bilettm.Public.CategoryEventsPage")->with($data); } else{ $subCats = $category->children() - ->withLiveEvents($date,$category->events_limit,$popular) - ->whereHas('cat_events',function ($query) use($date){ - $query->onLive($date); + ->withLiveEvents($orderBy, $date_start, $date_end, $category->events_limit) + ->whereHas('cat_events', + function ($query) use($date_start, $date_end){ + $query->onLive($date_start, $date_end); })->get(); -//dd($subCats); - return view("Bilettm.Layouts.EventsPage")->with([ - 'sub_cats' => $subCats, - 'category' => $category, - ]); + $data['sub_cats'] = $subCats; + + return view("Bilettm.Public.EventsPage")->with($data); } } diff --git a/app/Models/Category.php b/app/Models/Category.php index a39ae5d9..6ed2ce0e 100644 --- a/app/Models/Category.php +++ b/app/Models/Category.php @@ -110,21 +110,15 @@ class Category extends \Illuminate\Database\Eloquent\Model{ return $query->where('parent_id',$parent_id)->orderBy('lft','asc'); } - public function scopeWithLiveEvents($query, $date = false, $popular = true){ - $limit = 8; - return $query->with(['cat_events' => function($query) use ($date, $limit, $popular) { + public function scopeWithLiveEvents($query, $orderBy, $start_date = null,$end_date = null, $limit = 8 ){ + return $query->with(['cat_events' => function($query) use ($start_date, $end_date, $limit, $orderBy) { $query->select('id','title','description','category_id','sub_category_id','start_date') ->limit($limit) ->with('starting_ticket') ->withCount(['stats as views' => function($q){ $q->select(DB::raw("SUM(views) as v"));}]) - ->onLive($date);//event scope onLive get only live events - - - if($popular) - $query->orderBy('views','desc'); - else - $query->orderBy('start_date'); + ->onLive($start_date, $end_date)//event scope onLive get only live events + ->orderBy($orderBy['field'],$orderBy['order']); }]); } diff --git a/app/Models/Event.php b/app/Models/Event.php index 299aa882..de16f3e5 100644 --- a/app/Models/Event.php +++ b/app/Models/Event.php @@ -476,10 +476,15 @@ ICSTemplate; return (is_null($this->access_codes()->where('id', $accessCodeId)->first()) === false); } - public function scopeOnLive($query, $date = null){ + public function scopeOnLive($query, $start_date = null, $end_date = null){ //if date is null carbon creates now date instance - return $query->whereDate('end_date','>=',Carbon::parse($date,config('app.timezone'))) - ->where('is_live',1) + if(isset($start_date) && isset($end_date)) + $query->whereDate('start_date','<=',$start_date) + ->whereDate('end_date','>=',$end_date); + else + $query->whereDate('end_date','>=',Carbon::now(config('app.timezone'))); + + return $query->where('is_live',1) ->withCount(['images as image_url' => function($q){ $q->select(DB::raw("image_path as imgurl")) ->orderBy('created_at','desc') diff --git a/resources/views/Bilettm/Layouts/EventsLayout.blade.php b/resources/views/Bilettm/Layouts/EventsLayout.blade.php new file mode 100644 index 00000000..8d7402ec --- /dev/null +++ b/resources/views/Bilettm/Layouts/EventsLayout.blade.php @@ -0,0 +1,51 @@ +@extends('Bilettm.Layouts.BilettmLayout') + +@section('after_styles') + +@endsection + +@section('content') + {{\DaveJamesMiller\Breadcrumbs\Facades\Breadcrumbs::render('category',$category)}} + @include("Bilettm.Partials.FilterMenu") + + @yield('inner_content') + +
+
+
+ + + +
+
+
+ +@endsection +@push('after_styles') + +@endpush +@section('after_scripts') + + + + +@endsection \ No newline at end of file diff --git a/resources/views/Bilettm/Layouts/EventsPage.blade.php b/resources/views/Bilettm/Layouts/EventsPage.blade.php deleted file mode 100644 index d4d1cacf..00000000 --- a/resources/views/Bilettm/Layouts/EventsPage.blade.php +++ /dev/null @@ -1,78 +0,0 @@ -@extends('Bilettm.Layouts.BilettmLayout') - -@section('after_styles') - -@endsection - -@section('content') - {{\DaveJamesMiller\Breadcrumbs\Facades\Breadcrumbs::render('category',$category)}} - @include("Bilettm.Partials.FilterMenu") - - @foreach($sub_cats as $cat) - -
-
-
-
-

{{$cat->title}}

-
- Весь репертуар -
-
- - -
-
-
- @foreach($cat->cat_events as $event) - @include("Bilettm.EventsList.{$category->view_type}",['event'=>$event]) - @endforeach -
-
-
- -
-
-
-
- - @endforeach -
-
-
- - - -
-
-
- -@endsection -@push('after_styles') - -@endpush -@section('after_scripts') - - - - -@endsection \ No newline at end of file diff --git a/resources/views/Bilettm/Partials/FilterMenu.blade.php b/resources/views/Bilettm/Partials/FilterMenu.blade.php index 7d5f5523..b46d7ced 100644 --- a/resources/views/Bilettm/Partials/FilterMenu.blade.php +++ b/resources/views/Bilettm/Partials/FilterMenu.blade.php @@ -1,25 +1,27 @@