示例#1
0
 public static function Save($settings)
 {
     $current = new SettingContainer(DbSetting::GetAll());
     $inners = $settings->getSettings();
     foreach ($inners as $setting) {
         $old = $current->getSetting($setting->name);
         if (!is_int($old)) {
             if (strcmp($old->value, $setting->value) != 0) {
                 DbSetting::Update($setting);
             }
         } else {
             DbSetting::Add($setting->name, $setting->value);
         }
     }
 }
 public function execute()
 {
     $action = 'browse';
     if (isset($_GET['action'])) {
         $action = $_GET['action'];
     }
     if (strcmp($action, 'browse') == 0) {
         $this->view = SettingsAdministrationAction::$BrowseSettings;
     } else {
         if (strcmp($action, 'new_setting') == 0) {
             $this->view = SettingsAdministrationAction::$NewSettingForm;
         } else {
             if (strcmp($action, 'add_setting') == 0) {
                 if (isset($_POST['setting_name']) && isset($_POST['setting_value'])) {
                     DbSetting::Add($_POST['setting_name'], $_POST['setting_value']);
                     $this->addAlert(Alert::CreateSuccess('Success', 'Setting added.'));
                     $this->reloadSettings();
                 }
                 $this->reexecute(array('action' => 'browse'));
             } else {
                 if (strcmp($action, 'delete_setting') == 0) {
                     if (isset($_GET['setting_id'])) {
                         DbSetting::Delete($_GET['setting_id']);
                         $this->addAlert(Alert::CreateSuccess('Success', 'Setting deleted.'));
                         $this->reloadSettings();
                     }
                     $this->reexecute(array('action' => 'browse'));
                 } else {
                     if (strcmp($action, 'save_settings') == 0) {
                         $settings = DbSetting::GetAll();
                         foreach ($settings as $setting) {
                             if (isset($_POST['setting_' . $setting->id])) {
                                 $setting->value = $_POST['setting_' . $setting->id];
                             }
                         }
                         $container = new SettingContainer($settings);
                         DbSetting::Save($container);
                         $this->addAlert(Alert::CreateSuccess('Success', 'Settings saved.'));
                         $this->reloadSettings();
                         $this->reexecute(array('action' => 'browse'));
                     }
                 }
             }
         }
     }
 }
示例#3
0
 protected function initSettings()
 {
     //$this->settings = new SettingContainer();
     //put that into a SettingFile for import at intial runtime
     //hash type setting
     /*$hashtype = new Setting();
     		$hashtype->name = "hash_type";
     		$hashtype->value = "sha256";
     		
     		$user_min = new Setting();
     		$user_min->name = "username_min";
     		$user_min->value = "4";
     		
     		$user_max = new Setting();
     		$user_max->name = "username_max";
     		$user_max->value = "12";
     		
     		$signup_method = new Setting();
     		$signup_method->name = "signup_method";
     		$signup_method->value = "admin_creation";
     		
     		$this->settings->add($hashtype);
     		$this->settings->add($user_min);
     		$this->settings->add($user_max);
     		$this->settings->add($signup_method);*/
     $settingFile = new SettingFile('actions/initial_settings.conf');
     $settingFile->readFile();
     $settings = $settingFile->getContainer();
     DbSetting::Save($settings);
 }