You are here

function workbench_access_feeds_set_target in Workbench Access 7

Feeds target callback for setting the current workbench state.

1 string reference to 'workbench_access_feeds_set_target'
workbench_access_feeds_processor_targets_alter in ./workbench_access.feeds.inc
Implements hook_feeds_processor_targets_alter().

File

./workbench_access.feeds.inc, line 23
Feeds mappers for Workbench Access.

Code

function workbench_access_feeds_set_target($source, $entity, $target, $value) {
  $tree = workbench_access_get_active_tree();
  if (empty($tree['active'])) {
    return;
  }
  $sections = array();
  $current_section = FALSE;

  // In some cases $value is an array. We need only the first value.
  if (is_array($value)) {
    $value = $value[0];
  }
  $value = trim($value);
  foreach ($tree['active'] as $id => $data) {
    $sections[$id] = $tree['tree'][$id]['name'];
  }
  if (isset($sections[$value])) {
    $current_section = $value;
  }
  else {
    foreach ($sections as $id => $name) {
      if ($name == trim($value)) {
        $current_section = $id;
        break;
      }
    }
  }

  // Only set a new current state if we have a valid new state.
  if ($current_section !== FALSE) {
    $entity->workbench_access = $current_section;
  }
}