diff options
| author | horus | 2018-02-10 04:43:48 +0100 |
|---|---|---|
| committer | horus | 2018-02-10 04:43:48 +0100 |
| commit | 968f6448af597b8375b858634f66ade558860aca (patch) | |
| tree | 7a7be71c48db2da05acd82f9ebd0d4cdc380b3c1 | |
| parent | 192581bd55924b97ac14f270e408f1faeb856da8 (diff) | |
| download | alkobote-968f6448af597b8375b858634f66ade558860aca.tar.gz | |
Adds sorting.
| -rw-r--r-- | site/app/Http/Controllers/IndexController.php | 15 | ||||
| -rw-r--r-- | site/app/Http/Controllers/OfferController.php | 64 | ||||
| -rw-r--r-- | site/resources/views/offer.blade.php | 50 |
3 files changed, 107 insertions, 22 deletions
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 "<pre>"; - #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]); } } diff --git a/site/resources/views/offer.blade.php b/site/resources/views/offer.blade.php index 54e4e75..73aa2bb 100644 --- a/site/resources/views/offer.blade.php +++ b/site/resources/views/offer.blade.php @@ -10,6 +10,56 @@ </div> </div> +<div class="btn-toolbar mb-2 align-top" role="toolbar" aria-label="Sortieren"> + <div class="btn-group" role="group" aria-label="Sortieren"> + <div class="dropdown"> + <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> + Preis + </button> + <div class="dropdown-menu" aria-labelledby="dropdownMenuButton"> + <a class="dropdown-item" href="?sort=price&order=asc">Aufwärts</a> + <a class="dropdown-item" href="?sort=price&order=desc">Abwärts</a> + </div> + </div> + <div class="dropdown"> + <button class="ml-2 btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> + Name + </button> + <div class="dropdown-menu" aria-labelledby="dropdownMenuButton"> + <a class="dropdown-item" href="?sort=name&order=asc">Aufwärts</a> + <a class="dropdown-item" href="?sort=name&order=desc">Abwärts</a> + </div> + </div> + <div class="dropdown"> + <button class="ml-2 btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> + Shop + </button> + <div class="dropdown-menu" aria-labelledby="dropdownMenuButton"> + <a class="dropdown-item" href="?sort=shop&order=asc">Aufwärts</a> + <a class="dropdown-item" href="?sort=shop&order=desc">Abwärts</a> + </div> + </div> + <div class="dropdown"> + <button class="ml-2 btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> + Prozente + </button> + <div class="dropdown-menu" aria-labelledby="dropdownMenuButton"> + <a class="dropdown-item" href="?sort=procent&order=asc">Aufwärts</a> + <a class="dropdown-item" href="?sort=procent&order=desc">Abwärts</a> + </div> + </div> + <div class="dropdown"> + <button class="ml-2 btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> + Aktualität + </button> + <div class="dropdown-menu" aria-labelledby="dropdownMenuButton"> + <a class="dropdown-item" href="?sort=time&order=asc">Aktuellste</a> + <a class="dropdown-item" href="?sort=time&order=desc">Älteste</a> + </div> + </div> + </div> +</div> + <div class="row mb-2"> </div> <?php |
