From 0a0730479e92eafa08ce58964a8f1db8f46abf83 Mon Sep 17 00:00:00 2001 From: horus Date: Tue, 13 Feb 2018 20:19:46 +0100 Subject: Implements basic search with LIKE query. (website) --- site/app/Http/Controllers/SearchController.php | 80 ++++++++ site/public/css/colors.css | 10 + site/public/css/custom.css | 11 ++ site/resources/views/layouts/base.blade.php | 2 +- site/resources/views/search.blade.php | 204 +++++++++++++++++++++ site/resources/views/snippets/navbar.blade.php | 17 +- .../resources/views/snippets/sortbuttons.blade.php | 20 +- site/routes/web.php | 2 + 8 files changed, 331 insertions(+), 15 deletions(-) create mode 100644 site/app/Http/Controllers/SearchController.php create mode 100644 site/resources/views/search.blade.php diff --git a/site/app/Http/Controllers/SearchController.php b/site/app/Http/Controllers/SearchController.php new file mode 100644 index 0000000..bb79bae --- /dev/null +++ b/site/app/Http/Controllers/SearchController.php @@ -0,0 +1,80 @@ +cookie("sort"); + } + 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; + } + Cookie::queue(Cookie::make('sort', $sort_by, 60*24)); + + $order_by = $request->input("order"); + if ( is_null($order_by) ) { + $order_by = $request->cookie("order"); + } + if ( "desc" != $order_by ) { + $order_by = "asc"; + } + Cookie::queue(Cookie::make('order', $order_by, 60*24)); + + $query = Input::get("q"); + $q = "%" . $this->escapeLike($query) . "%"; + $data = DB::table('all_view')->where('name', 'like', $q)->orWhere('spirit_type', 'like', $q)->orderBy($sort_by, $order_by)->simplePaginate(20); + #$data = DB::table('whisky_view')->orderBy('procent', 'DESC')->limit(100)->simplePaginate(20); + #var_dump($data); exit; + + return view('search', ['data' => $data, 'search_phrase' => $query ]); + } + + private function escapeLike($string) { + $search = array('%', '_'); + $replace = array('\%', '\_'); + return str_replace($search, $replace, $string); + } + +} diff --git a/site/public/css/colors.css b/site/public/css/colors.css index be2d738..0cf48d2 100644 --- a/site/public/css/colors.css +++ b/site/public/css/colors.css @@ -37,3 +37,13 @@ a.u:hover, .page-link:hover { color: #142639 !important; } +.btn-primary { + color: #142639 !important; + background-color: #1289A7 !important; + border: 1px solid #142639 !important; +} +.btn-secondary:hover { + background-color: #d1d8e0 !important; + color: #142639 !important; + border: 1px solid #142639 !important; +} diff --git a/site/public/css/custom.css b/site/public/css/custom.css index 3fe47d0..016e282 100644 --- a/site/public/css/custom.css +++ b/site/public/css/custom.css @@ -110,3 +110,14 @@ footer { .footer-link { padding-left: 0px !important; } +.navbar-small { + font-size: 70% !important; +} +.search-btn-bg-white { + /* + */ + background-color: rgba(255,255,255,0.05)!important; +} +.search-btn-bg-white:hover { + background-color: rgba(255,255,255,.15)!important; +} diff --git a/site/resources/views/layouts/base.blade.php b/site/resources/views/layouts/base.blade.php index 4ebaff6..491d324 100644 --- a/site/resources/views/layouts/base.blade.php +++ b/site/resources/views/layouts/base.blade.php @@ -6,7 +6,7 @@ - Angebote | Fuselkoenig.de + @yield('header') | Fuselkoenig.de +

Zurück zur Übersicht...

+ + + +count()) { + /* Suchform */ + + if ( !$data->count() ) { + /* Keine Ergebnisse */ +?> + + +
+
+ + + Suche nach der gewünschten Spirituose. +
+ +
+ +@include('snippets.sortbuttons') + + +
+ +
+
+ + +
+
+

{{ $offer->procent}}%

+ + + +
+
+
+ {{ $offer->spirit_type }} + {{ $offer->shop }} +
+ +

+ {{ $offer->name }} + +

+ +

{{ TF::fF($offer->original_price) . "€" }} {{ TF::fF($offer->discounted_price) . "€" }}* + {{ TF::fF($offer->base_price ) }}€/L +

+
+ {{ TF::fF($offer->volume) . " Liter" }}{{ TF::fF($offer->abv) . "%" }} Alk. +
+ Jetzt bestellen +

+ Versand: {{ TF::fF($offer->shipping_costs) }}€ Gratis ab {{ $offer->free_shipping }} +
+ + * Preis vom {{ strftime("%d. %B", $offer->created_at) }} +

+
+
+ {{ $offer->name }} + + + + {{ $offer->name }} +
+ +
+
+

{{ $offer->procent}}% gesenkt

+ {{ $offer->shop }} +
+
+ {{ $offer->spirit_type }} +
+

+ {{ $offer->name }} +

+ +
+ {{ TF::fF($offer->volume) . " Liter" }}{{ TF::fF($offer->abv) . "%" }} Alk. +
+ +

{{ TF::fF($offer->original_price) . "€" }} {{ TF::fF($offer->discounted_price) . "€" }}* + {{ TF::fF($offer->base_price ) }}€/L +

+ Jetzt bestellen +

+ Versand: {{ TF::fF($offer->shipping_costs) }}€ Gratis ab {{ $offer->free_shipping }} +
+ * Preis vom {{ strftime("%d. %B", $offer->created_at) }} +

+
+
+
+
+ + + +
+ + + + + + {{ $data->links() }} + + + + + + +@endsection + diff --git a/site/resources/views/snippets/navbar.blade.php b/site/resources/views/snippets/navbar.blade.php index 0bb2a9b..722836e 100644 --- a/site/resources/views/snippets/navbar.blade.php +++ b/site/resources/views/snippets/navbar.blade.php @@ -1,7 +1,7 @@
diff --git a/site/resources/views/snippets/sortbuttons.blade.php b/site/resources/views/snippets/sortbuttons.blade.php index bf99649..22f7f02 100644 --- a/site/resources/views/snippets/sortbuttons.blade.php +++ b/site/resources/views/snippets/sortbuttons.blade.php @@ -8,8 +8,8 @@ Preis @@ -37,8 +37,8 @@ Preisnachlass diff --git a/site/routes/web.php b/site/routes/web.php index 4c64112..f8efd13 100644 --- a/site/routes/web.php +++ b/site/routes/web.php @@ -20,6 +20,8 @@ Route::get('/rum', 'OfferController@showPage')->name('rum'); Route::get('/misc', 'OfferController@showPage')->name('misc'); Route::get('/all', 'OfferController@showPage')->name('all'); +Route::get('/search', 'SearchController@showPage')->name('search'); + Route::get('/feeds', 'PageFeedController@showPage')->name('feed'); Route::get('/whisky/feed', 'FeedController@showPage')->name('whisky_feed'); -- cgit v1.2.3