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 @@ -
{{ $offer->procent}}% gesenkt
+ {{ $offer->shop }} +{{ TF::fF($offer->original_price) . "€" }} {{ TF::fF($offer->discounted_price) . "€" }}*
+ {{ TF::fF($offer->base_price ) }}€/L
+
+ Versand: {{ TF::fF($offer->shipping_costs) }}€ Gratis ab {{ $offer->free_shipping }}
+
+ * Preis vom {{ strftime("%d. %B", $offer->created_at) }}
+