function salesforce_api_fieldmap_remove_field in Salesforce Suite 6.2
Same name and namespace in other branches
- 7.2 salesforce_api/salesforce_api.admin.inc \salesforce_api_fieldmap_remove_field()
Given a fieldmap name and a field, remove the field from the fieldmap. Redirect to the fieldmap edit page unless specified.
Parameters
string or object $fieldmap - the name of the fieldmap, or the fieldmap itself:
string $field - the name of the field to be removed:
bool $redirect (optional) - default true. Whether to redirect to the fieldmap edit form:
1 string reference to 'salesforce_api_fieldmap_remove_field'
- salesforce_api_menu in salesforce_api/
salesforce_api.module - Implementation of hook_menu().
File
- salesforce_api/
salesforce_api.admin.inc, line 863 - Contains the admin page callbacks for the Salesforce module, including forms for general settings and fieldmap administration.
Code
function salesforce_api_fieldmap_remove_field($fieldmap, $field, $redirect = TRUE) {
if (is_string($fieldmap)) {
$fieldmap = salesforce_api_fieldmap_load($fieldmap);
}
$object_definition = salesforce_api_fieldmap_objects_load('salesforce', $fieldmap->salesforce);
$success = TRUE;
if (empty($object_definition['fields'][$field])) {
$success = FALSE;
}
elseif ($object_definition['fields'][$field]['type'] & SALESFORCE_FIELD_CREATEABLE && !($object_definition['fields'][$field]['type'] & (SALESFORCE_FIELD_NILLABLE | SALESFORCE_FIELD_DEFAULTEDONCREATE))) {
// Don't allow removing required fields.
$success = FALSE;
}
else {
unset($fieldmap->fields[$field]);
salesforce_api_fieldmap_save($fieldmap);
$success = TRUE;
}
if ($redirect) {
drupal_goto(SALESFORCE_PATH_FIELDMAPS . '/' . $fieldmap->name . '/edit');
exit;
}
return $success;
}