/** * Show the application dashboard to the user, including suggestions to the user. * * @return Response */ public function index() { $user = User::where('id', \Auth::id())->with('placesWanted')->with('events')->first(); if ($user->placesWanted) { $event_ids = EventPlace::select('event_id')->whereNotIn('event_id', $user->events->lists('id'))->whereIn('place_id', $user->placesWanted->lists('id'))->orderBy(\DB::raw('rand()'))->distinct()->take(6)->get()->lists('event_id')->toArray(); if (sizeof($event_ids) < 6) { $placeStateWanted = Place::select('id')->whereIn('state', $user->placesWanted->lists('state'))->get(); $event_ids = array_merge($event_ids, EventPlace::select('event_id')->whereNotIn('event_id', $user->events->lists('id'))->whereIn('place_id', $placeStateWanted->lists('id'))->orderBy(\DB::raw('rand()'))->distinct()->take(6 - sizeof($event_ids))->get()->lists('event_id')->toArray()); if (sizeof($event_ids) < 6) { $placeCountryWanted = Place::select('id')->whereIn('country', $user->placesWanted->lists('country'))->get(); $event_ids = array_merge($event_ids, EventPlace::select('event_id')->whereNotIn('event_id', $user->events->lists('id'))->whereIn('place_id', $placeCountryWanted->lists('id'))->orderBy(\DB::raw('rand()'))->distinct()->take(6 - sizeof($event_ids))->get()->lists('event_id')->toArray()); } } } $events = Event::where('date_start', '>=', new \DateTime('today'))->whereIn('id', $event_ids)->get(); if (sizeof($event_ids) < 6) { $events = $events->merge(Event::where('date_start', '>=', new \DateTime('today'))->orderBy(\DB::raw('rand()'))->take(6 - sizeof($event_ids))->get()); } $auth_name = \Auth::User()->first_name; //$events = Event::take(5)->get(); return view('home', compact('auth_name', 'events')); }
/** * Update the specified event in storage. * * @param int $id * @return Response */ public function update($id, Request $request) { $event = Event::findOrFail($id); $event->name = $request->name; $event->description = $request->description; $convert_date = date("Y-m-d", strtotime($request->date_start)); $event->date_start = $convert_date; if ($request->date_end) { $convert_date = date("Y-m-d", strtotime($request->date_end)); $event->date_end = $convert_date; } if ($request->id != null) { $place = Place::where('id', '=', $request->id)->first(); if (!$place) { $place = new Place($request->only(['id', 'place_lat', 'place_lng', 'country', 'state', 'city'])); $place->save(); } $event_place = EventPlace::where('event_id', '=', $id); if (!$event_place) { $event_place = new EventPlace(); $event_place->event_id = $id; $event_place->place_id = $place->id; $event_place->save(); } } if (\Input::hasFile('img')) { $file = \Input::file('img'); $filename = ''; if ($event->photo == '../../default_photo.jpg') { $name = str_random(32); while (!User::where('avatar', '=', $name . $file->getClientOriginalExtension())->get()->isEmpty()) { $name = str_random(32); } $filename = $name . '.' . $file->getClientOriginalExtension(); $event->photo = $filename; } else { $filename = $event->photo; } $file->move(public_path() . '/img/events_large', $filename); Image::make(public_path() . '/img/events_large/' . $filename)->fit(1024, 576)->save(); Image::make(public_path() . '/img/events_large/' . $filename)->resize(300, 169)->save(public_path() . '/img/events/' . $filename); } $event->save(); \Session::flash('message', 'Event updated successfully'); return redirect()->route('events.show', $id); }