Attendize/app/Http/Controllers/OrganiserEventsController.php

44 lines
1.4 KiB
PHP
Raw Normal View History

2016-03-05 00:18:10 +00:00
<?php
2016-02-29 15:59:36 +00:00
2016-03-05 00:18:10 +00:00
namespace App\Http\Controllers;
use App\Models\Event;
use App\Models\Organiser;
use Illuminate\Http\Request;
2016-02-29 15:59:36 +00:00
class OrganiserEventsController extends MyBaseController
{
/**
* Show the organiser events page
*
* @param Request $request
* @param $organiser_id
* @return mixed
*/
public function showEvents(Request $request, $organiser_id)
2016-03-05 00:18:10 +00:00
{
2016-02-29 15:59:36 +00:00
$organiser = Organiser::scope()->findOrfail($organiser_id);
$allowed_sorts = ['created_at', 'start_date', 'end_date', 'title'];
$searchQuery = $request->get('q');
$sort_by = (in_array($request->get('sort_by'), $allowed_sorts) ? $request->get('sort_by') : 'start_date');
2016-02-29 15:59:36 +00:00
$events = $searchQuery
2016-03-05 00:18:10 +00:00
? Event::scope()->where('title', 'like', '%'.$searchQuery.'%')->orderBy($sort_by, 'desc')->where('organiser_id', '=', $organiser_id)->paginate(12)
2016-02-29 15:59:36 +00:00
: Event::scope()->where('organiser_id', '=', $organiser_id)->orderBy($sort_by, 'desc')->paginate(12);
$data = [
2016-03-05 00:18:10 +00:00
'events' => $events,
2016-02-29 15:59:36 +00:00
'organiser' => $organiser,
2016-03-05 00:18:10 +00:00
'search' => [
'q' => $searchQuery ? $searchQuery : '',
'sort_by' => $request->get('sort_by') ? $request->get('sort_by') : '',
'showPast' => $request->get('past'),
2016-03-05 00:18:10 +00:00
],
2016-02-29 15:59:36 +00:00
];
return view('ManageOrganiser.Events', $data);
2016-02-29 15:59:36 +00:00
}
2016-03-05 00:18:10 +00:00
}