Перейти к содержанию

Рекомендуемые сообщения

Чем отличаются эти методы сохранения в БД и есть ли разница в скорости загрузки.

if (isset($this->request->post['module_status'])) {
	$data['module_status'] = $this->request->post['module_status'];
} else {
	$data['module_status'] = $this->config->get('module_status');
}
$data['options'] = array();
if (isset($data['module_data']['options']) && $data['module_data']['options']) {
	$options = $data['module_data']['options'];
} else {
	$options = array();
}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тут нет методов сохранения в БД

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
if (isset($this->request->post['module_status'])) {

проверка, есть ли массив данных ['module_status'], передаваемый методом $_POST

$data['module_status'] = $this->request->post['module_status'];

тогда присваиваем массиву $data['module_status'] переданное значение $this->request->post['module_status']

в противном же случае, массиву $data['module_status'] присваиваем значение из конфига ($this->config->get('module_status'))  

во втором примере, проверка на наличие в массиве данных, никакой передачии сохранения в БД ни в первом ни во втором случе не вижу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Некоторые модули делают несколько записей в БД (одна настройка = одна запись), а есть модули которые все настройки хранят в одной записи в виде {"status":"1","model":"1","sku":"1", и т.д. Вот в чем разница этих хранений данных?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все настройки модулей сохраняются как префикс + ключ + значение. Например префикс default

Если ты хочешь, сохранить массив данных модуля. Например список ID категорий, то можешь передать все в одну переменную
 

if (isset($this->request->post['default_category'])) {
	$data['default_category'] = $this->request->post['default_category'];
} else {
	$data['default_category'] = $this->config->get('default_category');
}
<?php foreach($categories as $category) { ?>
<tr>
	<td class="checkbox">
	<?php if (in_array($category['category_id'], $default_category) { ?> 
		<label><input type="checkbox" name="default_category[]" value="<?php echo $category['id'] ?>" checked /><?php echo $category['name'] ?></label>
	<?php } else { ?>
		<label><input type="checkbox" name="default_category[]" value="<?php echo $category['id'] ?>" /><?php echo $category['name'] ?></label>  
	<?php } ?>
	</td>
</tr>
<?php } ?>

в БД сохранится такое значение в формате JSON, так как является массивом, как вы написали выше
префикс default ключ default_category
Возвращаться будет уже в виде массива, который вы запишите в переменную контроллера, для вывода в шаблон

if (isset($this->request->post['default_category_id'])) {
	$data['default_category_id'] = $this->request->post['default_category_id'];
} else {
	$data['default_category_id'] = $this->config->get('default_category_id');
}

 

<tr>
	<td>
		<label><input type="text" name="default_category_id" value="<?php echo $default_category_id; ?>" />Категория</label>
	</td>
</tr>

в БД сохранится новое поле со значение в виде чиcла
префикс default ключ default_category_id

В результате у модуля будет несколько записей с настройками
это список категорий в виде массива $this->config->get('default_category'); и в виде числа $this->config->get('default_category_id');

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.