/** * updates the settings table */ public static function save($module) { if (!PHPWS_Settings::is_set($module)) { return false; } $db = new PHPWS_DB('mod_settings'); $db->addWhere('module', $module); $db->addWhere('setting_name', array_keys($GLOBALS['PHPWS_Settings'][$module])); $db->delete(); $db->reset(); foreach ($GLOBALS['PHPWS_Settings'][$module] as $key => $value) { if (empty($key)) { continue; } $type = PHPWS_Settings::getType($value); $db->addValue('module', $module); $db->addValue('setting_name', $key); $db->addValue('setting_type', $type); switch ($type) { case 1: $db->addValue('small_num', (int) $value); break; case 2: $db->addValue('large_num', (int) $value); break; case 3: $db->addValue('small_char', $value); break; case 4: $db->addValue('large_char', $value); break; } $result = $db->insert(); if (PHPWS_Error::isError($result)) { unset($GLOBALS['PHPWS_Settings'][$module]); PHPWS_Settings::load($module); return $result; } $db->reset(); } unset($GLOBALS['PHPWS_Settings'][$module]); PHPWS_Settings::load($module); }