summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.txt5
-rw-r--r--includes/bootstrap.inc14
-rw-r--r--includes/theme.inc31
-rw-r--r--themes/chameleon/chameleon.theme5
-rw-r--r--themes/chameleon/common.css12
-rw-r--r--themes/xtemplate/default/xtemplate.css2
-rw-r--r--themes/xtemplate/default/xtemplate.xtmpl2
-rw-r--r--themes/xtemplate/pushbutton/xtemplate.css2
-rw-r--r--themes/xtemplate/pushbutton/xtemplate.xtmpl2
-rw-r--r--themes/xtemplate/xtemplate.theme6
10 files changed, 56 insertions, 25 deletions
diff --git a/CHANGELOG.txt b/CHANGELOG.txt
index 7ca96fc74..30bc4331e 100644
--- a/CHANGELOG.txt
+++ b/CHANGELOG.txt
@@ -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
diff --git a/includes/bootstrap.inc b/includes/bootstrap.inc
index 968f0d29f..7a4518a51 100644
--- a/includes/bootstrap.inc
+++ b/includes/bootstrap.inc
@@ -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'];
diff --git a/includes/theme.inc b/includes/theme.inc
index 494ee78b2..c7c7c4887 100644
--- a/includes/theme.inc
+++ b/includes/theme.inc
@@ -184,6 +184,35 @@ function theme_page($content, $title = NULL, $breadcrumb = NULL) {
}
/**
+ * 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.
*
* @param $links an array of @a links to be themed.
@@ -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.
*
diff --git a/themes/chameleon/chameleon.theme b/themes/chameleon/chameleon.theme
index 3f24f7406..8af17edf0 100644
--- a/themes/chameleon/chameleon.theme
+++ b/themes/chameleon/chameleon.theme
@@ -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;
diff --git a/themes/chameleon/common.css b/themes/chameleon/common.css
index ece5c3ab3..7ed4e4ff8 100644
--- a/themes/chameleon/common.css
+++ b/themes/chameleon/common.css
@@ -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;
}
/*
diff --git a/themes/xtemplate/default/xtemplate.css b/themes/xtemplate/default/xtemplate.css
index 5e2e7b2c2..8828323a4 100644
--- a/themes/xtemplate/default/xtemplate.css
+++ b/themes/xtemplate/default/xtemplate.css
@@ -142,7 +142,7 @@ table {
.breadcrumb {
margin-bottom: .5em;
}
-.message {
+.messages {
background-color: #eee;
border: 1px solid #ccc;
padding: 0.3em;
diff --git a/themes/xtemplate/default/xtemplate.xtmpl b/themes/xtemplate/default/xtemplate.xtmpl
index c05d34534..e01129a38 100644
--- a/themes/xtemplate/default/xtemplate.xtmpl
+++ b/themes/xtemplate/default/xtemplate.xtmpl
@@ -53,7 +53,7 @@
<div id="help">{help}</div>
<!-- END: help -->
<!-- BEGIN: message -->
- <div class="message {type}">{message}</div>
+ {message}
<!-- END: message -->
<!-- END: header -->
diff --git a/themes/xtemplate/pushbutton/xtemplate.css b/themes/xtemplate/pushbutton/xtemplate.css
index a78cb095f..cdf464eec 100644
--- a/themes/xtemplate/pushbutton/xtemplate.css
+++ b/themes/xtemplate/pushbutton/xtemplate.css
@@ -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;
diff --git a/themes/xtemplate/pushbutton/xtemplate.xtmpl b/themes/xtemplate/pushbutton/xtemplate.xtmpl
index f847c51c3..5e148eaac 100644
--- a/themes/xtemplate/pushbutton/xtemplate.xtmpl
+++ b/themes/xtemplate/pushbutton/xtemplate.xtmpl
@@ -59,7 +59,7 @@
<div id="help">{help}</div>
<!-- END: help -->
<!-- BEGIN: message -->
- <div class="message {type}">{message}</div>
+ {message}
<!-- END: message -->
<!-- END: header -->
diff --git a/themes/xtemplate/xtemplate.theme b/themes/xtemplate/xtemplate.theme
index 60efdeeb5..1ef3a591c 100644
--- a/themes/xtemplate/xtemplate.theme
+++ b/themes/xtemplate/xtemplate.theme
@@ -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");
}