function module_filter_form_system_modules_alter in Module Filter 8.3
Same name and namespace in other branches
- 8 module_filter.module \module_filter_form_system_modules_alter()
- 6 module_filter.module \module_filter_form_system_modules_alter()
- 7.2 module_filter.module \module_filter_form_system_modules_alter()
- 7 module_filter.module \module_filter_form_system_modules_alter()
Implements hook_form_FORM_ID_alter().
File
- ./
module_filter.module, line 35 - Provides a filtering mechanism to various admin pages.
Code
function module_filter_form_system_modules_alter(&$form, FormStateInterface $form_state, $form_id) {
$config = \Drupal::config('module_filter.settings');
$key = array_search('system/drupal.system.modules', $form['#attached']['library']);
if ($key !== FALSE) {
unset($form['#attached']['library'][$key]);
}
$form['#attached']['library'][] = $config
->get('tabs') ? 'module_filter/modules.tabs' : 'module_filter/modules.bare';
unset($form['filters']['text']['#description']);
$form['filters']['text']['#placeholder'] = t('Filter by name');
if (!empty($_GET['filter'])) {
$form['filters']['text']['#default_value'] = $_GET['filter'];
}
$status_defaults = [
isset($_GET['enabled']) ? $_GET['enabled'] : 1 ? 'enabled' : '',
isset($_GET['disabled']) ? $_GET['disabled'] : 1 ? 'disabled' : '',
isset($_GET['unavailable']) ? $_GET['unavailable'] : 1 ? 'unavailable' : '',
];
$form['filters']['status'] = [
'#type' => 'container',
'#attributes' => [
'class' => [
'module-filter-status',
],
],
'checkboxes' => [
'#type' => 'checkboxes',
'#default_value' => array_filter($status_defaults),
'#options' => [
'enabled' => t('Enabled'),
'disabled' => t('Disabled'),
'unavailable' => t('Unavailable'),
],
],
];
$state = \Drupal::state();
$recent = $state
->get('module_filter.recent') ?: [];
// Remove recent items older than a week.
$recent = array_filter($recent, function ($val) {
return !($val < \Drupal::time()
->getRequestTime() - 60 * 60 * 24 * 7);
});
$state
->set('module_filter.recent', $recent);
if (!empty($recent)) {
foreach ($recent as $module => $time) {
foreach (Element::children($form['modules']) as $package) {
if (isset($form['modules'][$package][$module])) {
$form['modules'][$package][$module]['#attributes']['class'][] = 'recent';
break;
}
}
}
}
$modules = \Drupal::service('extension.list.module')
->reset()
->getList();
foreach ($modules as $name => $module) {
if ($name == 'module_filter') {
$ctime = filectime($module
->getPathname());
if ($ctime - strtotime('-1 week') > 0) {
foreach (Element::children($form['modules']) as $package) {
if (isset($form['modules'][$package][$name])) {
$form['modules'][$package][$name]['#attributes']['class'][] = 'new';
break;
}
}
}
}
}
$form['#submit'][] = 'module_filter_system_modules_recent_enabled_submit';
$form['#submit'][] = 'module_filter_system_modules_redirect_submit';
}