From 968f6448af597b8375b858634f66ade558860aca Mon Sep 17 00:00:00 2001 From: horus Date: Sat, 10 Feb 2018 04:43:48 +0100 Subject: Adds sorting. --- site/app/Http/Controllers/IndexController.php | 15 ------- site/app/Http/Controllers/OfferController.php | 64 ++++++++++++++++++++++++--- 2 files changed, 57 insertions(+), 22 deletions(-) (limited to 'site/app') diff --git a/site/app/Http/Controllers/IndexController.php b/site/app/Http/Controllers/IndexController.php index c0056d9..d175388 100644 --- a/site/app/Http/Controllers/IndexController.php +++ b/site/app/Http/Controllers/IndexController.php @@ -25,21 +25,6 @@ class IndexController extends Controller { $query .= "(SELECT name, image_url, spirit_type, spirit_type AS url, spirit_type AS angebotsname, original_price, discounted_price, procent, '' AS linktext FROM ". $view ."_view WHERE original_price > 19.98 ORDER BY procent DESC LIMIT 1)"; } - // removes the last union - #$query .= substr($query, -1, strlen(" UNION ")); - #echo "
";
- #var_dump($query); exit;
-
- /*
- $dbh = DB::connection('mysql')->getPdo();
- $stmt = $dbh->prepare($query);
- $stmt->execute();
-
- $data = $stmt->fetchAll(\PDO::FETCH_ASSOC);
- */
-
-
- #var_dump($query); exit;
$data = DB::select($query);
#$data = DB::table('whisky_view')->orderBy('procent', 'DESC')->limit(100)->simplePaginate(20);
diff --git a/site/app/Http/Controllers/OfferController.php b/site/app/Http/Controllers/OfferController.php
index 99108cd..563708f 100644
--- a/site/app/Http/Controllers/OfferController.php
+++ b/site/app/Http/Controllers/OfferController.php
@@ -6,6 +6,9 @@ use App\Helpers\CryptoHelper;
use Illuminate\Support\Facades\DB;
use App\Http\Controllers\Controller;
+use Cookie;
+use Illuminate\Support\Facades\Input;
+
class OfferController extends Controller {
/**
* Shows the index page.
@@ -13,14 +16,61 @@ class OfferController extends Controller {
* @return Response
*/
public function showPage(Request $request) {
-
- $view_name = \Request::route()->getName();
- $data = DB::table($view_name . '_view')->orderBy('procent', 'DESC')->limit(100)->simplePaginate(20);
- if ( "misc" == $view_name ) {
- $view_name = "Andere Angebote";
- }
+ /*
+ * 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));
+
+ /*
+ * Database query
+ */
+ $view_name = \Request::route()->getName();
+ $data = DB::table($view_name . '_view')->orderBy($sort_by, $order_by)->limit(100)->simplePaginate(20);
- return view('offer', ['data' => $data, 'spirit_type' => $view_name]);
+ if ( "misc" == $view_name ) {
+ $view_name = "Andere Angebote";
+ }
+
+ return view('offer', ['data' => $data, 'spirit_type' => $view_name]);
}
}
--
cgit v1.2.3