You are here

function sf_entity_export_field_default in Salesforce Suite 7

Same name and namespace in other branches
  1. 7.2 sf_entity/sf_entity.module \sf_entity_export_field_default()
1 string reference to 'sf_entity_export_field_default'
sf_entity_fieldmap_objects in sf_entity/sf_entity.module
Implements hook_fieldmap_objects_alter().

File

sf_entity/sf_entity.module, line 312
Integrates fieldable entities with the Salesforce API.

Code

function sf_entity_export_field_default($entity, $fieldkey, $drupal_field_definition, $sf_field_definition) {
  global $language;

  // Get the data array for the field.
  list($fieldname, $column) = explode(':', $fieldkey, 2);
  if (empty($column)) {
    $column = 'value';
  }
  $lang = empty($entity->language) ? $language->language : $entity->language;
  if (isset($entity->{$fieldname}[$lang])) {
    $data = $entity->{$fieldname}[$lang];
  }
  elseif (!empty($entity->{$fieldname}) && is_array($entity->{$fieldname})) {
    $data = current($entity->{$fieldname});
  }
  else {
    dpm(func_get_args());
    return;
  }
  switch ($sf_field_definition['salesforce']['type']) {
    case 'multipicklist':

      // SF wants a semicolon-delimited string for multipicklist values
      $values = array();
      foreach ($data as $row) {
        $values[] = $row[$column];
      }
      $result = implode(';', $values);
      break;
    default:

      // Unless handled above, use only the first value.
      $result = $data[0][$column];
      break;
  }
  return $result;
}