/** * Show artist profile * * return @Response */ public function showprofile($user) { $profile = User::where('profile_url', '=', $user)->where('approved', '=', '0')->where('deleted_at', '=', null)->first(); if (!is_null($profile)) { $activation = Activation::where('user', '=', $profile->id)->first(); $page = Page::where('title', '=', 'faq-artist')->first(); $transactions = Purchase::where('artist', '=', $profile->id)->get(); if ($activation) { return View::make('artist.not-activated'); } else { if ($profile) { if ($profile->active == 1) { $songs = Song::where('artist', '=', $profile->id)->where('completed', '=', '1')->orderBy('id', 'desc')->paginate(10); $bundles = Bundle::where('artist', '=', $profile->id)->get(); $wall = new \Illuminate\Database\Eloquent\Collection(); $wall = $wall->merge($songs); $wall = $wall->merge($bundles); //dd($wall); $followers = Follow::where('artist', '=', $profile->id)->get(); $countries = []; foreach ($followers as $f) { if (empty($f->profile->country)) { $f->profile->country = 'Country unknown'; } if (isset($countries[$f->profile->country])) { $countries[$f->profile->country]++; } else { $countries[$f->profile->country] = 1; } } $events = ArtistEvent::where('artist', '=', $profile->id)->where('date', '>', \Carbon\Carbon::now())->orderBy('id', 'desc')->take(3)->get(); $songs_in = []; foreach ($songs as $s) { $songs_in[] = $s->id; } if (count($songs_in) > 0) { $comments = Comment::whereIn('song', $songs_in)->orderBy('id', 'desc')->take(3)->get(); } else { $comments = ""; } $wall->sortByDesc('created_at'); //dd($wall); $notifications = MyNotification::where('user', '=', $profile->id)->get(); return View::make('artist.profile-new', ['profile' => $profile, 'songs' => $songs, 'events' => $events, 'comments' => $comments, 'notifications' => $notifications, 'wall' => $wall, 'page' => $page, 'transactions' => $transactions, 'countries' => $countries]); } else { return Redirect::to('profile/settings'); } } else { App::abort(404); } } } else { App::abort(404); } }