From d5ea3ab18b939f175a56d93dcfb21b91291432b2 Mon Sep 17 00:00:00 2001 From: Diatrex Date: Thu, 13 Feb 2020 16:16:33 +0300 Subject: [PATCH 1/2] #74 Improvements of SEO link structure like Vebze (there was an error) --- .../views/list/partials/list-filter.twig | 28 ++++++----- .../src/Http/Controller/advsController.php | 49 ++++++++++--------- 2 files changed, 43 insertions(+), 34 deletions(-) diff --git a/addons/default/visiosoft/advs-module/resources/views/list/partials/list-filter.twig b/addons/default/visiosoft/advs-module/resources/views/list/partials/list-filter.twig index 0af3c879b..72a6defd1 100644 --- a/addons/default/visiosoft/advs-module/resources/views/list/partials/list-filter.twig +++ b/addons/default/visiosoft/advs-module/resources/views/list/partials/list-filter.twig @@ -1,16 +1,22 @@ -{% if 'cat' in param|keys %} - {% set catId = entries('cats', 'category').find(param['cat']) %} - {% set cityId = null %} - {% if 'city' in param|keys %} - {% set citiesArray = param['city'][0]|split(',') %} - {% if count(citiesArray) is same as(1) %} - {% set cityId = entries('location', 'cities').find(param['city'][0]) %} - {% endif %} - {% endif %} -
-{% else %} +{% set formHtml %} +{% endset %} +{% if 'cat' in param|keys %} + {% if not param['cat'] is empty %} + {% set catId = entries('cats', 'category').find(param['cat']) %} + {% set cityId = null %} + {% if 'city' in param|keys %} + {% set citiesArray = param['city'][0]|split(',') %} + {% if count(citiesArray) is same as(1) %} + {% set cityId = entries('location', 'cities').find(param['city'][0]) %} + {% endif %} + {% endif %} + {% set formHtml %} + + {% endset %} + {% endif %} {% endif %} +{{ formHtml }}
diff --git a/addons/default/visiosoft/advs-module/src/Http/Controller/advsController.php b/addons/default/visiosoft/advs-module/src/Http/Controller/advsController.php index 9fdc6f4ae..cc2b821b5 100644 --- a/addons/default/visiosoft/advs-module/src/Http/Controller/advsController.php +++ b/addons/default/visiosoft/advs-module/src/Http/Controller/advsController.php @@ -164,42 +164,45 @@ class AdvsController extends PublicController } // Search by city slug - if (is_null($city) && isset($param['city'][0]) && !empty($param['city'][0]) && strpos($param['city'][0], ',') === false) { - $cityId = $this->cityRepository->find($param['city'][0]); - return redirect($this->fullLink( - $param, - route('adv_list_seo', [$categoryId->slug, $cityId->slug]), - array() - )); - } elseif (isset($param['city']) && !empty($param['city'][0]) && strpos($param['city'][0], ',') === false) { - $cityId = $this->cityRepository->find($param['city'][0]); - $param['city'] = [$cityId->id]; - if ($city !== $cityId->slug) { + if ($category) { + if (is_null($city) && isset($param['city'][0]) && !empty($param['city'][0]) && strpos($param['city'][0], ',') === false) { + $cityId = $this->cityRepository->find($param['city'][0]); return redirect($this->fullLink( $param, route('adv_list_seo', [$categoryId->slug, $cityId->slug]), array() )); - } - } elseif ($city && isset($param['city'][0]) && !empty($param['city'][0]) && strpos($param['city'][0], ',') !== false) { - return redirect($this->fullLink( - $param, - route('adv_list_seo', [$categoryId->slug]), - array() - )); - } elseif ($city) { - if (isset($param['city'][0]) && empty($param['city'][0])) { + } elseif (isset($param['city']) && !empty($param['city'][0]) && strpos($param['city'][0], ',') === false) { + $cityId = $this->cityRepository->find($param['city'][0]); + $param['city'] = [$cityId->id]; + if ($city !== $cityId->slug) { + return redirect($this->fullLink( + $param, + route('adv_list_seo', [$categoryId->slug, $cityId->slug]), + array() + )); + } + } elseif ($city && isset($param['city'][0]) && !empty($param['city'][0]) && strpos($param['city'][0], ',') !== false) { return redirect($this->fullLink( $param, route('adv_list_seo', [$categoryId->slug]), array() )); - } else { - $cityId = $this->cityRepository->findBy('slug', $city); - $param['city'] = [$cityId->id]; + } elseif ($city) { + if (isset($param['city'][0]) && empty($param['city'][0])) { + return redirect($this->fullLink( + $param, + route('adv_list_seo', [$categoryId->slug]), + array() + )); + } else { + $cityId = $this->cityRepository->findBy('slug', $city); + $param['city'] = [$cityId->id]; + } } } + $isActiveCustomFields = $this->adv_model->is_enabled('customfields'); $advs = $this->adv_repository->searchAdvs('list', $param, $customParameters); $advs = $this->adv_repository->addAttributes($advs); From 8475e9d7bab0dcde0976c9206ba3f35b4b559357 Mon Sep 17 00:00:00 2001 From: Diatrex Date: Thu, 13 Feb 2020 16:25:41 +0300 Subject: [PATCH 2/2] #74 Improvements of SEO link structure like Vebze (improvments) --- .../advs-module/src/Http/Controller/advsController.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/addons/default/visiosoft/advs-module/src/Http/Controller/advsController.php b/addons/default/visiosoft/advs-module/src/Http/Controller/advsController.php index cc2b821b5..cf6c6e023 100644 --- a/addons/default/visiosoft/advs-module/src/Http/Controller/advsController.php +++ b/addons/default/visiosoft/advs-module/src/Http/Controller/advsController.php @@ -161,6 +161,13 @@ class AdvsController extends PublicController if ($categoryId) { $param['cat'] = $categoryId->id; } + } elseif (isset($param['cat']) && !empty($param['cat'])) { + $categoryId = $this->category_repository->find($param['cat']); + return redirect($this->fullLink( + $param, + route('adv_list_seo', [$categoryId->slug]), + array() + )); } // Search by city slug @@ -174,7 +181,6 @@ class AdvsController extends PublicController )); } elseif (isset($param['city']) && !empty($param['city'][0]) && strpos($param['city'][0], ',') === false) { $cityId = $this->cityRepository->find($param['city'][0]); - $param['city'] = [$cityId->id]; if ($city !== $cityId->slug) { return redirect($this->fullLink( $param,