scmsg-8.x-1.1/simple_cool_message.module
simple_cool_message.module
<?php /** * @file * simple_cool_message.module * Provides cool notification messages. */ use Drupal\Core\Routing\RouteMatchInterface; /** * Implements hook_help(). */ function simple_cool_message_help($route_name, RouteMatchInterface $route_match) { switch ($route_name) { // Main module help for the sinceago module. case 'help.page.simple_cool_message': $output = ''; $output .= '<h3>' . t('About') . '</h3>'; $output .= check_markup(file_get_contents(dirname(__FILE__) . "/README.txt")); return $output; default: } } /** * Implements hook_theme(). */ function simple_cool_message_theme($existing, $type, $theme, $path) { return array( 'simple_cool_messages' => array( 'variables' => array('title' => NULL, 'type' => NULL, 'messages' => NULL), 'template' => 'simple-cool-messages', ), ); } /** * Process variables for cool-messages.tpl.php. * * The $variables array contains the following arguments: * - $title * - $type * - $messages * * @see cool-messages.tpl.php */ function template_preprocess_simple_cool_messages(&$variables) { $status_heading = array( 'status' => t('Status message'), 'error' => t('Error message'), 'warning' => t('Warning message'), ); $messages = $variables['messages']; $output = ''; if (!empty($status_heading[$variables['type']])) { $variables['title'] = $status_heading[$variables['type']]; } if (count($messages) > 1) { $output .= " <ul>\n"; foreach ($messages as $message) { $output .= ' <li>' . $message . "</li>\n"; } $output .= " </ul>\n"; } else { $output .= $messages[0]; } $variables['messages'] = $output; } /** * Implements hook_page_attachments(). */ function simple_cool_message_page_attachments(array &$attachments) { // Unconditionally attach an asset to the page. $attachments['#attached']['library'][] = 'simple_cool_message/simple_cool_message.library'; $config = \Drupal::config('simple_cool_message.simple_cool_message'); $settings = [ 'simple_coolmessage_enable' => $config->get('simple_coolmessage_enable'), 'status_color' => $config->get('status_color'), 'info_color' => $config->get('info_color'), 'warning_color' => $config->get('warning_color'), 'error_color' => $config->get('error_color') ]; $attachments['#attached']['drupalSettings']['coll_message'] = $settings; } /** * Implements hook_theme_registry_alter(). */ function simple_cool_message_theme_registry_alter(&$theme_registry) { $coolmessage_enable = \Drupal::config('simple_cool_message.simple_cool_message')->get('simple_coolmessage_enable'); if($coolmessage_enable){ $theme_registry['status_messages']['function'] = 'simple_cool_message_status_messages'; } } /** * Show themed messages. */ function simple_cool_message_status_messages($variables) { $output = ''; $output .= "<div id=\"messages\">\n"; $output .= "<div id=\"messages-box\">\n"; foreach ($variables['message_list'] as $type => $messages) { $template = ['#theme' => 'simple_cool_messages', '#type' => $type, '#messages' => $messages,]; $output .= \Drupal::service('renderer')->render($template); } $output .= "</div>\n"; $output .= "</div>\n"; return $output; }