Система регионов

This commit is contained in:
Konstantin
2026-05-30 15:15:57 +03:00
parent 7cd87e901f
commit e843f3019d
18 changed files with 293 additions and 54 deletions
+27 -1
View File
@@ -177,6 +177,7 @@ class ControllerLocalisationZone extends Controller {
'country' => $result['country'],
'name' => $result['name'] . (($result['zone_id'] == $this->config->get('config_zone_id')) ? $this->language->get('text_default') : null),
'code' => $result['code'],
'slug' => $result['slug'],
'edit' => $this->url->link('localisation/zone/edit', 'user_token=' . $this->session->data['user_token'] . '&zone_id=' . $result['zone_id'] . $url, true)
);
}
@@ -216,6 +217,7 @@ class ControllerLocalisationZone extends Controller {
$data['sort_country'] = $this->url->link('localisation/zone', 'user_token=' . $this->session->data['user_token'] . '&sort=c.name' . $url, true);
$data['sort_name'] = $this->url->link('localisation/zone', 'user_token=' . $this->session->data['user_token'] . '&sort=z.name' . $url, true);
$data['sort_code'] = $this->url->link('localisation/zone', 'user_token=' . $this->session->data['user_token'] . '&sort=z.code' . $url, true);
$data['sort_slug'] = $this->url->link('localisation/zone', 'user_token=' . $this->session->data['user_token'] . '&sort=z.slug' . $url, true);
$url = '';
@@ -262,6 +264,12 @@ class ControllerLocalisationZone extends Controller {
$data['error_name'] = '';
}
if (isset($this->error['slug'])) {
$data['error_slug'] = $this->error['slug'];
} else {
$data['error_slug'] = '';
}
$url = '';
if (isset($this->request->get['sort'])) {
@@ -324,6 +332,14 @@ class ControllerLocalisationZone extends Controller {
$data['code'] = '';
}
if (isset($this->request->post['slug'])) {
$data['slug'] = $this->request->post['slug'];
} elseif (!empty($zone_info)) {
$data['slug'] = $zone_info['slug'];
} else {
$data['slug'] = '';
}
if (isset($this->request->post['country_id'])) {
$data['country_id'] = $this->request->post['country_id'];
} elseif (!empty($zone_info)) {
@@ -352,6 +368,16 @@ class ControllerLocalisationZone extends Controller {
$this->error['name'] = $this->language->get('error_name');
}
$this->request->post['slug'] = strtolower(trim((string)$this->request->post['slug']));
$is_default = isset($this->request->get['zone_id']) && ((int)$this->request->get['zone_id'] == (int)$this->config->get('config_zone_id'));
if ((!$is_default && $this->request->post['slug'] === '') || ($this->request->post['slug'] !== '' && !preg_match('/^[a-z0-9]+(?:-[a-z0-9]+)*$/', $this->request->post['slug']))) {
$this->error['slug'] = $this->language->get('error_slug');
} elseif ($this->request->post['slug'] !== '' && $this->model_localisation_zone->getTotalZonesBySlug($this->request->post['slug'], isset($this->request->get['zone_id']) ? $this->request->get['zone_id'] : 0)) {
$this->error['slug'] = $this->language->get('error_slug_exists');
}
return !$this->error;
}
@@ -390,4 +416,4 @@ class ControllerLocalisationZone extends Controller {
return !$this->error;
}
}
}