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

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

Macik
#35593 24.09.2012 21:54

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

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

PHP
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
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