|
|
@@ -98,6 +98,13 @@ class Zend_Form_Element implements Zend_Validate_Interface
|
|
|
protected $_errors = array();
|
|
|
|
|
|
/**
|
|
|
+ * Separator to use when concatenating aggregate error messages (for
|
|
|
+ * elements having array values)
|
|
|
+ * @var string
|
|
|
+ */
|
|
|
+ protected $_errorMessageSeparator = '; ';
|
|
|
+
|
|
|
+ /**
|
|
|
* Element filters
|
|
|
* @var array
|
|
|
*/
|
|
|
@@ -1413,6 +1420,28 @@ class Zend_Form_Element implements Zend_Validate_Interface
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * Get errorMessageSeparator
|
|
|
+ *
|
|
|
+ * @return string
|
|
|
+ */
|
|
|
+ public function getErrorMessageSeparator()
|
|
|
+ {
|
|
|
+ return $this->_errorMessageSeparator;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Set errorMessageSeparator
|
|
|
+ *
|
|
|
+ * @param string $separator
|
|
|
+ * @return Zend_Form_Element
|
|
|
+ */
|
|
|
+ public function setErrorMessageSeparator($separator)
|
|
|
+ {
|
|
|
+ $this->_errorMessageSeparator = $separator;
|
|
|
+ return $this;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* Mark the element as being in a failed validation state
|
|
|
*
|
|
|
* @return Zend_Form_Element
|
|
|
@@ -2126,12 +2155,14 @@ class Zend_Form_Element implements Zend_Validate_Interface
|
|
|
if (null !== $translator) {
|
|
|
$message = $translator->translate($message);
|
|
|
}
|
|
|
- if ($this->isArray() || is_array($value)) {
|
|
|
+ if (($this->isArray() || is_array($value))
|
|
|
+ && !empty($value)
|
|
|
+ ) {
|
|
|
$aggregateMessages = array();
|
|
|
foreach ($value as $val) {
|
|
|
$aggregateMessages[] = str_replace('%value%', $val, $message);
|
|
|
}
|
|
|
- $messages[$key] = $aggregateMessages;
|
|
|
+ $messages[$key] = implode($this->getErrorMessageSeparator(), $aggregateMessages);
|
|
|
} else {
|
|
|
$messages[$key] = str_replace('%value%', $value, $message);
|
|
|
}
|