/** * @param $params */ static function fixAndStoreDirAndURL(&$params) { $sql = "\nSELECT v.name as valueName, g.name as optionName\nFROM civicrm_option_value v,\n civicrm_option_group g\nWHERE ( g.name = 'directory_preferences'\nOR g.name = 'url_preferences' )\nAND v.option_group_id = g.id\nAND v.is_active = 1\n"; $dirParams = array(); $urlParams = array(); $dao = CRM_Core_DAO::executeQuery($sql); while ($dao->fetch()) { if (!isset($params[$dao->valueName])) { continue; } if ($dao->optionName == 'directory_preferences') { $dirParams[$dao->valueName] = CRM_Utils_Array::value($dao->valueName, $params, ''); } else { $urlParams[$dao->valueName] = CRM_Utils_Array::value($dao->valueName, $params, ''); } unset($params[$dao->valueName]); } if (!empty($dirParams)) { CRM_Core_BAO_Preferences::storeDirectoryOrURLPreferences($dirParams, 'directory'); } if (!empty($urlParams)) { CRM_Core_BAO_Preferences::storeDirectoryOrURLPreferences($urlParams, 'url'); } }