/** * Default constructor */ public function __construct($paramList, $settingPrefix, $formID = false) { // Now create elements as usual parent::__construct($paramList, $settingPrefix, $formID); // Check if we have any defaults we can set. These are only set if the // settings are blank, so allows defaults to be defined when settings // have not yet been saved. $settings = TidySettings_getSettings($settingPrefix); $unsetDefaults = array(); foreach ($paramList as $fieldName => $fieldDetails) { // If we have a default value defined, and the equivalent setting is blank // then add setting to list of settings to update. if (isset($fieldDetails['default']) && false == $settings[$fieldName]) { $unsetDefaults[$fieldName] = $fieldDetails['default']; $settings[$fieldName] = $fieldDetails['default']; } } // Defaults are saved to DB and set in the form, so that they get saved again // when the form is updated. if (count($unsetDefaults) > 0) { $this->formObj->setDefaultValues($unsetDefaults); TidySettings_saveSettings($settings, $settingPrefix); } }