Foren / National / Russian / Тех. поддержка / Запросы документации

Принимаем вопросы от населения

Macik
#35593 24. September 2012, 21:54

Изучаю код обработки параметров плагина при их изменении в Админке, в разделе «плагин» → конфигурация.

Смотрю код admin.config.php 

if ($a == 'update' && !empty($_POST))
		{
			// Update only those options which have been changed
			$overriden = array();
			$sql = $db->query("SELECT config_name FROM $db_config
				WHERE config_owner = ? AND config_cat= ? $where_cat",
				array_merge(array($o, $p), $sub_param));
			while ($row = $sql->fetch())
			{
				$cfg_value = trim(cot_import($row['config_name'], 'P', 'NOC'));
				if ($o == 'core' && $p == 'users'
					&& ($cfg_name == 'av_maxsize' || $cfg_name == 'sig_maxsize' || $cfg_name == 'ph_maxsize'))
				{
					$cfg_value = min($cfg_value, cot_get_uploadmax() * 1024);
				}
				$db->update($db_config, array('config_value' => $cfg_value),
					"config_name = ? AND config_owner = ? AND config_cat = ? $where_cat",
					array_merge(array($row['config_name'], $o, $p), $sub_param));
				$overriden[] = $row['config_name'];
			}
			$sql->closeCursor();

И не понимаю смысла комментария, который вроде бы гласит «записываем только те параметры, которые были изменены».

А при этом, судя по коду, $db->update срабатывает в цикле по всем параметрам без разбора.

Прокомментируйте, пожалуйста.

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F