/** * Function to add civicrm settings * * @params array $params associated array of civicrm variables * * @return null * @static */ static function add(&$params) { CRM_Core_BAO_Setting::fixParams($params); // also set a template url so js files can use this // CRM-6194 $params['civiRelativeURL'] = CRM_Utils_System::url('CIVI_BASE_TEMPLATE'); $params['civiRelativeURL'] = str_replace('CIVI_BASE_TEMPLATE', '', $params['civiRelativeURL']); require_once "CRM/Core/DAO/Domain.php"; $domain = new CRM_Core_DAO_Domain(); $domain->id = CRM_Core_Config::domainID(); $domain->find(true); if ($domain->config_backend) { $values = unserialize($domain->config_backend); CRM_Core_BAO_Setting::formatParams($params, $values); } // CRM-6151 if (isset($params['localeCustomStrings']) && is_array($params['localeCustomStrings'])) { $domain->locale_custom_strings = serialize($params['localeCustomStrings']); } // unset any of the variables we read from file that should not be stored in the database // the username and certpath are stored flat with _test and _live // check CRM-1470 $skipVars = array('dsn', 'templateCompileDir', 'userFrameworkDSN', 'userFrameworkBaseURL', 'userFrameworkClass', 'userHookClass', 'userPermissionClass', 'userFrameworkURLVar', 'newBaseURL', 'newBaseDir', 'newSiteName', 'configAndLogDir', 'qfKey', 'gettextResourceDir', 'cleanURL', 'locale_custom_strings', 'localeCustomStrings'); foreach ($skipVars as $var) { unset($params[$var]); } require_once 'CRM/Core/BAO/Preferences.php'; CRM_Core_BAO_Preferences::fixAndStoreDirAndURL($params); // also skip all Dir Params, we dont need to store those in the DB! foreach ($params as $name => $val) { if (substr($name, -3) == 'Dir') { unset($params[$name]); } } $domain->config_backend = serialize($params); $domain->save(); }