From 5b6fd72507a9a11648ae83e81a8b85b6bf2fba8c Mon Sep 17 00:00:00 2001 From: Diatrex Date: Mon, 2 Mar 2020 11:16:05 +0300 Subject: [PATCH] =?UTF-8?q?#975=20Ordering=20options=20in=20listing=20page?= =?UTF-8?q?=20(s=C4=B1ralama=20se=C3=A7enekleri)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../advs-module/resources/lang/en/field.php | 5 ++++- .../views/list/partials/list-sort-by.twig | 22 ++++++++++++++----- .../advs-module/src/Adv/AdvRepository.php | 16 ++++++++++++-- 3 files changed, 34 insertions(+), 9 deletions(-) diff --git a/addons/default/visiosoft/advs-module/resources/lang/en/field.php b/addons/default/visiosoft/advs-module/resources/lang/en/field.php index 620053e46..9fbee552d 100644 --- a/addons/default/visiosoft/advs-module/resources/lang/en/field.php +++ b/addons/default/visiosoft/advs-module/resources/lang/en/field.php @@ -130,8 +130,11 @@ return [ 'pick_option' => 'Pick an option', 'pick_ordering' => 'Ordering', 'price_high' => 'Price High to Low', - 'price-low' => 'Price Low to High', + 'price_low' => 'Price Low to High', 'newest' => 'Newest', + 'oldest' => 'Oldest', + 'address_a_z' => 'Address (A to Z)', + 'address_z_a' => 'Address (Z to A)', 'categories' => 'Categories', 'all_categories' => 'All Categories', 'location' => 'Location', diff --git a/addons/default/visiosoft/advs-module/resources/views/list/partials/list-sort-by.twig b/addons/default/visiosoft/advs-module/resources/views/list/partials/list-sort-by.twig index 0ade2fc8f..6042046ab 100644 --- a/addons/default/visiosoft/advs-module/resources/views/list/partials/list-sort-by.twig +++ b/addons/default/visiosoft/advs-module/resources/views/list/partials/list-sort-by.twig @@ -1,26 +1,36 @@ diff --git a/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php b/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php index c9eb75ade..94b0c6ebf 100644 --- a/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php +++ b/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php @@ -174,10 +174,10 @@ class AdvRepository extends EntryRepository implements AdvRepositoryInterface $query = $query->whereRaw("ST_DISTANCE(ST_GeomFromText('POINT(" . $param['dlong'] . " " . $param['dlat'] . ")'), coor) < " . $param['distance']); } - if ($isActiveDopings) { $query = app('Visiosoft\DopingsModule\Http\Controller\DopingsController')->search($query, $param); } + if (!empty($param['sort_by'])) { switch ($param['sort_by']) { case "popular": @@ -189,13 +189,25 @@ class AdvRepository extends EntryRepository implements AdvRepositoryInterface case "sort_price_down": $query = $query->orderBy('advs_advs.price', 'asc'); break; - case "sort_time": + case "sort_time_newest": $query = $query->orderBy('advs_advs.created_at', 'desc'); break; + case "sort_time_oldest": + $query = $query->orderBy('advs_advs.created_at', 'asc'); + break; + case "address_a_z": + $query = $query->join('location_cities_translations', 'advs_advs.city', '=', 'location_cities_translations.entry_id') + ->orderBy('location_cities_translations.name', 'ASC'); + break; + case "address_z_a": + $query = $query->join('location_cities_translations', 'advs_advs.city', '=', 'location_cities_translations.entry_id') + ->orderBy('location_cities_translations.name', 'DESC'); + break; } } else { $query = $query->orderBy('advs_advs.created_at', 'desc'); } + if ($isActiveDopings) { $query = app('Visiosoft\DopingsModule\Http\Controller\DopingsController')->querySelect($query, $param); } else {