Здравствуйте!
Решил реализовать возможность настройки валюты на сайте и в панели администратора раздельно друг от друга.
То есть на сайте только рубли, а в панели администратора рубли, доллары и евро.
Начать решил с настроек.
Добавил в таблице currency колонку admin_status.
Добавил в файл представления:
<!-- Поле статуса в панели администратора -->
<div class="form-group">
<label class="col-sm-2 control-label" for="input-status"><?php echo $entry_status_admin; ?></label>
<div class="col-sm-10">
<select name="admin_status" id="input-status" class="form-control">
<?php if ($admin_status) { ?>
<option value="1" selected="selected"><?php echo $text_enabled; ?></option>
<option value="0"><?php echo $text_disabled; ?></option>
<?php } else { ?>
<option value="1"><?php echo $text_enabled; ?></option>
<option value="0" selected="selected"><?php echo $text_disabled; ?></option>
<?php } ?>
</select>
</div>
</div>
Добавил в файл контроллера (в функцию getForm, по аналогии со стандартным полем):
if (isset($this->request->post['admin_status'])) {
$data['admin_status'] = $this->request->post['admin_status'];
} elseif (!empty($currency_info)) {
$data['admin_status'] = $currency_info['admin_status'];
} else {
$data['admin_status'] = '';
}
Изменил функции в файле модели (в функциях добавления и редактирования):
public function addCurrency($data) {
$this->db->query("INSERT INTO " . DB_PREFIX . "currency SET title = '" . $this->db->escape($data['title']) . "', code = '" . $this->db->escape($data['code']) . "', symbol_left = '" . $this->db->escape($data['symbol_left']) . "', symbol_right = '" . $this->db->escape($data['symbol_right']) . "', decimal_place = '" . $this->db->escape($data['decimal_place']) . "', value = '" . $this->db->escape($data['value']) . "', status = '" . (int)$data['status'] . "', admin_status = '" . (int)$data['admin_status'] . "', date_modified = NOW()");
$currency_id = $this->db->getLastId();
if ($this->config->get('config_currency_auto')) {
$this->refresh(true);
}
$this->cache->delete('currency');
return $currency_id;
}
При попытке сохранения выдает ошибку:
Notice: Undefined index: admin_status in .../admin/model/localisation/currency.php on line 18Warning: Cannot modify header information - headers already sent by (output started at .../admin/controller/startup/error.php:34) in.../system/library/response.php on line 12
строка 18 в файле модели - это SQL команда функции редактирования
Очевидно, я сделал не все что нужно, но не могу понять, что упустил.
Может кто подскажет из знатоков?