public function saveSettings($settings = array()) { $address = array_merge(array('country' => 'rus'), $settings); if (!$this->findTo($address)) { throw new waException('Указанный адрес пункта отправления не найден в списке поддерживаемых API службы «EMS Почта России».'); } if (isset($settings['surcharge'])) { if (strpos($settings['surcharge'], ',')) { $settings['surcharge'] = str_replace(',', '.', $settings['surcharge']); } $settings['surcharge'] = max(0, doubleval($settings['surcharge'])); } return parent::saveSettings($settings); }
/** * Несмотря на название это, видимо, валидатор сохраняемых значений * конфигурации. Во всяком случае то, что он возвращает сохраняется * в БД. * * Название ПВЗ не можеь быть пустым. Потомушта. * * @todo Проверять, чтоб страна и регион были указаны * * @param array $settings * @return array * @throws waException Если данные не прошли проверку */ public function saveSettings($settings = array()) { foreach ($settings['rate'] as $index => $item) { if (!isset($item['location']) || empty($item['location'])) { throw new waException(_w('Pick-up point name cannot be empty')); } $settings['rate'][$index]['cost'] = isset($item['cost']) ? str_replace(',', '.', floatval($item['cost'])) : "0"; $settings['rate'][$index]['maxweight'] = isset($item['maxweight']) ? str_replace(',', '.', floatval($item['maxweight'])) : "0"; $settings['rate'][$index]['free'] = isset($item['free']) ? str_replace(',', '.', floatval($item['free'])) : "0"; } return parent::saveSettings($settings); }
/** * Предварительная подготовка данных для сохранения настроек с помощью метода saveSettings() базового класса waSystemPlugin. * * @see waSystemPlugin::saveSettings() */ public function saveSettings($settings = array()) { $fields = array('halfkilocost', 'overhalfkilocost'); foreach ($fields as $field) { if (ifempty($settings[$field])) { foreach ($settings[$field] as &$value) { if (strpos($value, ',') !== false) { $value = str_replace(',', '.', $value); } $value = str_replace(',', '.', (double) $value); } unset($value); } } return parent::saveSettings($settings); }