4 * Implements hook_theme().
6 function drupalmoduleupgrader_theme() {
10 'module' => 'MYMODULE',
12 'block_id' => 'my_block_id',
13 'block_label' => \Drupal::translation()->translate('Untitled'),
14 'configurable' => FALSE,
16 'template' => 'Block',
20 'module' => 'MYMODULE',
22 'template' => 'Controller',
24 'dmu_entity_type' => [
26 'module' => 'MYMODULE',
27 'class' => 'MyEntityType',
28 // This will be pretty much pulled directly out of hook_entity_info().
31 'template' => 'EntityType',
33 'dmu_event_subscriber' => [
35 'module' => 'MYMODULE',
36 'class' => 'MyConfigForm',
40 'template' => 'EventSubscriber',
44 'module' => 'MYMODULE',
46 'form_id' => 'my_form_id',
53 'module' => 'MYMODULE',
54 'class' => 'MyFormatter',
56 'id' => 'formatter_id',
57 'label' => 'My Formatter',
58 'description' => 'Formatter description.',
62 'template' => 'Formatter',
68 'template' => 'Issue',
70 'dmu_outbound_path_processor' => [
72 'module' => 'MYMODULE',
74 'template' => 'OutboundPathProcessor',
78 'module' => 'MYMODULE',
80 'template' => 'Logger',
82 'dmu_route_subscriber' => [
84 'module' => 'MYMODULE',
86 'template' => 'RouteSubscriber',
93 'template' => 'Report',
97 'module' => 'MYMODULE',
98 'class' => 'MyWidget',
101 'label' => 'My Widget',
102 'description' => 'Widget description goes here.',
106 'template' => 'Widget',
111 function template_preprocess_dmu_report(array &$variables) {
112 $categories = \Drupal::config('drupalmoduleupgrader.tags')->get('category');
114 /** @var \Drupal\drupalmoduleupgrader\IssueInterface $issue */
115 foreach ($variables['report']->getIssues() as $issue) {
116 $category = $categories[ $issue->hasTag('category') ? $issue->getTag('category')[0] : 'misc' ];
118 $variables['issues'][$category][] = [
119 '#theme' => 'dmu_issue',
123 ksort($variables['issues']);