コード例 #1
0
 /**
  * Add civicrm settings.
  *
  * @param array $params
  *   Associated array of civicrm variables.
  */
 public static function add(&$params)
 {
     $domain = new CRM_Core_DAO_Domain();
     $domain->id = CRM_Core_Config::domainID();
     $domain->find(TRUE);
     if ($domain->config_backend) {
         $params = array_merge(unserialize($domain->config_backend), $params);
     }
     $params = CRM_Core_BAO_ConfigSetting::filterSkipVars($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();
 }
コード例 #2
0
ファイル: Setting.php プロジェクト: kcristiano/civicrm-core
 /**
  * Common Process.
  *
  * @todo Document what I do.
  *
  * @param array $params
  */
 public function commonProcess(&$params)
 {
     // save autocomplete search options
     if (!empty($params['contact_autocomplete_options'])) {
         Civi::settings()->set('contact_autocomplete_options', CRM_Utils_Array::implodePadded(array_keys($params['contact_autocomplete_options'])));
         unset($params['contact_autocomplete_options']);
     }
     // save autocomplete contact reference options
     if (!empty($params['contact_reference_options'])) {
         Civi::settings()->set('contact_reference_options', CRM_Utils_Array::implodePadded(array_keys($params['contact_reference_options'])));
         unset($params['contact_reference_options']);
     }
     // save components to be enabled
     if (array_key_exists('enableComponents', $params)) {
         civicrm_api3('setting', 'create', array('enable_components' => $params['enableComponents']));
         unset($params['enableComponents']);
     }
     // verify ssl peer option
     if (isset($params['verifySSL'])) {
         Civi::settings()->set('verifySSL', $params['verifySSL']);
         unset($params['verifySSL']);
     }
     // force secure URLs
     if (isset($params['enableSSL'])) {
         Civi::settings()->set('enableSSL', $params['enableSSL']);
         unset($params['enableSSL']);
     }
     $settings = array_intersect_key($params, $this->_settings);
     $result = civicrm_api('setting', 'create', $settings + array('version' => 3));
     foreach ($settings as $setting => $settingGroup) {
         //@todo array_diff this
         unset($params[$setting]);
     }
     if (!empty($result['error_message'])) {
         CRM_Core_Session::setStatus($result['error_message'], ts('Save Failed'), 'error');
     }
     //CRM_Core_BAO_ConfigSetting::create($params);
     $params = CRM_Core_BAO_ConfigSetting::filterSkipVars($params);
     if (!empty($params)) {
         CRM_Core_Error::fatal('Unrecognized setting. This may be a config field which has not been properly migrated to a setting. (' . implode(', ', array_keys($params)) . ')');
     }
     CRM_Core_Config::clearDBCache();
     CRM_Utils_System::flushCache();
     CRM_Core_Resources::singleton()->resetCacheCode();
     CRM_Core_Session::setStatus(" ", ts('Changes Saved'), "success");
 }