public function Expert::massageRenderValues in Display Suite 8.3
Same name and namespace in other branches
- 8.4 src/Plugin/DsFieldTemplate/Expert.php \Drupal\ds\Plugin\DsFieldTemplate\Expert::massageRenderValues()
- 8.2 src/Plugin/DsFieldTemplate/Expert.php \Drupal\ds\Plugin\DsFieldTemplate\Expert::massageRenderValues()
Massages the values before they get rendered.
Parameters
array $field_settings: The ds field settings.
array $values: The values.
Overrides DsFieldTemplateBase::massageRenderValues
File
- src/
Plugin/ DsFieldTemplate/ Expert.php, line 204
Class
- Expert
- Plugin for the expert field template.
Namespace
Drupal\ds\Plugin\DsFieldTemplateCode
public function massageRenderValues(&$field_settings, $values) {
if (!empty($values['lb'])) {
$field_settings['lb'] = $values['lb'];
}
if (!empty($values['lb-col'])) {
$field_settings['lb-col'] = TRUE;
}
$wrappers = [
'lbw' => $this
->t('Label wrapper'),
'ow' => $this
->t('Wrapper'),
'fis' => $this
->t('Field items'),
'fi' => $this
->t('Field item'),
];
foreach ($wrappers as $wrapper_key => $title) {
if (!empty($values[$wrapper_key])) {
// Enable.
$field_settings[$wrapper_key] = TRUE;
// Element.
$field_settings[$wrapper_key . '-el'] = !empty($values[$wrapper_key . '-el']) ? $values[$wrapper_key . '-el'] : 'div';
// Classes.
$field_settings[$wrapper_key . '-cl'] = !empty($values[$wrapper_key . '-cl']) ? $values[$wrapper_key . '-cl'] : '';
// Default Classes.
if (in_array($wrapper_key, [
'ow',
'lb',
])) {
$field_settings[$wrapper_key . '-def-cl'] = !empty($values[$wrapper_key . '-def-cl']) ? TRUE : FALSE;
}
// Attributes.
$field_settings[$wrapper_key . '-at'] = !empty($values[$wrapper_key . '-at']) ? $values[$wrapper_key . '-at'] : '';
// Default attributes.
$field_settings[$wrapper_key . '-def-at'] = !empty($values[$wrapper_key . '-def-at']) ? TRUE : FALSE;
// Token replacement.
/* @var \Drupal\Core\Entity\EntityInterface $entity */
if ($entity = $this
->getEntity()) {
// Tokens.
$apply_to = [
'prefix',
$wrapper_key . '-el',
$wrapper_key . '-cl',
$wrapper_key . '-at',
'suffix',
];
foreach ($apply_to as $identifier) {
if (!empty($field_settings[$identifier])) {
$field_settings[$identifier] = \Drupal::token()
->replace($field_settings[$identifier], [
$entity
->getEntityTypeId() => $entity,
], [
'clear' => TRUE,
]);
}
}
}
}
}
}