You are here

function file_entity_entity_type_alter in File Entity (fieldable files) 8.2

Implements hook_entity_info_alter().

Extends the core file entity to be fieldable. The file type is used as the bundle key.

File

./file_entity.module, line 150
Extends Drupal file entities to be fieldable and viewable.

Code

function file_entity_entity_type_alter(&$entity_types) {

  /** @var $entity_types \Drupal\Core\Entity\EntityTypeInterface[] */
  $keys = $entity_types['file']
    ->getKeys();
  $keys['bundle'] = 'type';
  $entity_types['file']
    ->set('entity_keys', $keys)
    ->set('bundle_entity_type', 'file_type')
    ->set('admin_permission', 'administer files')
    ->setClass('Drupal\\file_entity\\Entity\\FileEntity')
    ->setFormClass('default', 'Drupal\\file_entity\\Form\\FileEditForm')
    ->setFormClass('edit', 'Drupal\\file_entity\\Form\\FileEditForm')
    ->setFormClass('inline_edit', 'Drupal\\file_entity\\Form\\FileInlineEditForm')
    ->setFormClass('delete', 'Drupal\\Core\\Entity\\ContentEntityDeleteForm')
    ->setAccessClass('Drupal\\file_entity\\FileEntityAccessControlHandler')
    ->set('field_ui_base_route', 'entity.file_type.edit_form')
    ->setLinkTemplate('canonical', '/file/{file}')
    ->setLinkTemplate('collection', '/admin/content/files')
    ->setLinkTemplate('edit-form', '/file/{file}/edit')
    ->setLinkTemplate('delete-form', '/file/{file}/delete')
    ->setLinkTemplate('inline-edit-form', '/file/{file}/inline-edit')
    ->setViewBuilderClass('Drupal\\file_entity\\Entity\\FileEntityViewBuilder')
    ->setListBuilderClass('Drupal\\Core\\Entity\\EntityListBuilder');

  /*$entity_types['file']['view modes']['teaser'] = array(
      'label' => t('Teaser'),
      'custom settings' => TRUE,
    );
    $entity_types['file']['view modes']['full'] = array(
      'label' => t('Full content'),
      'custom settings' => FALSE,
    );
    $entity_types['file']['view modes']['preview'] = array(
      'label' => t('Preview'),
      'custom settings' => TRUE,
    );
    $entity_types['file']['view modes']['rss'] = array(
      'label' => t('RSS'),
      'custom settings' => FALSE,
    );*/

  // Enable Metatag support.

  //$entity_types['file']['metatags'] = TRUE;
}