Автозамены регионов
This commit is contained in:
@@ -270,6 +270,17 @@ class ControllerLocalisationZone extends Controller {
|
||||
$data['error_slug'] = '';
|
||||
}
|
||||
|
||||
if (isset($this->error['contact_email'])) {
|
||||
$data['error_contact_email'] = $this->error['contact_email'];
|
||||
} else {
|
||||
$data['error_contact_email'] = '';
|
||||
}
|
||||
|
||||
foreach (array('gorod', 'gorodu', 'gorodom', 'strana', 'stranu', 'stranoi', 'strane', 'strany') as $replacement_field) {
|
||||
$key = 'replacement_' . $replacement_field;
|
||||
$data['error_' . $key] = isset($this->error[$key]) ? $this->error[$key] : '';
|
||||
}
|
||||
|
||||
$url = '';
|
||||
|
||||
if (isset($this->request->get['sort'])) {
|
||||
@@ -340,6 +351,42 @@ class ControllerLocalisationZone extends Controller {
|
||||
$data['slug'] = '';
|
||||
}
|
||||
|
||||
foreach (array('telephone', 'email', 'address', 'geocode', 'fax', 'open', 'comment') as $contact_field) {
|
||||
$key = 'contact_' . $contact_field;
|
||||
|
||||
if (isset($this->request->post[$key])) {
|
||||
$data[$key] = $this->request->post[$key];
|
||||
} elseif (!empty($zone_info)) {
|
||||
$data[$key] = $zone_info[$key];
|
||||
} else {
|
||||
$data[$key] = '';
|
||||
}
|
||||
}
|
||||
|
||||
foreach (array('gorod', 'gorodu', 'gorodom', 'strana', 'stranu', 'stranoi', 'strane', 'strany') as $replacement_field) {
|
||||
$key = 'replacement_' . $replacement_field;
|
||||
|
||||
if (isset($this->request->post[$key])) {
|
||||
$data[$key] = $this->request->post[$key];
|
||||
} elseif (!empty($zone_info)) {
|
||||
$data[$key] = $zone_info[$key];
|
||||
} else {
|
||||
$data[$key] = '';
|
||||
}
|
||||
}
|
||||
|
||||
$data['replacement_fields'] = array();
|
||||
|
||||
foreach (array('gorod', 'gorodu', 'gorodom', 'strana', 'stranu', 'stranoi', 'strane', 'strany') as $replacement_field) {
|
||||
$key = 'replacement_' . $replacement_field;
|
||||
$data['replacement_fields'][] = array(
|
||||
'name' => $key,
|
||||
'label' => $this->language->get('entry_' . $key),
|
||||
'value' => $data[$key],
|
||||
'error' => $data['error_' . $key]
|
||||
);
|
||||
}
|
||||
|
||||
if (isset($this->request->post['country_id'])) {
|
||||
$data['country_id'] = $this->request->post['country_id'];
|
||||
} elseif (!empty($zone_info)) {
|
||||
@@ -378,6 +425,18 @@ class ControllerLocalisationZone extends Controller {
|
||||
$this->error['slug'] = $this->language->get('error_slug_exists');
|
||||
}
|
||||
|
||||
if ($this->request->post['contact_email'] !== '' && !filter_var($this->request->post['contact_email'], FILTER_VALIDATE_EMAIL)) {
|
||||
$this->error['contact_email'] = $this->language->get('error_contact_email');
|
||||
}
|
||||
|
||||
foreach (array('gorod', 'gorodu', 'gorodom', 'strana', 'stranu', 'stranoi', 'strane', 'strany') as $replacement_field) {
|
||||
$key = 'replacement_' . $replacement_field;
|
||||
|
||||
if ((utf8_strlen(trim($this->request->post[$key])) < 1) || (utf8_strlen($this->request->post[$key]) > 128)) {
|
||||
$this->error[$key] = $this->language->get('error_replacement');
|
||||
}
|
||||
}
|
||||
|
||||
return !$this->error;
|
||||
}
|
||||
|
||||
|
||||
@@ -10,6 +10,8 @@ $_['text_success'] = 'Настройки успешно изменен
|
||||
$_['text_list'] = 'Список регионов';
|
||||
$_['text_add'] = 'Добавить';
|
||||
$_['text_edit'] = 'Редактирование';
|
||||
$_['text_contacts'] = 'Контакты региона';
|
||||
$_['text_replacements'] = 'Автозамены';
|
||||
|
||||
// Column
|
||||
$_['column_name'] = 'Название региона';
|
||||
@@ -24,12 +26,33 @@ $_['entry_code'] = 'Код региона';
|
||||
$_['entry_slug'] = 'Slug для URL';
|
||||
$_['entry_country'] = 'Страна';
|
||||
$_['entry_status'] = 'Статус';
|
||||
$_['entry_contact_telephone'] = 'Телефон';
|
||||
$_['entry_contact_email'] = 'Email';
|
||||
$_['entry_contact_address'] = 'Адрес';
|
||||
$_['entry_contact_geocode'] = 'Геокод';
|
||||
$_['entry_contact_fax'] = 'Факс';
|
||||
$_['entry_contact_open'] = 'Режим работы';
|
||||
$_['entry_contact_comment'] = 'Комментарий';
|
||||
$_['entry_replacement_gorod'] = '{_GOROD_}: в городе';
|
||||
$_['entry_replacement_gorodu'] = '{_GORODU_}: к городу';
|
||||
$_['entry_replacement_gorodom'] = '{_GORODOM_}: городом';
|
||||
$_['entry_replacement_strana'] = '{_STRANA_}: страна';
|
||||
$_['entry_replacement_stranu'] = '{_STRANU_}: в страну';
|
||||
$_['entry_replacement_stranoi'] = '{_STRANOI_}: страной';
|
||||
$_['entry_replacement_strane'] = '{_STRANE_}: в стране';
|
||||
$_['entry_replacement_strany'] = '{_STRANY_}: из страны';
|
||||
|
||||
// Help
|
||||
$_['help_contacts'] = 'Заполните только отличающиеся контакты. Для пустых полей будут использоваться общие настройки магазина.';
|
||||
$_['help_replacements'] = 'Название региона используется для тега {_REGION_}. Остальные словоформы обязательны и подставляются в текст витрины автоматически.';
|
||||
|
||||
// Error
|
||||
$_['error_permission'] = 'У вас недостаточно прав для внесения изменений!';
|
||||
$_['error_name'] = 'Название должно содержать от 3 до 128 символов!';
|
||||
$_['error_slug'] = 'Slug обязателен для всех регионов, кроме региона по умолчанию, и может содержать только строчные латинские буквы, цифры и дефисы!';
|
||||
$_['error_slug_exists'] = 'Такой slug уже используется другим регионом!';
|
||||
$_['error_contact_email'] = 'Введите корректный email или оставьте поле пустым!';
|
||||
$_['error_replacement'] = 'Словоформа обязательна и не должна быть длиннее 128 символов!';
|
||||
$_['error_default'] = 'Этот Регион нельзя удалить, поскольку он используется по умолчанию!';
|
||||
$_['error_store'] = 'Этот Регион нельзя удалить, поскольку он используется в %s магазинах!';
|
||||
$_['error_address'] = 'Этот Регион нельзя удалить, поскольку он используется в %s адресах!';
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?php
|
||||
class ModelLocalisationZone extends Model {
|
||||
public function addZone($data) {
|
||||
$this->db->query("INSERT INTO " . DB_PREFIX . "zone SET status = '" . (int)$data['status'] . "', name = '" . $this->db->escape($data['name']) . "', code = '" . $this->db->escape($data['code']) . "', slug = '" . $this->db->escape($data['slug']) . "', country_id = '" . (int)$data['country_id'] . "'");
|
||||
$this->db->query("INSERT INTO " . DB_PREFIX . "zone SET status = '" . (int)$data['status'] . "', name = '" . $this->db->escape($data['name']) . "', code = '" . $this->db->escape($data['code']) . "', slug = '" . $this->db->escape($data['slug']) . "', contact_telephone = '" . $this->db->escape($data['contact_telephone']) . "', contact_email = '" . $this->db->escape($data['contact_email']) . "', contact_address = '" . $this->db->escape($data['contact_address']) . "', contact_geocode = '" . $this->db->escape($data['contact_geocode']) . "', contact_fax = '" . $this->db->escape($data['contact_fax']) . "', contact_open = '" . $this->db->escape($data['contact_open']) . "', contact_comment = '" . $this->db->escape($data['contact_comment']) . "', replacement_gorod = '" . $this->db->escape($data['replacement_gorod']) . "', replacement_gorodu = '" . $this->db->escape($data['replacement_gorodu']) . "', replacement_gorodom = '" . $this->db->escape($data['replacement_gorodom']) . "', replacement_strana = '" . $this->db->escape($data['replacement_strana']) . "', replacement_stranu = '" . $this->db->escape($data['replacement_stranu']) . "', replacement_stranoi = '" . $this->db->escape($data['replacement_stranoi']) . "', replacement_strane = '" . $this->db->escape($data['replacement_strane']) . "', replacement_strany = '" . $this->db->escape($data['replacement_strany']) . "', country_id = '" . (int)$data['country_id'] . "'");
|
||||
|
||||
$this->cache->delete('zone');
|
||||
|
||||
@@ -9,7 +9,7 @@ class ModelLocalisationZone extends Model {
|
||||
}
|
||||
|
||||
public function editZone($zone_id, $data) {
|
||||
$this->db->query("UPDATE " . DB_PREFIX . "zone SET status = '" . (int)$data['status'] . "', name = '" . $this->db->escape($data['name']) . "', code = '" . $this->db->escape($data['code']) . "', slug = '" . $this->db->escape($data['slug']) . "', country_id = '" . (int)$data['country_id'] . "' WHERE zone_id = '" . (int)$zone_id . "'");
|
||||
$this->db->query("UPDATE " . DB_PREFIX . "zone SET status = '" . (int)$data['status'] . "', name = '" . $this->db->escape($data['name']) . "', code = '" . $this->db->escape($data['code']) . "', slug = '" . $this->db->escape($data['slug']) . "', contact_telephone = '" . $this->db->escape($data['contact_telephone']) . "', contact_email = '" . $this->db->escape($data['contact_email']) . "', contact_address = '" . $this->db->escape($data['contact_address']) . "', contact_geocode = '" . $this->db->escape($data['contact_geocode']) . "', contact_fax = '" . $this->db->escape($data['contact_fax']) . "', contact_open = '" . $this->db->escape($data['contact_open']) . "', contact_comment = '" . $this->db->escape($data['contact_comment']) . "', replacement_gorod = '" . $this->db->escape($data['replacement_gorod']) . "', replacement_gorodu = '" . $this->db->escape($data['replacement_gorodu']) . "', replacement_gorodom = '" . $this->db->escape($data['replacement_gorodom']) . "', replacement_strana = '" . $this->db->escape($data['replacement_strana']) . "', replacement_stranu = '" . $this->db->escape($data['replacement_stranu']) . "', replacement_stranoi = '" . $this->db->escape($data['replacement_stranoi']) . "', replacement_strane = '" . $this->db->escape($data['replacement_strane']) . "', replacement_strany = '" . $this->db->escape($data['replacement_strany']) . "', country_id = '" . (int)$data['country_id'] . "' WHERE zone_id = '" . (int)$zone_id . "'");
|
||||
|
||||
$this->cache->delete('zone');
|
||||
}
|
||||
|
||||
@@ -77,6 +77,70 @@
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<fieldset>
|
||||
<legend>{{ text_replacements }}</legend>
|
||||
<p class="text-muted">{{ help_replacements }}</p>
|
||||
{% for replacement_field in replacement_fields %}
|
||||
<div class="form-group required">
|
||||
<label class="col-sm-2 control-label" for="input-{{ replacement_field.name }}">{{ replacement_field.label }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="{{ replacement_field.name }}" value="{{ replacement_field.value }}" placeholder="{{ replacement_field.label }}" id="input-{{ replacement_field.name }}" class="form-control" />
|
||||
{% if replacement_field.error %}
|
||||
<div class="text-danger">{{ replacement_field.error }}</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>{{ text_contacts }}</legend>
|
||||
<p class="text-muted">{{ help_contacts }}</p>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label" for="input-contact-telephone">{{ entry_contact_telephone }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="contact_telephone" value="{{ contact_telephone }}" placeholder="{{ entry_contact_telephone }}" id="input-contact-telephone" class="form-control" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label" for="input-contact-email">{{ entry_contact_email }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="contact_email" value="{{ contact_email }}" placeholder="{{ entry_contact_email }}" id="input-contact-email" class="form-control" />
|
||||
{% if error_contact_email %}
|
||||
<div class="text-danger">{{ error_contact_email }}</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label" for="input-contact-address">{{ entry_contact_address }}</label>
|
||||
<div class="col-sm-10">
|
||||
<textarea name="contact_address" rows="3" placeholder="{{ entry_contact_address }}" id="input-contact-address" class="form-control">{{ contact_address }}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label" for="input-contact-geocode">{{ entry_contact_geocode }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="contact_geocode" value="{{ contact_geocode }}" placeholder="{{ entry_contact_geocode }}" id="input-contact-geocode" class="form-control" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label" for="input-contact-fax">{{ entry_contact_fax }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="contact_fax" value="{{ contact_fax }}" placeholder="{{ entry_contact_fax }}" id="input-contact-fax" class="form-control" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label" for="input-contact-open">{{ entry_contact_open }}</label>
|
||||
<div class="col-sm-10">
|
||||
<textarea name="contact_open" rows="3" placeholder="{{ entry_contact_open }}" id="input-contact-open" class="form-control">{{ contact_open }}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label" for="input-contact-comment">{{ entry_contact_comment }}</label>
|
||||
<div class="col-sm-10">
|
||||
<textarea name="contact_comment" rows="3" placeholder="{{ entry_contact_comment }}" id="input-contact-comment" class="form-control">{{ contact_comment }}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user