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;
}