Commit 5b73def3 authored by Dries's avatar Dries

- Changed the way status messages are printed as per Kristjan's suggestion:

  http://drupal.org/files/issues/error_messages_list.png (issue #9138).

  drupal_set_message() has been changed to group message by type and a
  helper function, theme_status_message(), is added to display the messages.
  Chameleon and Xtemplate have been updated to use this new function.

- Updated CHANGELOG.txt.
parent 898bdeff
......@@ -22,11 +22,14 @@ Drupal x.x.x, xxxx-xx-xx
* added support for multiple database connections.
- theme system:
* changed all GIFs to PNGs.
- blocks:
* added 'recent comments' block.
* added 'categories' block.
- blogger API:
* added support for auto-discovery of blogger API via RSD.
- accessibility:
* improved the accessibility of the archive module's calendar.
* improved form handling.
* improved form handling and error reporting.
Drupal 4.4.2, 2004-07-04
......
......@@ -261,12 +261,16 @@ function watchdog($type, $message, $link = NULL) {
* @{
*/
function drupal_set_message($message = NULL, $type = "status") {
if (!isset($_SESSION['messages'])) {
$_SESSION['messages'] = array();
}
if (isset($message)) {
$_SESSION['messages'][] = array($message, $type);
if (!isset($_SESSION['messages'])) {
$_SESSION['messages'] = array();
}
if (!isset($_SESSION['messages'][$type])) {
$_SESSION['messages'][$type] = array();
}
$_SESSION['messages'][$type][] = $message;
}
return $_SESSION['messages'];
......
......@@ -183,6 +183,35 @@ function theme_page($content, $title = NULL, $breadcrumb = NULL) {
return $output;
}
/**
* Returns themed set of status and/or error messages. The messages are grouped
* by type.
*
* @return a string containing the messages.
*/
function theme_status_messages() {
if ($data = drupal_get_messages()) {
$output = '';
foreach ($data as $type => $messages) {
$output .= "<div class=\"messages $type\">\n";
if (count($messages) > 1) {
$output .= " <ul>\n";
foreach($messages as $message) {
$output .= " <li>". ucfirst($message) ."</li>\n";
}
$output .= " </ul>\n";
}
else {
$output .= ucfirst($messages[0]);
}
$output .= "</div>\n";
}
return $output;
}
}
/**
* Returns themed set of links.
*
......@@ -283,7 +312,6 @@ function theme_node($node, $main = 0, $page = 0) {
function theme_form_element($title, $value, $description = NULL, $id = NULL, $required = FALSE, $error = FALSE) {
$output = "<div class=\"form-item\">\n";
$required = $required ? theme('mark') : '';
if ($title) {
......@@ -446,6 +474,7 @@ function theme_item_list($items = array(), $title = NULL) {
/**
* Returns themed error message.
* REMOVE: this function is deprecated an no longer used in core.
*
* @param $message the error message to be themed.
*
......
......@@ -77,10 +77,7 @@ function chameleon_page($content, $title = NULL, $breadcrumb = NULL) {
$output .= "<div id=\"help\">$help</div><hr />";
}
foreach (drupal_get_messages() as $message) {
list($message, $type) = $message;
$output .= "<div class=\"message $type\">". ucfirst($message) ."</div>";
}
$output .= theme_status_messages();
$output .= "\n<!-- begin content -->\n";
$output .= $content;
......
......@@ -99,17 +99,17 @@ br {
.block {
width: 180px;
}
.message {
.messages {
padding: 0.3em;
margin: 1em 0em 1em 0em;
margin: 0.5em 0em 0.5em 0em;
}
.status {
border: 1px solid #696;
color: #696;
border: 1px solid #3a3;
color: #3a3;
}
.error, form-item input.error {
border: 1px solid #930;
color: #930;
border: 1px solid red;
color: red;
}
/*
......
......@@ -142,7 +142,7 @@ table {
.breadcrumb {
margin-bottom: .5em;
}
.message {
.messages {
background-color: #eee;
border: 1px solid #ccc;
padding: 0.3em;
......
......@@ -53,7 +53,7 @@
<div id="help">{help}</div>
<!-- END: help -->
<!-- BEGIN: message -->
<div class="message {type}">{message}</div>
{message}
<!-- END: message -->
<!-- END: header -->
......
......@@ -177,7 +177,7 @@ td#home a:hover img {
.breadcrumb {
margin-bottom: .5em;
}
.message {
.messages {
background-color: #eee;
border: 1px solid #ccc;
padding: 0.3em;
......
......@@ -59,7 +59,7 @@
<div id="help">{help}</div>
<!-- END: help -->
<!-- BEGIN: message -->
<div class="message {type}">{message}</div>
{message}
<!-- END: message -->
<!-- END: header -->
......
......@@ -164,10 +164,8 @@ function xtemplate_page($content, $title = NULL, $breadcrumb = NULL) {
$xtemplate->template->parse("header.help");
}
foreach (drupal_get_messages() as $message) {
list($message, $type) = $message;
$xtemplate->template->assign("message", ucfirst($message));
$xtemplate->template->assign("type", $type);
if ($message = theme_status_messages()) {
$xtemplate->template->assign("message", $message);
$xtemplate->template->parse("header.message");
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment