public function _edit() { $id = abs((int) $_GET['id']); if (!$id) { return; } if (!isset($_POST['input_options'])) { $_POST['input_options'] = []; } $setting = new CustomSetting($id); $setting->loadDataFromArray($_POST); $setting->save(); App::add('Custom Setting "' . $setting->getKey() . '" edited'); Messages::sendMessage('Setting updated'); go('?p=' . P . '&highlight=' . $setting->getId()); }
public static function requireUpdateModuleSettings($module = P) { $settings = new CustomSettingRepository(); $settings->setWhereModule(P); $to_unset = $settings->getPairs('key'); // Update (create) settings foreach ($_POST as $k => $v) { // Check existing /** @var CustomSetting $setting */ $setting = CustomSettingRepository::findOneEntityByCriteria(['module' => $module, 'key' => $k]); if (!$setting) { $setting = new CustomSetting(); $setting->setModule($module); $setting->setKey($k); } // Set 1 for checkboxes if ($setting->getInputType() == 'checkbox' && !$v) { $v = 1; } $setting->setValue($v); $setting->save(); unset($to_unset[$setting->getId()]); } // Set 0 for unset checkboxes foreach ($to_unset as $unset_id => $unset_key) { $setting = new CustomSetting($unset_id); $setting->setValue(0); $setting->save(); } if (IS_AJAX_REQUEST) { die('1'); } back(); }