projects
/
civicrm-core.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Allow to skip geocoding when creating an address with the api
[civicrm-core.git]
/
CRM
/
Core
/
BAO
/
Address.php
diff --git
a/CRM/Core/BAO/Address.php
b/CRM/Core/BAO/Address.php
index 5beb1e53ed5c1ca67a1c5d006748d931c6016a8e..14367b8a03a2eddfad15fee0b637dd958e7f7c5f 100644
(file)
--- a/
CRM/Core/BAO/Address.php
+++ b/
CRM/Core/BAO/Address.php
@@
-135,8
+135,9
@@
class CRM_Core_BAO_Address extends CRM_Core_DAO_Address {
* @return CRM_Core_BAO_Address|null
*/
public static function add(&$params, $fixAddress) {
* @return CRM_Core_BAO_Address|null
*/
public static function add(&$params, $fixAddress) {
- static $customFields = NULL;
+
$address = new CRM_Core_DAO_Address();
$address = new CRM_Core_DAO_Address();
+ $checkPermissions = isset($params['check_permissions']) ? $params['check_permissions'] : TRUE;
// fixAddress mode to be done
if ($fixAddress) {
// fixAddress mode to be done
if ($fixAddress) {
@@
-150,20
+151,20
@@
class CRM_Core_BAO_Address extends CRM_Core_DAO_Address {
if (is_numeric(CRM_Utils_Array::value('is_primary', $params)) || empty($params['id'])) {
CRM_Core_BAO_Block::handlePrimary($params, get_class());
}
if (is_numeric(CRM_Utils_Array::value('is_primary', $params)) || empty($params['id'])) {
CRM_Core_BAO_Block::handlePrimary($params, get_class());
}
- $config = CRM_Core_Config::singleton();
+
$address->copyValues($params);
$address->save();
if ($address->id) {
$address->copyValues($params);
$address->save();
if ($address->id) {
- if (!$customFields) {
- $customFields = CRM_Core_BAO_CustomField::getFields('Address', FALSE, TRUE);
- }
+ $customFields = CRM_Core_BAO_CustomField::getFields('Address', FALSE, TRUE, NULL, NULL, FALSE, FALSE, $checkPermissions);
+
if (!empty($customFields)) {
$addressCustom = CRM_Core_BAO_CustomField::postProcess($params,
$address->id,
'Address',
if (!empty($customFields)) {
$addressCustom = CRM_Core_BAO_CustomField::postProcess($params,
$address->id,
'Address',
- TRUE
+ FALSE,
+ $checkPermissions
);
}
if (!empty($addressCustom)) {
);
}
if (!empty($addressCustom)) {
@@
-342,9
+343,7
@@
class CRM_Core_BAO_Address extends CRM_Core_DAO_Address {
$config = CRM_Core_Config::singleton();
$config = CRM_Core_Config::singleton();
- $asp = CRM_Core_BAO_Setting::getItem(CRM_Core_BAO_Setting::ADDRESS_STANDARDIZATION_PREFERENCES_NAME,
- 'address_standardization_provider'
- );
+ $asp = Civi::settings()->get('address_standardization_provider');
// clean up the address via USPS web services if enabled
if ($asp === 'USPS' &&
$params['country_id'] == 1228
// clean up the address via USPS web services if enabled
if ($asp === 'USPS' &&
$params['country_id'] == 1228
@@
-379,8
+378,11
@@
class CRM_Core_BAO_Address extends CRM_Core_DAO_Address {
}
}
}
}
+ // check if geocode should be skipped (can be forced with an optional parameter through the api)
+ $skip_geocode = (isset($params['skip_geocode']) && $params['skip_geocode']) ? TRUE : FALSE;
+
// add latitude and longitude and format address if needed
// add latitude and longitude and format address if needed
- if (!empty($config->geocodeMethod) && ($config->geocodeMethod != 'CRM_Utils_Geocode_OpenStreetMaps') && empty($params['manual_geo_code'])) {
+ if (!
$skip_geocode && !
empty($config->geocodeMethod) && ($config->geocodeMethod != 'CRM_Utils_Geocode_OpenStreetMaps') && empty($params['manual_geo_code'])) {
$class = $config->geocodeMethod;
$class::format($params);
}
$class = $config->geocodeMethod;
$class::format($params);
}
@@
-1039,7
+1041,7
@@
SELECT is_primary,
'first_name' => $rows[$rowID]['first_name'],
'individual_prefix' => $rows[$rowID]['individual_prefix'],
);
'first_name' => $rows[$rowID]['first_name'],
'individual_prefix' => $rows[$rowID]['individual_prefix'],
);
- $format = C
RM_Core_BAO_Setting::getItem(CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME,
'display_name_format');
+ $format = C
ivi::settings()->get(
'display_name_format');
$firstNameWithPrefix = CRM_Utils_Address::format($formatted, $format, FALSE, FALSE, TRUE);
$firstNameWithPrefix = trim($firstNameWithPrefix);
$firstNameWithPrefix = CRM_Utils_Address::format($formatted, $format, FALSE, FALSE, TRUE);
$firstNameWithPrefix = trim($firstNameWithPrefix);