public static function Ds::getFieldInstance in Display Suite 8.4
Same name and namespace in other branches
- 8.2 src/Ds.php \Drupal\ds\Ds::getFieldInstance()
- 8.3 src/Ds.php \Drupal\ds\Ds::getFieldInstance()
Gets the value for a Display Suite field.
Parameters
string $key: The key of the field.
array $field: The configuration of a DS field.
\Drupal\Core\Entity\EntityInterface $entity: The current entity.
string $view_mode: The name of the view mode.
\Drupal\Core\Entity\Display\EntityDisplayInterface $display: The entity display object.
array $build: The current built of the entity.
Return value
\Drupal\ds\Plugin\DsField\DsFieldInterface Field instance.
1 call to Ds::getFieldInstance()
- ds_entity_view_alter in ./
ds.module - Implements hook_entity_view_alter().
File
- src/
Ds.php, line 63
Class
- Ds
- Helper class that holds all the main Display Suite helper functions.
Namespace
Drupal\dsCode
public static function getFieldInstance($key, array $field, EntityInterface $entity, $view_mode, EntityDisplayInterface $display, array $build = []) {
$configuration = [
'field' => $field,
'field_name' => $key,
'entity' => $entity,
'build' => $build,
'view_mode' => $view_mode,
];
// Load the plugin.
/* @var $field_instance \Drupal\ds\Plugin\DsField\DsFieldInterface */
$field_instance = \Drupal::service('plugin.manager.ds')
->createInstance($field['plugin_id'], $configuration);
/* @var $display \Drupal\Core\Entity\Display\EntityDisplayInterface */
if ($field_settings = $display
->getThirdPartySetting('ds', 'fields')) {
$settings = isset($field_settings[$key]['settings']) ? $field_settings[$key]['settings'] : [];
// Unset field template settings.
if (isset($settings['ft'])) {
unset($settings['ft']);
}
$field_instance
->setConfiguration($settings);
}
return $field_instance;
}