I have found the reason and here is a quick fix. The problem is in the message_stack.php:
Code:
function messageStack() {
$this->messages = array();
if (isset($_SESSION['messageToStack']) && $_SESSION['messageToStack']) {
$messageToStack = $_SESSION['messageToStack'];
for ($i=0, $n=sizeof($messageToStack); $i<$n; $i++) {
$this->add($messageToStack[$i]['class'], $messageToStack[$i]['text'], $messageToStack[$i]['type']);
}
$_SESSION['messageToStack']= '';
}
}
If $_SESSION['messageToStack'] is not empty, this function adds a double message to $messageToStack
This is a quick fix (for the message type "success" only, because I had troubles with this type of messages only):
Code:
function add($class, $message, $type = 'error') {
global $template, $current_page_base;
$message = trim($message);
if (strlen($message) > 0) {
//checking if it is not a double message
$double = 0;
for ($i=0, $n=sizeof($this->messages); $i<$n; $i++) {
if($this->messages[$i]['text'] == zen_image($template->get_template_dir(ICON_IMAGE_SUCCESS, DIR_WS_TEMPLATE, $current_page_base,'images/icons'). '/' . ICON_IMAGE_SUCCESS, ICON_SUCCESS_ALT) . ' ' . $message) $double = 1;
}
if($double == 0) {
if ($type == 'error') {
$this->messages[] = array('params' => 'class="messageStackError larger"', 'class' => $class, 'text' => zen_image($template->get_template_dir(ICON_IMAGE_ERROR, DIR_WS_TEMPLATE, $current_page_base,'images/icons'). '/' . ICON_IMAGE_ERROR, ICON_ERROR_ALT) . ' ' . $message);
} elseif ($type == 'warning') {
$this->messages[] = array('params' => 'class="messageStackWarning larger"', 'class' => $class, 'text' => zen_image($template->get_template_dir(ICON_IMAGE_WARNING, DIR_WS_TEMPLATE, $current_page_base,'images/icons'). '/' . ICON_IMAGE_WARNING, ICON_WARNING_ALT) . ' ' . $message);
} elseif ($type == 'success') {
$this->messages[] = array('params' => 'class="messageStackSuccess larger"', 'class' => $class, 'text' => zen_image($template->get_template_dir(ICON_IMAGE_SUCCESS, DIR_WS_TEMPLATE, $current_page_base,'images/icons'). '/' . ICON_IMAGE_SUCCESS, ICON_SUCCESS_ALT) . ' ' . $message);
} elseif ($type == 'caution') {
$this->messages[] = array('params' => 'class="messageStackCaution larger"', 'class' => $class, 'text' => zen_image($template->get_template_dir(ICON_IMAGE_WARNING, DIR_WS_TEMPLATE, $current_page_base,'images/icons'). '/' . ICON_IMAGE_WARNING, ICON_WARNING_ALT) . ' ' . $message);
} else {
$this->messages[] = array('params' => 'class="messageStackError larger"', 'class' => $class, 'text' => $message);
}
}
}
}