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]); }