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 $request;
protected $url; protected $url;
protected $new_parameters; protected $new_parameters;
protected $remove_parameters;
/** /**
* appendRequestURL constructor. * appendRequestURL constructor.
* @param $request * @param $request
*/ */
public function __construct($request, $url, $new_parameters = []) public function __construct($request, $url, $new_parameters = [], $remove_parameters = [])
{ {
$this->url = $url; $this->url = $url;
$this->request = $request; $this->request = $request;
$this->new_parameters = $new_parameters; $this->new_parameters = $new_parameters;
$this->remove_parameters = $remove_parameters;
} }
/** /**
@ -28,20 +30,23 @@ class appendRequestURL
*/ */
public function handle() 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; 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 return $this->url
. (Str::contains($this->url, '?') ? '&' : '?') . (Str::contains($this->url, '?') ? '&' : '?')
. Arr::query($this->appends(array_merge($this->request, $this->new_parameters))); . Arr::query($this->appends(array_merge($request, $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 return $this->url
. (Str::contains($this->url, '?') ? '&' : '?') . (Str::contains($this->url, '?') ? '&' : '?')
. Arr::query($this->appends($this->new_parameters)); . 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 return $this->url
. (Str::contains($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; 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( new \Twig_SimpleFunction(
'appendRequestURL', '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( new \Twig_SimpleFunction(

View File

@ -29,9 +29,9 @@
{% set citySlug = pathInfo[3] %} {% set citySlug = pathInfo[3] %}
{% endif %} {% endif %}
<a href="{% if(viewType != "map") %} <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 %} {% 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"> {% endif %}" class="list-group-item list-group-item-action text-truncate">
<i class="fas fa-dot-circle"></i> <i class="fas fa-dot-circle"></i>
{{ name }} {{ name }}
@ -41,9 +41,9 @@
{% if subcat.parent_category_id == maincat['id'] %} {% if subcat.parent_category_id == maincat['id'] %}
{% set subCatId = entries('cats', 'category').find(subcat.id) %} {% set subCatId = entries('cats', 'category').find(subcat.id) %}
<a href="{% if(viewType != "map") %} <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 %} {% 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"> {% endif %}" class="list-group-item list-group-item-action text-truncate">
{{ subcat.name }} {{ subcat.name }}
</a> </a>