unused_media_filter-1.0.x-dev/unused_media_filter.module
unused_media_filter.module
<?php
/**
* @file
*
* Shows unused media.
*/
use Drupal\filter\Render\FilteredMarkup;
/**
* Implements hook_theme_registry_alter().
*/
function unused_media_filter_theme_registry_alter(&$theme_registry) {
$theme_registry['views_view']['preprocess functions'] = array_diff($theme_registry['views_view']['preprocess functions'], ['unused_media_filter_preprocess_views_view']);
$theme_registry['views_view']['preprocess functions'][] = 'unused_media_filter_preprocess_views_view';
}
/**
* Implements hook_views_data_alter().
*/
function unused_media_filter_views_data_alter(array &$data) {
$data['media']['unused_media'] = [
'title' => t('Unused'),
'filter' => [
'title' => t('Unused'),
'field' => 'mid',
'id' => 'unused_media',
],
];
return $data;
}
function unused_media_filter_preprocess_views_view(&$variables) {
/** @var \Drupal\views\ViewExecutable $view */
$view = $variables['view'];
if ($view->id() === 'media') {
// Check if the specific filter value is present.
$filters = $view->getExposedInput();
if (!empty($filters['unused_media'])) {
$note = FilteredMarkup::create('<p style="color:red;">' . t('Please note that the "unused" filter does not account for media being used inside CKEditor.') . '</p>');
$variables['exposed']['#suffix'] = $note;
// views_ui_preprocess_views_view() adds a title for when using a
// live_preview which we remove again here.
$variables['title'] = '';
}
}
}
