/** * Define your route model bindings, pattern filters, etc. * * @param \Illuminate\Routing\Router $router * @return void */ public function boot(Router $router) { $router->model('pieces', 'App\\Piece'); $router->bind('studios', function ($slug) { return Studio::where('slug', $slug)->firstOrFail(); }); $router->model('events', 'App\\Event'); parent::boot($router); }
/** * Define your route model bindings, pattern filters, etc. * * @param \Illuminate\Routing\Router $router * @return void */ public function boot(Router $router) { $router->pattern('artist', '[0-9]+'); $router->pattern('studio', '[-\\w]+'); $router->pattern('event', '[0-9]+'); $router->pattern('piece', '[0-9]+'); $router->pattern('photo', '[0-9]+'); parent::boot($router); $router->model('artist', 'App\\Artist'); $router->model('piece', 'App\\Piece'); $router->model('photo', 'App\\Photo'); $router->bind('studio', function ($slug) { return Studio::where('slug', $slug)->firstOrFail(); }); $router->model('event', 'App\\Event'); }
/** * Define your route model bindings, pattern filters, etc. * * @param \Illuminate\Routing\Router $router * @return void */ public function boot(Router $router) { // parent::boot($router); $router->model('studios', 'App\\Studio'); $router->model('events', 'App\\Event'); $router->model('pieces', 'App\\Piece'); $router->model('categories', 'App\\Category'); $router->model('orders', 'App\\Order'); $router->model('parties', 'App\\PartyRequest'); $router->bind('studioSlug', function ($value) { return \App\Studio::where('slug', $value)->first(); }); $router->bind('pieceSlug', function ($value) { return \App\Piece::where('slug', $value)->first(); }); }
/** * Remove the specified tattoo from storage. * * @param int $id * @return Response */ public function deleteTattoo(Request $request) { if (!$request->ajax()) { dd("NO ASYNC REQUEST"); } $res = array(); $res['success'] = false; $tattooId = $request->input('tattoo'); $tattoo = Tattoo::find($tattooId); $user = Auth::user(); if ($tattoo) { if ($tattoo->user_id == $user->id) { $tattoo->delete(); $res['success'] = true; } elseif ($user->type == 'artist') { $artist = Artist::where('user_id', $user->id)->first(); $artist->tattoos()->detach($tattooId); $res['success'] = true; } elseif ($user->type == 'studio') { $studio = Studio::where('user_id', $user->id)->first(); $studio->tattoos()->detach($tattooId); $res['success'] = true; } } return $res; }
/** * save studio about details * * @return View */ public function aboutSave(Request $request) { //dd($request); $user = Auth::user(); $studio = Studio::where('user_id', $user->id)->first(); $studio->bio = $request->input('about'); $studio->established = $request->input('established'); $studio->headlines = $request->input('headlines'); $studio->bio = $request->input('bio'); $studio->working_hours_start = $request->input('working_hour_start'); $studio->working_hours_end = $request->input('working_hour_end'); $studio->how_maintain_hygiene = $request->input('how_maintain_hygiene'); $studio->no_of_artists = $request->input('no_of_artists'); $studio->other_info = $request->input('other_info'); $studio->website = $request->input('website'); $studio->save(); return redirect('studio/' . $studio->user->slug . '#edit'); }
/** * Display User Profile Page * * @return View */ public function profile() { $user = Auth::user(); //if not an image url from facebook if (filter_var($user->avatar, FILTER_VALIDATE_URL) === FALSE) { $user->avatar = url('uploads/images/thumbnail/' . $user->avatar); } if (!$user->verified) { session()->flash('warning', 'Please verify your email address!!'); } //if user is artist, load artist profile view if ($user->type == 'artist') { $artist = Artist::where('user_id', $user->id)->first(); $artist->cover = url('uploads/images/large/' . $artist->cover); if (filter_var($artist->user->avatar, FILTER_VALIDATE_URL) === FALSE) { $artist->user->avatar = url('uploads/images/thumbnail/' . $artist->user->avatar); } $isArtistProfile = true; return view('pages.artist', ['user' => $user, 'artist' => $artist, 'isArtistProfile' => $isArtistProfile]); } elseif ($user->type == 'studio') { $studio = Studio::where('user_id', $user->id)->first(); $studio->cover = url('uploads/images/large/' . $studio->cover); return view('pages.studio', ['user' => $user, 'studio' => $studio]); } elseif ($user->type == 'member') { $member = Member::where('user_id', $user->id)->first(); return view('pages.member', ['user' => $user, 'member' => $member]); } else { return redirect('complete-profile')->flash('success', 'Welcome. Please complete your profile..'); } return redirect('/'); }
/** * Display the complete profile form * * @return View */ public function completeProfileArtistSave(Request $request) { $user = Auth::user(); $user->contact = $request->input('contact'); $user->city = $request->input('city'); $user->country = $request->input('country'); if ($request->hasFile('avatar')) { //upload an image to the /img/tmp directory and return the filepath. $file = $request->file('avatar'); $tmpFilePath = '/uploads/images/original/'; $tmpFileName = 'profile-' . time() . '-' . $file->getClientOriginalName(); //save original file $file = $file->move(public_path() . $tmpFilePath, $tmpFileName); $path = $tmpFilePath . $tmpFileName; //edit image $img = \Image::make($file); $img->backup(); //$img->fit(1200, 480); //$img->save('uploads/images/large/'.$tmpFileName); // reset image (return to backup state) $img->reset(); $img->fit(360); //240*240 $img->save('uploads/images/thumbnail/' . $tmpFileName); // reset image (return to backup state) $img->reset(); $img->fit(120); //100*100 $img->save('uploads/images/small/' . $tmpFileName); //save image to DB $user->avatar = $tmpFileName; } $user->type = 'artist'; $user->save(); //if artist already creates, then update if (Artist::where('user_id', $user->id)->count()) { $artist = Artist::where('user_id', $user->id)->first(); $artist->experience = $request->input('experience'); $artist->save(); } else { //create new artist $artist = new Artist(); $artist->user_id = $user->id; $artist->experience = $request->input('experience'); $artist->save(); } if ($request->hasFile('cover')) { //upload an image to the /img/tmp directory and return the filepath. $file = $request->file('cover'); $tmpFilePath = '/uploads/images/original/'; $tmpFileName = 'cover-' . time() . '-' . $file->getClientOriginalName(); //save original file $file = $file->move(public_path() . $tmpFilePath, $tmpFileName); $path = $tmpFilePath . $tmpFileName; //edit image $img = \Image::make($file); $img->backup(); $img->fit(1200, 480); $img->save('uploads/images/large/' . $tmpFileName); // reset image (return to backup state) $img->reset(); $img->fit(360, 144); //360*144 $img->save('uploads/images/thumbnail/' . $tmpFileName); //save image to DB $artist->cover = $tmpFileName; $artist->save(); } //save studio if (!$request->input('studio')) { $this->validate($request, ['studioName' => 'required|max:255', 'studioContact' => 'required|max:22|min:10', 'studioCity' => 'required', 'studioCountry' => 'required', 'studioLat' => 'required', 'studioLong' => 'required']); $studio = new Studio(); $studio->name = $request->input('studioName'); $studio->contact = $request->input('studioContact'); $studio->city = $request->input('studioCity'); $studio->latitude = $request->input('studioLat'); $studio->longitude = $request->input('studioLong'); $studio->country = $request->input('studioCountry'); $studio->save(); $artist->studios()->attach($studio->id); $artist->save(); $user->profileComplete = true; $user->save(); } else { if (Studio::where('id', $request->input('studio'))->count()) { $artist->studios()->attach($request->input('studio')); $user->profileComplete = true; $user->save(); } } if (!$user->social) { $user->avatar = url('uploads/images/small/' . $user->avatar); } $artist->cover = url('uploads/images/large/' . $artist->cover); return redirect('complete-profile-artist'); }
/** * Change Account Basic details * * @param Request $request * @return Response */ public function changeProfile(Request $request) { $this->validate($request, ['current_password' => 'required|min:6']); $user = Auth::user(); if ($user->type == 'studio') { $this->validate($request, ['name' => 'required']); } else { $this->validate($request, ['firstname' => 'required']); } if ($user->email != $request->input('email')) { $this->validate($request, ['email' => 'required|email|max:255|unique:users']); } if ($user->contact != $request->input('contact')) { $this->validate($request, ['contact' => 'required|digits:10']); } if (Hash::check($request->input('current_password'), $user->password)) { if ($user->type == 'artist') { $artist = Artist::where('user_id', $user->id)->first(); $artist->firstname = $request->input('firstname'); $artist->lastname = ''; $artist->save(); $user->name = $request->input('firstname'); } elseif ($user->type == 'member') { $member = Member::where('user_id', $user->id)->first(); $member->firstname = $request->input('firstname'); $member->lastname = ''; $member->save(); $user->name = $request->input('firstname'); } elseif ($user->type == 'studio') { $studio = Studio::where('user_id', $user->id)->first(); $studio->title = ''; $studio->name = $request->input('name'); $studio->save(); $user->name = $request->input('name'); } $user->email = $request->input('email'); $user->contact = $request->input('contact'); $user->save(); return redirect('profile#edit')->with('success', 'Profile changed successfully!'); } return redirect('profile#edit')->with('warning', 'Wrong Password!'); }
/** * reate a artist studio * * @return View */ public function createStudio(Request $request) { //dd($request); $user = Auth::user(); $artist = Artist::where('user_id', $user->id)->first(); if (Studio::where('user_id', $user->id)->first()) { return redirect('profile#studios')->with('error', 'Multiple Studios are not allowed.'); } $studio = new Studio(); $studio->user_id = $user->id; $studio->name = $request->input('name'); $studio->title = ''; if ($studio->save()) { $artist->studios()->attach($studio->id); session()->flash('success', 'Studio Created. Now Complete studio\'s profile.'); $data['name'] = $studio->name; $data['type'] = 'studio'; $data['contact'] = $user->contact; $data['email'] = $user->email; Mail::send('emails.admin_notification_signup', $data, function ($message) use($data) { $message->from('*****@*****.**', "Tattoo Cultr"); $message->subject("New Studio Signup"); $message->to(env('ADMIN_EMAIL')); }); } else { session()->flash('error', 'Error! Please try again..'); } return redirect('studio/' . $studio->user->slug); }
public function adminUploadTattoosSave(Request $request) { $user = Auth::user(); if ($request->hasFile('file')) { //upload an image to the /img/tmp directory and return the filepath. $file = $request->file('file'); $tmpFilePath = '/uploads/images/original/'; $tmpFileName = 'tattoo-' . time() . '-' . $file->getClientOriginalName(); //save original file $file = $file->move(public_path() . $tmpFilePath, $tmpFileName); $path = $tmpFilePath . $tmpFileName; //edit image $img = \Image::make($file); $img->backup(); // reset image (return to backup state) $img->reset(); $img->fit(360); //240*240 $img->save('uploads/images/thumbnail/' . $tmpFileName); // reset image (return to backup state) $img->reset(); $img->fit(120); //100*100 $img->save('uploads/images/small/' . $tmpFileName); //save tattoo in DB $tattoo = new Tattoo(); $tattoo->title = ''; $tattoo->url = $tmpFileName; $tattoo->description = ''; $tattoo->user_id = $user->id; $tattoo->approved = true; $tattoo->save(); if ($user->type == 'artist') { $profile = Artist::where('user_id', $user->id)->first(); $profile->tattoos()->save($tattoo); } elseif ($user->type == 'studio') { $profile = Studio::where('user_id', $user->id)->first(); $profile->tattoos()->save($tattoo); } return response()->json(array('path' => $tmpFileName), 200); } else { return response()->json(false, 200); } }