You are here

function purr_messages_status_messages in Purr Messages 7

Same name and namespace in other branches
  1. 8.2 purr_messages.module \purr_messages_status_messages()
  2. 6.2 purr_messages.module \purr_messages_status_messages()
  3. 6 purr_messages.module \purr_messages_status_messages()
  4. 7.2 purr_messages.module \purr_messages_status_messages()

Checks options and determines which type of message to return to the theme layer.

Parameters

$variables: Array containing theme variables.

Return value

A string containing a formatted message, either purr or original style.

1 string reference to 'purr_messages_status_messages'
purr_messages_theme_registry_alter in ./purr_messages.module
Implements hook_theme_registry_alter().

File

./purr_messages.module, line 140
Purr Messages A jQuery based override of Drupal's core message system

Code

function purr_messages_status_messages($variables) {
  $display = $variables['display'];
  $output = '';
  $purr = NULL;
  foreach (drupal_get_messages($display) as $type => $messages) {
    if (user_access('view purr messages') && variable_get('purr_enabled', TRUE) == TRUE) {
      if (variable_get('purr_messages_admin_path', FALSE) && path_is_admin(substr(request_uri(), 1))) {
        $output .= theme('original_status_messages', array(
          'type' => $type,
          'messages' => $messages,
        ));
      }
      else {
        if (variable_get('purr_messages_explicit', FALSE)) {
          if ($type == 'purr') {
            $purr[] = _purr_messages_purr($type, $messages);
          }
          else {
            $output .= theme('original_status_messages', array(
              'type' => $type,
              'messages' => $messages,
            ));
          }
        }
        else {
          if (_purr_messages_devel_check($messages)) {
            $output .= theme('original_status_messages', array(
              'type' => $type,
              'messages' => $messages,
            ));
          }
          else {
            $purr[] = _purr_messages_purr($type, $messages);
          }
        }
      }
    }
    else {

      // Return the message using the original theme function.
      $output .= theme('original_status_messages', array(
        'type' => $type,
        'messages' => $messages,
      ));
    }
  }
  $module_path = drupal_get_path('module', 'purr_messages');
  $custom_css = purr_messages_status($themelayer = TRUE);
  $custom_css ? drupal_add_css($custom_css) : drupal_add_css($module_path . '/purrcss/purr.css');
  if ($purr) {
    drupal_add_js($module_path . '/js/jquery.purr.js');
    $output .= "<script type=\"text/javascript\">";
    $output .= "(function (\$) {\nDrupal.behaviors.purr_messages = {\n \n      attach: function(context) {\n var notice = ";
    foreach ($purr as $purr_message) {
      $script[] = $purr_message['script'];
    }
    $output .= implode(' + ', $script);

    // Gets the settings if they've been set, otherwise use some defaults.
    $output .= variable_get('purr_messages_code', _purr_messages_defaults());

    // Finish off the script.
    $output .= "}\n};\n})(jQuery);</script>\n";
    $output .= "<noscript>\n";
    foreach ($purr as $purr_message) {
      $output .= $purr_message['noscript'];
    }
    $output .= "</noscript>\n";
  }
  return $output;
}