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 {