You are here

function media_directories_entity_base_field_info in Media Directories 2.x

Same name and namespace in other branches
  1. 8 media_directories.module \media_directories_entity_base_field_info()
  2. 3.x media_directories.module \media_directories_entity_base_field_info()

Implements hook_entity_base_field_info().

File

./media_directories.module, line 53
Main module file.

Code

function media_directories_entity_base_field_info(EntityTypeInterface $entity_type) {
  if ($entity_type
    ->id() === 'media') {
    $fields = [];
    $fields['directory'] = BaseFieldDefinition::create('entity_reference')
      ->setLabel(t('Directory'))
      ->setDescription(t('The ID of the taxonomy term.'))
      ->setSetting('handler', 'media_directory:default')
      ->setSetting('target_type', 'taxonomy_term')
      ->setDisplayConfigurable('form', TRUE)
      ->setDisplayOptions('form', [
      'type' => 'options_select',
      'weight' => 2,
    ]);
    $config = \Drupal::config('media_directories.settings');
    $vocabulary = $config
      ->get('directory_taxonomy');
    if ($vocabulary) {
      $fields['directory']
        ->setSetting('handler_settings', [
        'target_bundles' => [
          $vocabulary => $vocabulary,
        ],
      ]);
    }
    return $fields;
  }
}