function media_library_post_update_display_modes

Create and configure Media Library form and view displays for media types.

File

core/modules/media_library/media_library.post_update.php, line 18

Code

function media_library_post_update_display_modes() {
    // Ensure the custom view and form modes are created.
    $values = [
        'id' => 'media.media_library',
        'targetEntityType' => 'media',
        'label' => t('Media library'),
        'dependencies' => [
            'enforced' => [
                'module' => [
                    'media_library',
                ],
            ],
            'module' => [
                'media',
            ],
        ],
    ];
    if (!EntityViewMode::load('media.media_library')) {
        EntityViewMode::create($values)->save();
    }
    if (!EntityFormMode::load('media.media_library')) {
        EntityFormMode::create($values)->save();
    }
    // The Media Library needs a special form display and view display to make
    // sure the Media Library is displayed properly. These were not automatically
    // created for custom media types, so let's make sure this is fixed.
    $types = [];
    foreach (MediaType::loadMultiple() as $type) {
        $form_display_created = _media_library_configure_form_display($type);
        $view_display_created = _media_library_configure_view_display($type);
        if ($form_display_created || $view_display_created) {
            $types[] = $type->label();
        }
    }
    if ($types) {
        return t('Media Library form and view displays have been created for the following media types: @types.', [
            '@types' => implode(', ', $types),
        ]);
    }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.