diff options
| author | horus | 2019-05-19 20:54:05 +0200 |
|---|---|---|
| committer | horus | 2019-05-19 20:54:05 +0200 |
| commit | 95f37787bfe32eb5ce37afbee9c68bd233edffda (patch) | |
| tree | 69a9e0c86b06b9cecf84e666031b6f496bddecea /app/Http/Controllers | |
| parent | 924f23c1c6b5deeea44b08c7d3032426826fa3bb (diff) | |
| download | kategorischeraperitif-95f37787bfe32eb5ce37afbee9c68bd233edffda.tar.gz | |
Adds search by spirit type.
Diffstat (limited to 'app/Http/Controllers')
| -rw-r--r-- | app/Http/Controllers/ListOfferController.php | 20 | ||||
| -rw-r--r-- | app/Http/Controllers/RSSController.php | 10 | ||||
| -rw-r--r-- | app/Http/Controllers/SearchController.php | 23 |
3 files changed, 41 insertions, 12 deletions
diff --git a/app/Http/Controllers/ListOfferController.php b/app/Http/Controllers/ListOfferController.php index 993bfcd..ba4face 100644 --- a/app/Http/Controllers/ListOfferController.php +++ b/app/Http/Controllers/ListOfferController.php @@ -57,9 +57,18 @@ class ListOfferController extends Controller { * Database query */ $view_name = \Request::route()->getName(); - #$data = DB::table($view_name . '_view')->whereNotNull('url')->orderBy($sort_by, $order_by)->simplePaginate(10); - $data = DB::table($view_name . '_view')->whereNotNull('url')->orderBy($sort_by, $order_by)->paginate(10); - $count = DB::table($view_name . '_view')->whereNotNull('url')->count(); + + if ( "" != Input::get('type') ) { + $data = DB::table($view_name . '_view')->where('spirit_type', '=', Input::get('type'))->whereNotNull('url')->orderBy($sort_by, $order_by)->paginate(10); + $count = DB::table($view_name . '_view')->where('spirit_type', '=', Input::get('type'))->whereNotNull('url')->count(); + + } else { + $data = DB::table($view_name . '_view')->whereNotNull('url')->orderBy($sort_by, $order_by)->paginate(10); + $count = DB::table($view_name . '_view')->whereNotNull('url')->count(); + } + + # Only used on misc_view, all_view and search. + $spirit_types = DB::select('SELECT DISTINCT spirit_type FROM ' . $view_name . '_view ' . ' ORDER BY spirit_type' ); $rss_feed = "/angebote/" . $view_name . "/feed/"; $query_string = ""; @@ -73,6 +82,7 @@ class ListOfferController extends Controller { } if ( "misc" == $view_name ) { + $view_name = "Andere Angebote"; if ( $data->count() ) { $title = "andere Angebote"; @@ -87,9 +97,11 @@ class ListOfferController extends Controller { $title = "Angebote"; } } else { + $spirit_types = array(); + $title = ucfirst($view_name) . "-Angebote"; } - return view('listoffer', ['data' => $data, 'count' => $count, 'spirit_type' => $view_name, 'rss_feed' => $rss_feed, 'title' => $title ]); + return view('listoffer', ['data' => $data, 'count' => $count, 'spirit_type' => $view_name, 'spirit_types' => $spirit_types, 'rss_feed' => $rss_feed, 'title' => $title ]); } } diff --git a/app/Http/Controllers/RSSController.php b/app/Http/Controllers/RSSController.php index 5c30bd9..f46aef4 100644 --- a/app/Http/Controllers/RSSController.php +++ b/app/Http/Controllers/RSSController.php @@ -61,9 +61,13 @@ class RSSController extends Controller { $view_name = str_replace("/angebote/", "", $view_name); if ( "search" == $view_name ) { - $query = Input::get("q"); - $q = "%" . Utility::escapeLike($query) . "%"; - $data = DB::table('all_view')->whereNotNull('url')->where('name', 'like', $q)->orWhere('spirit_type', 'like', $q)->orderBy($sort_by, $order_by)->limit(20)->get(); + if ( "" != Input::get("q") ) { + $query = Input::get("q"); + $q = "%" . Utility::escapeLike($query) . "%"; + $data = DB::table('all_view')->whereNotNull('url')->where('name', 'like', $q)->orWhere('spirit_type', 'like', $q)->orderBy($sort_by, $order_by)->limit(20)->get(); + } else { + $data = DB::table('all_view')->where('spirit_type', '=', Input::get('type'))->whereNotNull('url')->orderBy($sort_by, $order_by)->limit(20)->get(); + } } else { $data = DB::table($view_name . '_view')->orderBy($sort_by, $order_by)->limit(20)->get(); } diff --git a/app/Http/Controllers/SearchController.php b/app/Http/Controllers/SearchController.php index 4fe8db3..9efc391 100644 --- a/app/Http/Controllers/SearchController.php +++ b/app/Http/Controllers/SearchController.php @@ -58,10 +58,22 @@ class SearchController extends Controller { } } - $query = Input::get("q"); - $q = "%" . Utility::escapeLike($query) . "%"; - $data = DB::table('all_view')->whereNotNull('url')->where('name', 'like', $q)->orWhere('spirit_type', 'like', $q)->orWhere('shop', 'like', $q)->orderBy($sort_by, $order_by)->paginate(20); - $count = DB::table('all_view')->whereNotNull('url')->where('name', 'like', $q)->orWhere('spirit_type', 'like', $q)->orWhere('shop', 'like', $q); + if ( "" != Input::get('type') ) { + $query = Input::get('type'); + $data = DB::table('all_view')->where('spirit_type', '=', Input::get('type'))->whereNotNull('url')->orderBy($sort_by, $order_by)->paginate(20); + $count = DB::table('all_view')->where('spirit_type', '=', Input::get('type'))->whereNotNull('url')->count(); + + $title = "Suche nach " . ucwords(Input::get('type')); + } else { + $query = Input::get("q"); + $q = "%" . Utility::escapeLike($query) . "%"; + $data = DB::table('all_view')->whereNotNull('url')->where('name', 'like', $q)->orWhere('spirit_type', 'like', $q)->orWhere('shop', 'like', $q)->orderBy($sort_by, $order_by)->paginate(20); + $count = DB::table('all_view')->whereNotNull('url')->where('name', 'like', $q)->orWhere('spirit_type', 'like', $q)->orWhere('shop', 'like', $q)->count(); + + $title = "Suche nach " . ucwords(Input::get('q')); + } + + $spirit_types = DB::select('SELECT DISTINCT spirit_type FROM all_view ORDER BY spirit_type' ); $query_string = ""; $query_params = Input::except('page'); @@ -70,11 +82,12 @@ class SearchController extends Controller { } $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, 'rss_feed' => '/angebote/search/feed/?' . $query_string ]); + return view('search', ['data' => $data, 'count' => $count, 'search_phrase' => $query, 'spirit_types' => $spirit_types, 'title' => $title, 'rss_feed' => '/angebote/search/feed/?' . $query_string ]); } } |
