summaryrefslogtreecommitdiff
path: root/site/app/Http/Controllers/FKSearchController.php
diff options
context:
space:
mode:
Diffstat (limited to 'site/app/Http/Controllers/FKSearchController.php')
-rw-r--r--site/app/Http/Controllers/FKSearchController.php80
1 files changed, 80 insertions, 0 deletions
diff --git a/site/app/Http/Controllers/FKSearchController.php b/site/app/Http/Controllers/FKSearchController.php
new file mode 100644
index 0000000..a148bba
--- /dev/null
+++ b/site/app/Http/Controllers/FKSearchController.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 App\Libraries\Utility;
+
+class FKSearchController extends Controller {
+ /**
+ * Shows the index page.
+ *
+ * @return Response
+ */
+ public function showPage(Request $request) {
+
+ /*
+ * Sorting
+ */
+ $sort_by = Input::get("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;
+ }
+
+ $order_by = $request->input("order");
+ if ( "desc" != $order_by ) {
+ if ( "created_at" == $sort_by &&"asc" != $order_by ) {
+ $order_by = "desc";
+ } else {
+ $order_by = "asc";
+ }
+ }
+
+ $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)->simplePaginate(20);
+ $count = DB::table('all_view')->whereNotNull('url')->where('name', 'like', $q)->orWhere('spirit_type', 'like', $q)->orWhere('shop', 'like', $q);
+
+ $query_string = "";
+ $query_params = Input::except('page');
+ foreach( $query_params as $key => $value) {
+ $query_string .= "&" . $key . "=" . $value;
+ }
+ $query_string = ltrim($query_string, "&");
+
+ /*
+ * For strftime() in view.
+ */
+ #setlocale(LC_TIME, 'de_DE.utf8');
+
+ return view('fk-search', ['data' => $data, 'count' => $count, 'search_phrase' => $query, 'rss_feed' => '/angebote/search/feed/?' . $query_string ]);
+ }
+}