Index: includes/bootstrap.inc =================================================================== RCS file: /cvs/drupal/drupal/includes/bootstrap.inc,v retrieving revision 1.206 diff -u -p -r1.206 bootstrap.inc --- includes/bootstrap.inc 10 Jan 2008 22:47:17 -0000 1.206 +++ includes/bootstrap.inc 14 Mar 2008 01:02:06 -0000 @@ -790,11 +790,11 @@ function watchdog($type, $message, $vari * - 'status' * - 'warning' * - 'error' - * @param $repeat - * If this is FALSE and the message is already set, then the message won't - * be repeated. + * @param $message_id + * A string that uniquely identifies the message, so that other modules can modify it using hook_message_alter(). + * This should be prefixed with the name of the module making the call to drupal_set_message(). */ -function drupal_set_message($message = NULL, $type = 'status', $repeat = TRUE) { +function drupal_set_message($message = NULL, $type = 'status', $message_id = NULL) { if ($message) { if (!isset($_SESSION['messages'])) { $_SESSION['messages'] = array(); @@ -805,7 +805,12 @@ function drupal_set_message($message = N } if ($repeat || !in_array($message, $_SESSION['messages'][$type])) { - $_SESSION['messages'][$type][] = $message; + if (isset($message_id)) { + $_SESSION['messages'][$type][$message_id] = $message; + } + else { + $_SESSION['messages'][$type][] = $message; + } } } @@ -828,6 +833,7 @@ function drupal_set_message($message = N */ function drupal_get_messages($type = NULL, $clear_queue = TRUE) { if ($messages = drupal_set_message()) { + module_invoke_all('message_alter', $messages); if ($type) { if ($clear_queue) { unset($_SESSION['messages'][$type]); Index: includes/menu.inc =================================================================== RCS file: /cvs/drupal/drupal/includes/menu.inc,v retrieving revision 1.264 diff -u -p -r1.264 menu.inc --- includes/menu.inc 23 Feb 2008 08:13:09 -0000 1.264 +++ includes/menu.inc 14 Mar 2008 01:02:06 -0000 @@ -2359,7 +2359,7 @@ function _menu_site_is_offline() { // page redirects], and specifically suppress its display on the site // maintenance page. if (drupal_get_normal_path($_GET['q']) != 'admin/settings/site-maintenance') { - drupal_set_message(t('Operating in off-line mode.'), 'status', FALSE); + drupal_set_message(t('Operating in off-line mode.'), 'status', 'menu_site_offline'); } } else {