media_embed_view_mode_restrictions-1.x-dev/media_embed_view_mode_restrictions.install

media_embed_view_mode_restrictions.install
<?php

/**
 * @file
 * Provides install, uninstall, and update functions.
 */

/**
 * Implements hook_install().
 */
function media_embed_view_mode_restrictions_install() {
  // Generate a list of text format filters where the Media Embed filter is
  // enabled and report this to the site builder.
  //
  // Load config factory.
  /** @var \Drupal\Core\Config\ConfigFactory */
  $config_factory = \Drupal::configFactory();
  // Load all text formats.
  $filter_formats = filter_formats();

  // Create array to keep track of which filter formats have the media_embed
  // filter enabled.
  $affected_filter_formats = [];
  // Loop through all text formats.
  foreach ($filter_formats as $id => $filter_format) {
    /** @var \Drupal\Core\Config\Config */
    $config = $config_factory->getEditable('filter.format.' . $id);
    $filters = $config->get('filters');

    // Check is Media Embed filter is enabled.
    if (isset($filters['media_embed'])) {
      // Mark filter as affected.
      $affected_filter_formats[$id] = $filter_format->get('name');
    }
  }

  // Build string for modified filters.
  $affected_filter_formats_string = '';
  foreach ($affected_filter_formats as $id => $affected_filter) {
    $affected_filter_formats_string .= ' ' . $affected_filter . ',';
  }
  $affected_filter_formats_string = trim($affected_filter_formats_string, " ,");

  \Drupal::messenger()->addMessage(t('The following text formats need to be configured for bundle-specific Media Embed configuration: @filters', ['@filters' => $affected_filter_formats_string]));
  \Drupal::logger('The following text formats need to be configured for bundle-specific Media Embed configuration: @filters', ['@filters' => $affected_filter_formats_string]);
}

/**
 * Implements hook_uninstall().
 */
function media_embed_view_mode_restrictions_uninstall() {
  // This uninstall function removes bundle-specific configuration for
  // Media Embed. It leaves things as if this module were never installed.
  //
  // Load config factory.
  /** @var \Drupal\Core\Config\ConfigFactory */
  $config_factory = \Drupal::configFactory();
  // Load all text formats.
  $filter_formats = filter_formats();

  // Create array to keep track of which filter formats have been modified.
  $modified_filter_formats = [];
  // Loop through all text formats.
  foreach ($filter_formats as $id => $filter_format) {
    /** @var \Drupal\Core\Config\Config */
    $config = $config_factory->getEditable('filter.format.' . $id);
    $filters = $config->get('filters');

    // Check is Media Embed filter is enabled.
    if (isset($filters['media_embed'])) {
      // Remove per-bundle configuration.
      unset($filters['media_embed']['settings']['bundle_view_modes']);
      $config->set('filters', $filters)->save();

      // Mark filter as modified.
      $modified_filter_formats[$id] = $filter_format->get('name');
    }
  }

  // Build string for modified filters.
  $modified_filter_formats_string = '';
  foreach ($modified_filter_formats as $id => $modified_filter) {
    $modified_filter_formats_string .= ' ' . $modified_filter . ',';
  }
  $modified_filter_formats_string = trim($modified_filter_formats_string, " ,");

  \Drupal::messenger()->addMessage(t('Media Embed View Mode Restrictions has remove its Media Embed configuration for the following text formats: @filters', ['@filters' => $modified_filter_formats_string]));
  \Drupal::logger('media_embed_view_mode_restrictions')->notice('Media Embed View Mode Restrictions has remove its Media Embed configuration for the following text formats: @filters', ['@filters' => $modified_filter_formats_string]);
}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc