function date_entity_metadata_field_setter in Date 7.3
Same name and namespace in other branches
- 7.2 date.module \date_entity_metadata_field_setter()
Callback for setting field property values.
Based on entity_metadata_field_property_set(), the original property setter, adapted to transform non-timestamp date values to timestamps.
1 string reference to 'date_entity_metadata_field_setter'
- date_entity_metadata_property_info_alter in ./
date.module - Callback to alter the property info of date fields.
File
- ./
date.module, line 714
Code
function date_entity_metadata_field_setter(&$entity, $name, $value, $langcode, $entity_type, $info) {
$field = field_info_field($name);
if (!isset($langcode)) {
// Try to figure out the default language used by the entity.
// @todo Update once http://drupal.org/node/1260640 has been fixed.
$langcode = isset($entity->language) ? $entity->language : LANGUAGE_NONE;
}
$values = $field['cardinality'] == 1 ? array(
$value,
) : (array) $value;
$items = array();
foreach ($values as $delta => $value) {
// Make use of the struct setter to convert the date back to a timestamp.
$info['field_name'] = $name;
date_entity_metadata_struct_setter($items[$delta], 'value', $value, $langcode, 'struct', $info);
}
$entity->{$name}[$langcode] = $items;
// Empty the static field language cache, so the field system picks up any
// possible new languages.
drupal_static_reset('field_language');
}