Merge pull request #320 from openclassify/dia

#74 Improvements of SEO link structure like Vebze (there was an error)
This commit is contained in:
Fatih Alp 2020-02-13 17:18:26 +03:00 committed by GitHub
commit 726723fc8e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 52 additions and 37 deletions

View File

@ -1,16 +1,22 @@
{% if 'cat' in param|keys %} {% set formHtml %}
{% 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 %}
<form action="{{ url_route('adv_list_seo', [catId.slug, cityId.slug]) }}" method="get">
{% else %}
<form action="{{ url_route('visiosoft.module.advs::list') }}" method="get"> <form action="{{ url_route('visiosoft.module.advs::list') }}" method="get">
{% 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 %}
<form action="{{ url_route('adv_list_seo', [catId.slug, cityId.slug]) }}" method="get">
{% endset %}
{% endif %}
{% endif %} {% endif %}
{{ formHtml }}
<div class="row"> <div class="row">
<input type="hidden" name="cat" value="{{ app.request.get('cat') }}"> <input type="hidden" name="cat" value="{{ app.request.get('cat') }}">
<input type="hidden" name="user" value="{{ app.request.get('user') }}"> <input type="hidden" name="user" value="{{ app.request.get('user') }}">

View File

@ -161,45 +161,54 @@ class AdvsController extends PublicController
if ($categoryId) { if ($categoryId) {
$param['cat'] = $categoryId->id; $param['cat'] = $categoryId->id;
} }
} } elseif (isset($param['cat']) && !empty($param['cat'])) {
$categoryId = $this->category_repository->find($param['cat']);
// 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) {
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( return redirect($this->fullLink(
$param, $param,
route('adv_list_seo', [$categoryId->slug]), route('adv_list_seo', [$categoryId->slug]),
array() array()
)); ));
} elseif ($city) { }
if (isset($param['city'][0]) && empty($param['city'][0])) {
// Search by city 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 (isset($param['city']) && !empty($param['city'][0]) && strpos($param['city'][0], ',') === false) {
$cityId = $this->cityRepository->find($param['city'][0]);
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( return redirect($this->fullLink(
$param, $param,
route('adv_list_seo', [$categoryId->slug]), route('adv_list_seo', [$categoryId->slug]),
array() array()
)); ));
} else { } elseif ($city) {
$cityId = $this->cityRepository->findBy('slug', $city); if (isset($param['city'][0]) && empty($param['city'][0])) {
$param['city'] = [$cityId->id]; 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'); $isActiveCustomFields = $this->adv_model->is_enabled('customfields');
$advs = $this->adv_repository->searchAdvs('list', $param, $customParameters); $advs = $this->adv_repository->searchAdvs('list', $param, $customParameters);
$advs = $this->adv_repository->addAttributes($advs); $advs = $this->adv_repository->addAttributes($advs);