function _ctools_entity_field_value_get_proper_form_items

1 call to _ctools_entity_field_value_get_proper_form_items()
ctools_entity_field_value_ctools_access_settings_submit in plugins/access/entity_field_value.inc

File

plugins/access/entity_field_value.inc, line 145

Code

function _ctools_entity_field_value_get_proper_form_items($field, $form_items, $columns) {
  $items = array();
  // Single value item.
  if (!is_array($form_items)) {
    foreach ($columns as $column) {
      $items[0][$column] = $form_items;
    }
    return $items;
  }
  foreach ($form_items as $delta => $value) {
    $item = array();
    if (is_numeric($delta)) {
      // Array of field values.
      if (!is_array($value)) {
        // Single value in array.
        foreach ($columns as $column) {
          $item[$column] = $value;
        }
      }
      else {
        // Value has colums.
        foreach ($columns as $column) {
          $item[$column] = isset($value[$column]) ? $value[$column] : '';
        }
      }
    }
    $items[] = $item;
  }
  // Check if $form_items is an array of columns.
  $item = array();
  $has_columns = FALSE;
  foreach ($columns as $column) {
    if (isset($form_items[$column])) {
      $has_columns = TRUE;
      $item[$column] = $form_items[$column];
    }
    else {
      $item[$column] = '';
    }
  }
  if ($has_columns) {
    $items[] = $item;
  }
  // Remove empty values.
  $items = _field_filter_items($field, $items);
  return $items;
}