From 6381dcc53a42183d21feda13c25a40353d5e26e9 Mon Sep 17 00:00:00 2001 From: vedatakd Date: Tue, 18 Aug 2020 11:22:10 +0300 Subject: [PATCH] remove page params for change category --- .../src/Adv/Command/appendRequestURL.php | 28 ++++++++++++++----- .../advs-module/src/AdvsModulePlugin.php | 4 +-- .../views/ads-list/partials/list-filter.twig | 8 +++--- 3 files changed, 27 insertions(+), 13 deletions(-) diff --git a/addons/default/visiosoft/advs-module/src/Adv/Command/appendRequestURL.php b/addons/default/visiosoft/advs-module/src/Adv/Command/appendRequestURL.php index fbba5a48d..0c1d7eb93 100644 --- a/addons/default/visiosoft/advs-module/src/Adv/Command/appendRequestURL.php +++ b/addons/default/visiosoft/advs-module/src/Adv/Command/appendRequestURL.php @@ -11,16 +11,18 @@ class appendRequestURL protected $request; protected $url; protected $new_parameters; + protected $remove_parameters; /** * appendRequestURL constructor. * @param $request */ - public function __construct($request, $url, $new_parameters = []) + public function __construct($request, $url, $new_parameters = [], $remove_parameters = []) { $this->url = $url; $this->request = $request; $this->new_parameters = $new_parameters; + $this->remove_parameters = $remove_parameters; } /** @@ -28,20 +30,23 @@ class appendRequestURL */ public function handle() { - if (count($this->new_parameters) === 0 && count($this->request) === 0) { + + $request = $this->removeParameters($this->request); + + if (count($this->new_parameters) === 0 && count($request) === 0) { return $this->url; - } elseif (count($this->new_parameters) > 0 && count($this->request) > 0) { + } elseif (count($this->new_parameters) > 0 && count($request) > 0) { return $this->url . (Str::contains($this->url, '?') ? '&' : '?') - . Arr::query($this->appends(array_merge($this->request, $this->new_parameters))); - } elseif (count($this->new_parameters) > 0 && count($this->request) === 0) { + . Arr::query($this->appends(array_merge($request, $this->new_parameters))); + } elseif (count($this->new_parameters) > 0 && count($request) === 0) { return $this->url . (Str::contains($this->url, '?') ? '&' : '?') . Arr::query($this->appends($this->new_parameters)); - } elseif (count($this->new_parameters) === 0 && count($this->request) > 0) { + } elseif (count($this->new_parameters) === 0 && count($request) > 0) { return $this->url . (Str::contains($this->url, '?') ? '&' : '?') - . Arr::query($this->appends($this->request)); + . Arr::query($this->appends($request)); } } @@ -87,4 +92,13 @@ class appendRequestURL return $this; } + + public function removeParameters(array $array) + { + foreach ($this->remove_parameters as $parameter) { + unset($array[$parameter]); + } + + return $array; + } } diff --git a/addons/default/visiosoft/advs-module/src/AdvsModulePlugin.php b/addons/default/visiosoft/advs-module/src/AdvsModulePlugin.php index b21686d59..6078ea99b 100644 --- a/addons/default/visiosoft/advs-module/src/AdvsModulePlugin.php +++ b/addons/default/visiosoft/advs-module/src/AdvsModulePlugin.php @@ -57,9 +57,9 @@ class AdvsModulePlugin extends Plugin ), new \Twig_SimpleFunction( 'appendRequestURL', - function ($request, $url, $new_parameters) { + function ($request, $url, $new_parameters, $removeParams = []) { - return $this->dispatch(new appendRequestURL($request, $url, $new_parameters)); + return $this->dispatch(new appendRequestURL($request, $url, $new_parameters, $removeParams)); } ), new \Twig_SimpleFunction( diff --git a/addons/default/visiosoft/cats-module/resources/views/ads-list/partials/list-filter.twig b/addons/default/visiosoft/cats-module/resources/views/ads-list/partials/list-filter.twig index 6406321d6..7f1debffe 100644 --- a/addons/default/visiosoft/cats-module/resources/views/ads-list/partials/list-filter.twig +++ b/addons/default/visiosoft/cats-module/resources/views/ads-list/partials/list-filter.twig @@ -29,9 +29,9 @@ {% set citySlug = pathInfo[3] %} {% endif %} {{ name }} @@ -41,9 +41,9 @@ {% if subcat.parent_category_id == maincat['id'] %} {% set subCatId = entries('cats', 'category').find(subcat.id) %} {{ subcat.name }}