view core/modules/media_library/media_library.install @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents af1871eacc83
children
line wrap: on
line source
<?php

/**
 * @file
 * Install, update and uninstall functions for the media_library module.
 */

use Drupal\image\Entity\ImageStyle;
use Drupal\media\Entity\MediaType;
use Drupal\views\Entity\View;

/**
 * Implements hook_install().
 */
function media_library_install() {
  // Change the path to the original media view.
  /** @var \Drupal\views\Entity\View $view */
  if ($view = View::load('media')) {
    $display = &$view->getDisplay('media_page_list');
    if (!empty($display)) {
      $display['display_options']['path'] = 'admin/content/media-table';
      unset($display['display_options']['menu']);
      $view->trustData()->save();
    }
  }
  if (!\Drupal::isConfigSyncing()) {
    foreach (MediaType::loadMultiple() as $type) {
      _media_library_configure_form_display($type);
      _media_library_configure_view_display($type);
    }
  }
}

/**
 * Implements hook_uninstall().
 */
function media_library_uninstall() {
  // Restore the path to the original media view.
  /** @var \Drupal\views\Entity\View $view */
  if ($view = View::load('media')) {
    $display = &$view->getDisplay('media_page_list');
    if (!empty($display)) {
      $display['display_options']['path'] = 'admin/content/media';
      $display['display_options']['menu'] = [
        'type' => 'tab',
        'title' => 'Media',
        'description' => '',
        'expanded' => FALSE,
        'parent' => '',
        'weight' => 0,
        'context' => '0',
        'menu_name' => 'main',
      ];
      $view->trustData()->save();
    }
  }
}

/**
 * Create the 'media_library' image style.
 */
function media_library_update_8701() {
  $image_style = ImageStyle::create([
    'name' => 'media_library',
    'label' => 'Media Library (220x220)',
  ]);
  // Add a scale effect.
  $image_style->addImageEffect([
    'id' => 'image_scale',
    'weight' => 0,
    'data' => [
      'width' => 220,
      'height' => 220,
      'upscale' => FALSE,
    ],
  ]);
  $image_style->save();
}

/**
 * Updates the media library view widget display (contextual) filters.
 */
function media_library_update_8702() {
  $view = \Drupal::configFactory()->getEditable('views.view.media_library');
  if ($view && $view->get('display.widget')) {
    $view->set('display.widget.display_options.defaults.filters', FALSE);
    $view->set('display.widget.display_options.defaults.filter_groups', FALSE);
    $view->set('display.widget.display_options.defaults.arguments', FALSE);
    $view->set('display.widget.display_options.filters', [
      'status' => [
        'id' => 'status',
        'table' => 'media_field_data',
        'field' => 'status',
        'relationship' => 'none',
        'group_type' => 'group',
        'admin_label' => '',
        'operator' => '=',
        'value' => '1',
        'group' => 1,
        'exposed' => FALSE,
        'expose' => [
          'operator_id' => '',
          'label' => '',
          'description' => '',
          'use_operator' => FALSE,
          'operator' => '',
          'identifier' => '',
          'required' => FALSE,
          'remember' => FALSE,
          'multiple' => FALSE,
          'remember_roles' => [
            'authenticated' => 'authenticated',
          ],
        ],
        'is_grouped' => FALSE,
        'group_info' => [
          'label' => '',
          'description' => '',
          'identifier' => '',
          'optional' => TRUE,
          'widget' => 'select',
          'multiple' => FALSE,
          'remember' => FALSE,
          'default_group' => 'All',
          'default_group_multiple' => [],
          'group_items' => [],
        ],
        'entity_type' => 'media',
        'entity_field' => 'status',
        'plugin_id' => 'boolean',
      ],
      'name' => [
        'id' => 'name',
        'table' => 'media_field_data',
        'field' => 'name',
        'relationship' => 'none',
        'group_type' => 'group',
        'admin_label' => '',
        'operator' => 'contains',
        'value' => '',
        'group' => 1,
        'exposed' => TRUE,
        'expose' => [
          'operator_id' => 'name_op',
          'label' => 'Name',
          'description' => '',
          'use_operator' => FALSE,
          'operator' => 'name_op',
          'identifier' => 'name',
          'required' => FALSE,
          'remember' => FALSE,
          'multiple' => FALSE,
          'remember_roles' => [
            'authenticated' => 'authenticated',
            'anonymous' => '0',
            'administrator' => '0',
          ],
        ],
        'is_grouped' => FALSE,
        'group_info' => [
          'label' => '',
          'description' => '',
          'identifier' => '',
          'optional' => TRUE,
          'widget' => 'select',
          'multiple' => FALSE,
          'remember' => FALSE,
          'default_group' => 'All',
          'default_group_multiple' => [],
          'group_items' => [],
        ],
        'entity_type' => 'media',
        'entity_field' => 'name',
        'plugin_id' => 'string',
      ],
    ]);
    $view->set('display.widget.display_options.filter_groups', [
      'operator' => 'AND',
      'groups' => [
        1 => 'AND',
      ],
    ]);
    $view->set('display.widget.display_options.arguments', [
      'bundle' => [
        'id' => 'bundle',
        'table' => 'media_field_data',
        'field' => 'bundle',
        'relationship' => 'none',
        'group_type' => 'group',
        'admin_label' => '',
        'default_action' => 'ignore',
        'exception' => [
          'value' => 'all',
          'title_enable' => FALSE,
          'title' => 'All',
        ],
        'title_enable' => FALSE,
        'title' => '',
        'default_argument_type' => 'fixed',
        'default_argument_options' => [
          'argument' => '',
        ],
        'default_argument_skip_url' => FALSE,
        'summary_options' => [
          'base_path' => '',
          'count' => TRUE,
          'items_per_page' => 25,
          'override' => FALSE,
        ],
        'summary' => [
          'sort_order' => 'asc',
          'number_of_records' => 0,
          'format' => 'default_summary',
        ],
        'specify_validation' => FALSE,
        'validate' => [
          'type' => 'none',
          'fail' => 'not found',
        ],
        'validate_options' => [],
        'glossary' => FALSE,
        'limit' => 0,
        'case' => 'none',
        'path_case' => 'none',
        'transform_dash' => FALSE,
        'break_phrase' => FALSE,
        'entity_type' => 'media',
        'entity_field' => 'bundle',
        'plugin_id' => 'string',
      ],
    ]);
    $view->save();
  }
}