| 300 |
$new_skips[$field_id] = 1; |
$new_skips[$field_id] = 1; |
| 301 |
} |
} |
| 302 |
} |
} |
|
|
|
|
if (!empty($objects[$row->entity_id]->{$field_name})) { |
|
|
// field_attach_load() is specified to return data items indexed |
|
|
// from delta 0, regardless of how they were provided on save. |
|
|
// TODO: Wouldn't it be more efficient to do this on save |
|
|
// instead of load? |
|
|
// TODO: Why do this array_merge on field items once for every |
|
|
// column in the field? It seems like we only need to do it |
|
|
// once per field. |
|
|
foreach ($bundle_fields[$bundle] as $column_name => $tuple) { |
|
|
list($field_name, $field_id, $item_name, $delta) = $tuple; |
|
|
if (!isset($skip_fields[$field_id])) { |
|
|
$objects[$row->entity_id]->{$field_name}[$row->language] = array_merge($objects[$row->entity_id]->{$field_name}[$row->language]); |
|
|
} |
|
|
} |
|
|
} |
|
| 303 |
} |
} |
| 304 |
} |
} |
| 305 |
|
|
| 377 |
$langs_items = $object->{$field_name}; |
$langs_items = $object->{$field_name}; |
| 378 |
} |
} |
| 379 |
|
|
| 380 |
foreach ($langs_items as $language => &$items) { |
foreach ($langs_items as $language => $items) { |
| 381 |
|
// field_attach_load() is specified to return data items indexed |
| 382 |
|
// from delta 0, regardless of how they were provided on |
| 383 |
|
// save. It is more efficient to re-index on save than on load. |
| 384 |
|
$items = array_merge($items); |
| 385 |
for ($delta = 0; $delta < $field['cardinality']; ++$delta) { |
for ($delta = 0; $delta < $field['cardinality']; ++$delta) { |
| 386 |
foreach ($field['columns'] as $name => $spec) { |
foreach ($field['columns'] as $name => $spec) { |
| 387 |
$rows[$language][_field_sql_storage_columnname($field['field_name'], $name) .'_'. $delta] = isset($items[$delta][$name]) ? $items[$delta][$name] : NULL; |
$rows[$language][_field_sql_storage_columnname($field['field_name'], $name) .'_'. $delta] = isset($items[$delta][$name]) ? $items[$delta][$name] : NULL; |