/** * Show the application dashboard to the user. * * @return Response */ public function index() { $options = array(); $series = DB::table('series')->orderBy('id')->distinct()->get(); $profils = DB::table('users')->join('user_info', 'users.id', '=', 'user_info.iduser_info'); if (Input::has('search')) { $search = explode(",", Input::get('search')); $ids = DB::table('user_tags'); $i = 0; foreach ($search as $s) { if ($s != '') { $liste_ids_forS = Tag::where('info_tags', '=', $s)->lists('id'); $ids->whereIn('id', $liste_ids_forS); } } $ids = $ids->select('id')->distinct(); Debugbar::info($ids->lists('id')); $profils = $profils->whereIn('users.id', $ids->lists('id')); Debugbar::info('il y a ' . $profils->count('users.id') . ' profil(s) retourné(s) par la requête'); } if (Input::has('serie')) { $profils = $profils->whereIn('info_promo_type', explode(' ', Input::get('serie'))); } if (Input::has('annee')) { $profils = $profils->whereIn('info_promo', explode(' ', Input::get('annee'))); if (empty(Input::except('annee'))) { $img = Promo::whereIn('year', explode(' ', Input::get('annee')))->get()->first(); // reste à récupérer l’image correspondant à la promo :) $options['promo_image'] = Input::get('annee'); } } /* Données essentielles à la page de recherche normale */ // on s’occupe des profils dans le retour de page, afin de remplir la condition avant de paginer $options['series'] = $series; /* Ajout des données accessoires */ if (isset($img) && $img) { $options['promo_image'] = $img; } /* Sélecteur principal de vues */ if ($profils->get()) { $profils = $profils->paginate(15); // on get(), mais avec de la pagination :) $options['profils'] = $profils->appends(Input::except('page')); // le append permet d’avoir une pagination correcte (sans perdre le fil :) return view('search.search', $options); } else { return view('search.empty'); } }