summaryrefslogtreecommitdiff
path: root/app/Http/Controllers
diff options
context:
space:
mode:
authorhorus2019-05-19 20:54:05 +0200
committerhorus2019-05-19 20:54:05 +0200
commit95f37787bfe32eb5ce37afbee9c68bd233edffda (patch)
tree69a9e0c86b06b9cecf84e666031b6f496bddecea /app/Http/Controllers
parent924f23c1c6b5deeea44b08c7d3032426826fa3bb (diff)
downloadkategorischeraperitif-95f37787bfe32eb5ce37afbee9c68bd233edffda.tar.gz
Adds search by spirit type.
Diffstat (limited to 'app/Http/Controllers')
-rw-r--r--app/Http/Controllers/ListOfferController.php20
-rw-r--r--app/Http/Controllers/RSSController.php10
-rw-r--r--app/Http/Controllers/SearchController.php23
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 ]);
}
}