public function TablefieldItem::setValue in TableField 8.2
Overrides \Drupal\Core\TypedData\TypedData::setValue().
Parameters
array|null $values: An array of property values.
Overrides FieldItemBase::setValue
File
- src/
Plugin/ Field/ FieldType/ TablefieldItem.php, line 155
Class
- TablefieldItem
- Plugin implementation of the 'tablefield' field type.
Namespace
Drupal\tablefield\Plugin\Field\FieldTypeCode
public function setValue($values, $notify = TRUE) {
if (!isset($values)) {
return;
}
elseif (!empty($values['tablefield'])) {
$values['rebuild'] = $values['tablefield']['rebuild'];
$values['value'] = $values['tablefield']['table'];
unset($values['tablefield']);
unset($values['rebuild']['rebuild']);
}
elseif (!empty($values['value']['tablefield'])) {
$values['rebuild'] = $values['value']['tablefield']['rebuild'];
$values['value'] = $values['value']['tablefield']['table'];
unset($values['rebuild']['rebuild']);
}
elseif (empty($values['rebuild'])) {
if (array_key_exists('value', $values) && array_key_exists('caption', $values['value'])) {
unset($values['value']['caption']);
}
$values['rebuild']['rows'] = isset($values['value']) ? count($values['value']) : 0;
$values['rebuild']['cols'] = isset($values['value'][0]) ? count($values['value'][0]) : 0;
}
if (isset($values['caption'])) {
$values['value']['caption'] = $values['caption'];
}
// If "Lock defaults" is enabled the table needs sorting.
$lock = $this
->getFieldDefinition()
->getSetting('lock_values');
if ($lock) {
// Sort columns on key.
foreach ($values['value'] as $key => $value) {
if (is_array($value)) {
ksort($value);
$values['value'][$key] = $value;
}
}
// Sort rows on key.
if (is_array($values['value'])) {
ksort($values['value']);
}
}
parent::setValue($values, $notify);
}