get("filter"); switch ($sort_by) { case("price"): $sort_by = "discounted_price"; break; case("discounted_price"): $sort_by = "discounted_price"; break; case("name"): $sort_by = "name"; break; case("shop"): $sort_by = "shop"; break; case("procent"): $sort_by = "procent"; break; case("time"): $sort_by = "created_at"; break; case("created_at"): $sort_by = "created_at"; break; default: $sort_by = "created_at"; break; } $order_by = $request->input("order"); if ( "desc" != $order_by ) { if ( "created_at" == $sort_by &&"asc" != $order_by ) { $order_by = "desc"; } else { $order_by = "asc"; } } $title = "Die Suche nach dem Nirwana"; $query = "nichts"; $data = DB::table('all_view'); if ( "" != $request->get('type') ) { $query = $request->get('type'); $data = $data->where('spirit_type', '=', $request->get('type')); $title = "Alle " . ucwords($request->get('type')) . "-Angebote"; } else if ( "" != $request->get('shop') ) { $query = $request->get('shop'); $data = $data->where('shop', '=', $request->get('shop')); $title = "Alle Angebote von " . ucwords($request->get('shop')); } else if ( "" != $request->get('q') ) { $query = $request->get("q"); $q = "%" . Utility::escapeLike($query) . "%"; $data = $data->where('name', 'like', $q)->orWhere('spirit_type', 'like', $q)->orWhere('shop', 'like', $q); $title = "Suche nach " . ucwords($request->get('q')); } $data = $data->whereNotNull('url'); $count= $data->count(); $data = $data->orderBy($sort_by, $order_by)->paginate(20); $spirit_types = DB::select('SELECT DISTINCT spirit_type FROM all_view ORDER BY spirit_type' ); $query_string = ""; $query_params = $request->except('page'); foreach( $query_params as $key => $value) { $query_string .= "&" . $key . "=" . $value; } $query_string = ltrim($query_string, "&"); /* * For strftime() in view. */ #setlocale(LC_TIME, 'de_DE.utf8'); return view('search', ['data' => $data, 'count' => $count, 'search_phrase' => $query, 'spirit_types' => $spirit_types, 'title' => $title, 'rss_feed' => '/search/feed/?' . $query_string ]); } }