You are here

function _sf_node_import_cck_default in Salesforce Suite 6.2

Same name and namespace in other branches
  1. 5.2 sf_node/sf_node.module \_sf_node_import_cck_default()
2 string references to '_sf_node_import_cck_default'
hook_fieldmap_objects in ./hooks.php
Expose fields to fieldmappings.
sf_node_fieldmap_objects in sf_node/sf_node.module
Implementation of hook_fieldmap_objects_alter().

File

sf_node/sf_node.module, line 306
Integrates the core node object and various node related modules with the Salesforce API.

Code

function _sf_node_import_cck_default(&$node, $drupal_fieldname, $drupal_field_definition, $sf_data, $sf_fieldname, $sf_field_definition) {
  $data = array();
  list($drupal_fieldname, $column) = explode(':', $drupal_fieldname, 2);
  if (empty($column)) {
    $column = 'value';
  }

  // Convert data based on what SF type we're importing.
  switch ($sf_field_definition['salesforce']['type']) {
    case 'multipicklist':

      // SF sends multiple values as a semicolon-delimited string.
      if ($drupal_field_definition['multiple']) {
        $sf_data = explode(';', $sf_data->{$sf_fieldname});
        foreach ($sf_data as $row) {
          $data[] = array(
            $column => $row,
          );
        }
      }
      else {
        $data[0][$column] = $sf_data->{$sf_fieldname};
      }
      break;
    default:

      // Unless handled above in this switch, we don't yet handle fields with multiple values.
      $data[0][$column] = $sf_data->{$sf_fieldname};
      break;
  }
  $node->{$drupal_fieldname} = $data;
}