You are here

function _salesforce_mapping_get_required_mapping_fields in Salesforce Suite 7.3

Helper to discover which fields required for mapping do not have values.

Parameters

array $form: FAPI form array.

array $form_state: Current state of the form.

Return value

array List of the labels of the fields that are required for mapping fields but currently do not have any values.

1 call to _salesforce_mapping_get_required_mapping_fields()
salesforce_mapping_form in modules/salesforce_mapping/includes/salesforce_mapping.admin.inc
Return a form for a Salesforce mapping entity.

File

modules/salesforce_mapping/includes/salesforce_mapping.admin.inc, line 1213
Configuration page for creating and modifying a mapping.

Code

function _salesforce_mapping_get_required_mapping_fields(&$form, &$form_state) {

  // Retreive the label of the fields from the form to keep these in sync and
  // hopefully multilingual compliant.
  $drupal_entity_type_label =& $form['drupal_entity']['drupal_entity_type']['#title'];
  $drupal_bundle_label =& $form['drupal_entity']['drupal_bundle']['#title'];
  $salesforce_object_type_label =& $form['salesforce_object']['salesforce_object_type']['#title'];
  $fields = array(
    $drupal_entity_type_label => _salesforce_mapping_get_default_value('drupal_entity_type', $form_state),
    $drupal_bundle_label => _salesforce_mapping_get_default_value('drupal_bundle', $form_state),
    $salesforce_object_type_label => _salesforce_mapping_get_default_value('salesforce_object_type', $form_state),
  );

  // Weed out fields that have a value to leave us only with those that don't
  foreach ($fields as $label => $value) {
    if (!empty($value)) {
      unset($fields[$label]);
    }
  }

  // Return only the labels.
  return array_keys($fields);
}