function salesforce_api_import_salesforce_field_map_validate in Salesforce Suite 6.2
Make sure that an import actually provides a handler.
File
- salesforce_api/
salesforce_api.module, line 1838 - Defines an API that enables modules to interact with the Salesforce server.
Code
function salesforce_api_import_salesforce_field_map_validate($form, &$form_state) {
// First, run the PHP and turn the input code into an object.
$name = $form_state['values']['name'];
if (preg_match('/[^a-z0-9_]/', $name)) {
form_error($form['name'], t('Invalid name. Please use letters, numbers, or underscores only.'));
}
ob_start();
eval($form_state['values']['object']);
ob_end_clean();
// The object should appear as $salesforce_fieldmap.
// This was the "identifier" set in the export section of the schema.
if (empty($salesforce_field_map)) {
$errors = ob_get_contents();
if (empty($errors)) {
$errors = t('No salesforce_field_map found.');
}
form_error($form['object'], t('Unable to get a fieldmap from the import. Errors reported: @errors', array(
'@errors' => $errors,
)));
}
if (empty($salesforce_field_map->drupal) || empty($salesforce_field_map->salesforce)) {
form_error($form['object'], t('This fieldmap cannot be imported; the object definition is invalid.'));
return;
}
if (!salesforce_api_fieldmap_source_enabled($salesforce_field_map)) {
form_error($form['object'], t('This fieldmap cannot be imported, because the module which supports the Drupal entity "%entity" cannot be found. Please make sure you have required any modules with which this fieldmap was built.', array(
'%entity' => $salesforce_field_map->drupal,
)));
}
// Try to enable the SF object if it was not found.
if (!salesforce_api_fieldmap_target_enabled($salesforce_field_map)) {
form_error($form['object'], t('This fieldmap cannot be imported because salesforce_api cannot find a definition for the Salesforce object "%sfobj". Please verify your Salesforce connection and settings.', array(
'%sfobj' => $salesforce_field_map->salesforce,
)));
}
$form_state['obj'] = $salesforce_field_map;
}