Выбор города

This commit is contained in:
Konstantin
2026-05-30 11:47:38 +03:00
parent 640af8f4d9
commit af9b7b13a4
7 changed files with 173 additions and 6 deletions
+44
View File
@@ -0,0 +1,44 @@
<?php
class ControllerCommonCity extends Controller {
public function index() {
$this->load->model('localisation/zone');
$country_id = $this->config->get('config_country_id');
$zones = $this->model_localisation_zone->getZonesByCountryId($country_id);
$current_zone_id = isset($this->session->data['city_id']) ? (int)$this->session->data['city_id'] : (int)$this->config->get('config_zone_id');
$data['zones'] = array();
foreach ($zones as $zone) {
$data['zones'][] = array(
'zone_id' => $zone['zone_id'],
'name' => $zone['name'],
'active' => ($zone['zone_id'] == $current_zone_id),
);
}
$data['action'] = $this->url->link('common/city/save');
$this->response->setOutput($this->load->view('common/city_list', $data));
}
public function save() {
$json = array();
if (isset($this->request->post['city_id'])) {
$this->session->data['city_id'] = (int)$this->request->post['city_id'];
$json['success'] = true;
$this->load->model('localisation/zone');
$zone = $this->model_localisation_zone->getZone($this->session->data['city_id']);
$json['name'] = $zone ? $zone['name'] : '';
} else {
$json['success'] = false;
}
$this->response->addHeader('Content-Type: application/json');
$this->response->setOutput(json_encode($json));
}
}
+16
View File
@@ -104,6 +104,22 @@ foreach(['name','email','telephone','address','open', 'comment'] as $item){
$data['cart'] = $this->load->controller('common/cart');
$data['menu'] = $this->load->controller('common/menu');
$this->load->model('localisation/zone');
$country_id = $this->config->get('config_country_id');
$zones = $this->model_localisation_zone->getZonesByCountryId($country_id);
$current_zone_id = isset($this->session->data['city_id']) ? (int)$this->session->data['city_id'] : (int)$this->config->get('config_zone_id');
$data['current_city_name'] = '';
foreach ($zones as $zone) {
if ($zone['zone_id'] == $current_zone_id) {
$data['current_city_name'] = $zone['name'];
break;
}
}
$data['city_list_url'] = 'index.php?route=common/city';
return $this->load->view('common/header', $data);
}
}