protected function conference($route, $event) { $venue = Venue::where('slug', '=', $event->venue_slug)->published()->get(); $venue = !empty($venue[0]) ? (object) $venue[0]->toArray() : null; $event->options = !empty($event->options) ? Helpers::unserialize($event->options) : []; $options = Helpers::options($route, 'conference', $event->options); $options = (array) $options; foreach ($options as $key => $option) { if (is_string($option) && preg_match("/^([a-z]+):([a-z]+)\$/i", $option)) { list($foo, $bar) = explode(':', $option); $options[$key] = ${$foo}->{$bar}; } } $options = (object) $options; // dd($options); $navs = Helpers::navigation($route, $options); $sub = Helpers::navigation($route, $options, true); $partners = (object) ['companies' => null, 'text' => null]; if (!empty($event->partners)) { $undo = Helpers::unserialize($event->partners); $companies = Partner::where(function ($query) use($undo) { foreach ($undo['partners'] as $i => $slug) { if ($i === 0) { $query->where('slug', '=', $slug); } else { $query->orWhere('slug', '=', $slug); } } })->published()->orderBy('company')->get(); if (!empty($undo['text'])) { $partners->text = $undo['text']; } if (is_object($companies)) { $partners->companies = []; foreach ($companies as $i => $company) { $partners->companies[] = (object) $company->toArray(); } } } $agendasRaw = Agenda::where('conference_id', '=', $event->id)->published()->orderBy('timeslot')->orderBy('priority')->get(); $speakerList = []; $agendas = []; if (is_object($agendasRaw)) { foreach ($agendasRaw as $i => $agenda) { $agenda = (object) $agenda->toArray(); list($date, $time) = explode(' ', $agenda->timeslot); if (!empty($agenda->speakers)) { $agenda->speakers = Helpers::unserialize($agenda->speakers); } $agendas[$date][$time][] = $agenda; if (!empty($agenda->speakers)) { $speakersTypes = $agenda->speakers; if (is_array($speakersTypes)) { ksort($speakersTypes); foreach ($speakersTypes as $speakers) { $speakerList = array_merge($speakerList, $speakers); } } } } } if (count($speakerList) > 0) { $speakers = Speaker::where(function ($query) use($speakerList) { $query->where('slug', '=', array_pop($speakerList)); while (count($speakerList) > 0) { $query->orWhere('slug', '=', array_pop($speakerList)); } })->published()->orderBy('last_name')->get(); $speakers = Helpers::keysByField($speakers, 'slug', function ($value, $key, $field, $array, $toObj) { $value->sessions = []; return $value; }, true); } if ((bool) $options->sponsorlevels === true) { $sponsors = Lookup::lookup('sponsors', ['conference' => $event->id], ['published' => true, 'sponsorlevels' => true]); } else { $sponsors = Lookup::lookup('sponsors', ['conference' => $event->id], ['published' => true]); } // dd($sponsors); return view('pages/conference', compact('event', 'venue', 'partners', 'agendas', 'speakers', 'sponsors', 'options', 'navs', 'sub')); }
protected function conference($route, $event) { $venue = Venue::where('slug', '=', $event->venue_slug)->published()->get(); $venue = !empty($venue[0]) ? (object) $venue[0]->toArray() : null; $options = Helpers::options($route, $event->slug, $event); // dd($options); $navs = Helpers::navigation($route, $options); $sub = Helpers::navigation($route, $options, true); $partners = (object) ['companies' => null, 'text' => null]; if (!empty($event->partners)) { $undo = Helpers::unserialize($event->partners); $companies = Partner::where(function ($query) use($undo) { foreach ($undo['partners'] as $i => $slug) { if ($i === 0) { $query->where('slug', '=', $slug); } else { $query->orWhere('slug', '=', $slug); } } })->published()->orderBy('company')->get(); if (!empty($undo['text'])) { $partners->text = $undo['text']; } if (is_object($companies)) { $partners->companies = []; foreach ($companies as $i => $company) { $partners->companies[] = (object) $company->toArray(); } } } $unfilteredTopics = Topic::where('conference_slug', '=', $event->slug)->published()->get(); $topics = []; foreach ($unfilteredTopics as $topic) { $topics[] = [$topic->title => $topic->text]; } if ((bool) $options->topics_by_alpha === true) { sort($topics); } //dd($topics); $agendasRaw = Agenda::where('conference_slug', '=', $event->slug)->published()->orderBy('timeslot')->orderBy('priority')->get(); $speakerList = []; $agendas = []; if (is_object($agendasRaw)) { foreach ($agendasRaw as $i => $agenda) { $agenda = (object) $agenda->toArray(); list($date, $time) = explode(' ', $agenda->timeslot); if (!empty($agenda->speakers)) { // $agenda->speakers = Helpers::unserialize($agenda->speakers); // dd($agenda->speakers); $agendaSpeakers = explode(',', $agenda->speakers); $agenda->speakers = []; if (is_array($agendaSpeakers)) { foreach ($agendaSpeakers as $s) { @(list($speakerType, $speakerSlug) = @explode('|', $s)); $agenda->speakers[$speakerType][] = $speakerSlug; } // dd($agenda->speakers); } } $agendas[$date][$time][] = $agenda; if (!empty($agenda->speakers)) { $speakersTypes = $agenda->speakers; if (is_array($speakersTypes)) { ksort($speakersTypes); // dd($speakersTypes); foreach ($speakersTypes as $speakers) { $speakerList = array_merge($speakerList, $speakers); } } } } } // dd($agendas); if (count($speakerList) > 0) { $speakers = Speaker::where(function ($query) use($speakerList) { $query->where('slug', '=', array_pop($speakerList)); while (count($speakerList) > 0) { $query->orWhere('slug', '=', array_pop($speakerList)); } })->published()->orderBy('last_name')->get(); $speakers = Helpers::keysByField($speakers, 'slug', function ($value, $key, $field, $array, $toObj) { $value->sessions = []; return $value; }, true); } if ((bool) $options->sponsor_levels === true) { $sponsors = Lookup::lookup('sponsors', ['conference_slug' => $event->slug], ['published' => true, 'sponsorlevels' => true]); } else { $sponsors = Lookup::lookup('sponsors', ['conference_slug' => $event->slug], ['published' => true]); } // dd($options); return view('pages/conference', compact('event', 'venue', 'partners', 'topics', 'agendas', 'speakers', 'sponsors', 'options', 'navs', 'sub')); }
/** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { $this->validate($request, ['name' => 'required|min:3', 'category_id' => 'required']); $venue = Venue::where('id', $id)->first(); \DB::transaction(function () use($request, $venue) { $venue->name = $request->get('name'); $venue->category_id = $request->get('category_id'); $venue->city = $request->get('city'); $venue->latitude = $request->get('latitude'); $venue->longitude = $request->get('longitude'); $venue->address = $request->get('address'); $venue->country = $request->get('country'); $venue->zip = $request->get('zip'); $venue->number = $request->get('number'); $venue->email = $request->get('email'); $venue->website = $request->get('website'); if ($request->hasFile('logo') && $request->file('logo')->isValid()) { $venueLogo = $request->file('appIcon'); $uri = config('services.uploads')['venues-logos']; $path = public_path() . $uri; $this->createFolderIfNotExists($path); $destinationPath = $path; $fileName = "i" . $venue->id . "." . $venueLogo->getClientOriginalExtension(); $venueLogo->move($destinationPath, $fileName); \Log::debug(sprintf("New icon image has been uploaded to %s, under the name %s", $destinationPath, $fileName)); $venue->logo = $uri . $fileName; // I might not use it, since I can predict what the name is going to be! id.xx } $venue->save(); }); session()->flash('message', ['success', 'Successfully Updated!']); return redirect(action('VenueController@index')); }