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();
 }