public function access_by_ref_settings_form::fieldDataFetch in Access by Reference 8
1 call to access_by_ref_settings_form::fieldDataFetch()
- access_by_ref_settings_form::buildForm in src/
Form/ access_by_ref_settings_form.php - Form constructor.
File
- src/
Form/ access_by_ref_settings_form.php, line 206
Class
- access_by_ref_settings_form
- Configure example settings for this site.
Namespace
Drupal\access_by_ref\FormCode
public function fieldDataFetch($contentType, $bundle = 'node', $property = 'label') {
/** @var $entityFieldManager \Drupal\Core\Entity\EntityFieldManagerInterface **/
$entityFieldManager = \Drupal::service('entity_field.manager');
$fields = [];
if (!empty($contentType)) {
$fields = array_filter($entityFieldManager
->getFieldDefinitions($bundle, $contentType), function ($field_definition) {
return $field_definition instanceof FieldConfigInterface;
});
}
switch ($property) {
case 'label':
foreach ($fields as $key => &$field) {
$fields[$key] = $field
->label();
}
break;
case 'type':
foreach ($fields as $key => &$field) {
$fields[$key] = $field
->getType();
}
break;
case 'handler':
foreach ($fields as $key => &$field) {
$fields[$key] = $field
->getSetting('handler');
}
break;
case 'omni':
foreach ($fields as $key => &$field) {
$vals = array(
'handler' => $field
->getSetting('handler'),
'type' => $field
->getType(),
'label' => $field
->label(),
);
$fields[$key] = $vals;
}
break;
}
return $fields;
}