You are here

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\Form

Code

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;
}