remove page params for change category

This commit is contained in:
vedatakd 2020-08-18 11:22:10 +03:00
parent 419d4ce0e5
commit 6381dcc53a
3 changed files with 27 additions and 13 deletions

View File

@ -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;
}
}

View File

@ -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(

View File

@ -29,9 +29,9 @@
{% set citySlug = pathInfo[3] %}
{% endif %}
<a href="{% if(viewType != "map") %}
{{ appendRequestURL(request_query(),url_route('adv_list_seo', [catId.slug, citySlug]),{}) }}
{{ appendRequestURL(request_query(),url_route('adv_list_seo', [catId.slug, citySlug]),{},['page']) }}
{% else %}
{{ appendRequestURL(request_query(),url_route('advs_map_list'),{'cat':id}) }}
{{ appendRequestURL(request_query(),url_route('advs_map_list'),{'cat':id},['page']) }}
{% endif %}" class="list-group-item list-group-item-action text-truncate">
<i class="fas fa-dot-circle"></i>
{{ name }}
@ -41,9 +41,9 @@
{% if subcat.parent_category_id == maincat['id'] %}
{% set subCatId = entries('cats', 'category').find(subcat.id) %}
<a href="{% if(viewType != "map") %}
{{ appendRequestURL(request_query(),url_route('adv_list_seo', [subCatId.slug, citySlug]),{}) }}
{{ appendRequestURL(request_query(),url_route('adv_list_seo', [subCatId.slug, citySlug]),{},['page']) }}
{% else %}
{{ appendRequestURL(request_query(),url_route('advs_map_list'),{'cat':subcat.id}) }}
{{ appendRequestURL(request_query(),url_route('advs_map_list'),{'cat':subcat.id},['page']) }}
{% endif %}" class="list-group-item list-group-item-action text-truncate">
{{ subcat.name }}
</a>