function purr_messages_status_messages in Purr Messages 6
Same name and namespace in other branches
- 8.2 purr_messages.module \purr_messages_status_messages()
- 6.2 purr_messages.module \purr_messages_status_messages()
- 7.2 purr_messages.module \purr_messages_status_messages()
- 7 purr_messages.module \purr_messages_status_messages()
Build the message status html inside a jquery object.
Adds jQuery and purr code around the object and then returns it back to the theme layer ($messages).
1 string reference to 'purr_messages_status_messages'
- purr_messages_theme_registry_alter in ./
purr_messages.module - Implementation of hook_theme_registry_alter(). Allows the module to override the core status_messages function with purr_messages_status_messages.
File
- ./
purr_messages.module, line 147 - Purr Messages A jQuery based override of Drupal's core message system
Code
function purr_messages_status_messages($display = NULL) {
if (user_access('view purr messages') && variable_get('purr_enabled', TRUE) == TRUE) {
$dgm = drupal_get_messages($display, FALSE);
// Try to catch dpm (devel) calls
if (isset($dgm['status'])) {
foreach ($dgm['status'] as $msg) {
if (variable_get('purr_messages_admin_path', FALSE) || strstr($msg, '<pre>') || strstr($msg, '<textarea') || strstr($msg, 'krumo')) {
// Return the message using the original theme function.
return theme('original_status_messages');
}
}
}
$module_path = drupal_get_path('module', 'purr_messages');
if (!module_exists('libraries')) {
// Check that Libraries API is installed.
drupal_set_message(t('Please install the !libraries to use purr messages.', array(
'!libraries' => l('Libraries API', 'http://drupal.org/project/libraries'),
)), 'error');
return theme('original_status_messages');
// Return a warning.
}
if (file_exists(libraries_get_path('jquery_purr/jquery.purr.js'))) {
drupal_add_js(libraries_get_path('jquery_purr/jquery.purr.js'));
$custom_css = purr_messages_status($themelayer = TRUE);
$custom_css ? drupal_add_css($custom_css) : drupal_add_css($module_path . '/purrcss/purr.css');
$output = '';
foreach (drupal_get_messages($display) as $type => $messages) {
// This javascript will be printed instead of the standard message content.
$output .= "<script type=\"text/javascript\">";
$output .= "Drupal.behaviors.purr_messages = function(context) {\n var notice = ";
$output .= "'<div class=\"notice {$type}\">'\n + '<div class=\"notice-body\">'";
if (count($messages) > 1) {
$output .= "+ '<ul>'\n";
foreach ($messages as $message) {
$output .= "+ '<li>" . addslashes($message) . "</li>'\n";
}
$output .= "+ '</ul>'\n";
}
else {
$output .= "\n+ '" . $messages[0] . "'\n";
}
$output .= "+ '</div>'\n + '<div class=\"notice-bottom\">'\n + '</div>' + '</div>'\n";
// 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 .= "};</script>\n";
// Next we add the old style output if javascript is turned off.
$output .= "<noscript>\n";
$output .= "<div class=\"messages {$type}\">\n";
if (count($messages) > 1) {
$output .= " <ul>\n";
foreach ($messages as $message) {
$output .= ' <li>' . $message . "</li>\n";
}
$output .= " </ul>\n";
}
else {
$output .= $messages[0];
}
$output .= "</div></noscript>\n";
}
return $output;
}
else {
drupal_set_message('You need to install jquery.purr.js in jquery_purr
in your libraries directory. See README.txt for details.', 'warning');
return theme('original_status_messages', $variables);
}
}
else {
// Return the message using the original theme function.
return theme('original_status_messages');
}
}