summaryrefslogtreecommitdiff
path: root/site/app
diff options
context:
space:
mode:
Diffstat (limited to 'site/app')
-rw-r--r--site/app/Http/Controllers/SearchController.php80
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);
+ }
+
+}