diff options
Diffstat (limited to 'site/app/Http/Controllers/SearchController.php')
| -rw-r--r-- | site/app/Http/Controllers/SearchController.php | 80 |
1 files changed, 80 insertions, 0 deletions
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 @@ +<?php +namespace App\Http\Controllers; +use Illuminate\Http\Request; +use App\Helpers\CryptoHelper; + +use Illuminate\Support\Facades\DB; +use App\Http\Controllers\Controller; + +use Illuminate\Support\Facades\Input; + +use Cookie; + +class SearchController extends Controller { + /** + * Shows the index page. + * + * @return Response + */ + public function showPage(Request $request) { + + /* + * Sorting + */ + $sort_by = Input::get("sort"); + if ( is_null($sort_by) ) { + $sort_by = $request->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); + } + +} |
