--- a/web/lib/Zend/View/Helper/HeadScript.php Thu Mar 21 17:31:31 2013 +0100
+++ b/web/lib/Zend/View/Helper/HeadScript.php Thu Mar 21 19:50:53 2013 +0100
@@ -15,8 +15,8 @@
* @category Zend
* @package Zend_View
* @subpackage Helper
- * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
- * @version $Id: HeadScript.php 20363 2010-01-17 22:55:25Z mabe $
+ * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
+ * @version $Id: HeadScript.php 24960 2012-06-15 14:09:34Z adamlundrigan $
* @license http://framework.zend.com/license/new-bsd New BSD License
*/
@@ -29,7 +29,7 @@
* @uses Zend_View_Helper_Placeholder_Container_Standalone
* @package Zend_View
* @subpackage Helper
- * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
+ * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
*/
class Zend_View_Helper_HeadScript extends Zend_View_Helper_Placeholder_Container_Standalone
@@ -245,7 +245,7 @@
break;
case 'file':
default:
- if (!$this->_isDuplicate($content)) {
+ if (!$this->_isDuplicate($content) || $action=='set') {
$attrs['src'] = $content;
$item = $this->createData($type, $attrs);
if ('offsetSet' == $action) {
@@ -371,7 +371,6 @@
throw $e;
}
- $this->_isValid($value);
return $this->getContainer()->offsetSet($index, $value);
}
@@ -411,8 +410,8 @@
$attrString = '';
if (!empty($item->attributes)) {
foreach ($item->attributes as $key => $value) {
- if (!$this->arbitraryAttributesAllowed()
- && !in_array($key, $this->_optionalAttributes))
+ if ((!$this->arbitraryAttributesAllowed() && !in_array($key, $this->_optionalAttributes))
+ || in_array($key, array('conditional', 'noescape')))
{
continue;
}
@@ -423,10 +422,24 @@
}
}
+ $addScriptEscape = !(isset($item->attributes['noescape']) && filter_var($item->attributes['noescape'], FILTER_VALIDATE_BOOLEAN));
+
$type = ($this->_autoEscape) ? $this->_escape($item->type) : $item->type;
$html = '<script type="' . $type . '"' . $attrString . '>';
if (!empty($item->source)) {
- $html .= PHP_EOL . $indent . ' ' . $escapeStart . PHP_EOL . $item->source . $indent . ' ' . $escapeEnd . PHP_EOL . $indent;
+ $html .= PHP_EOL ;
+
+ if ($addScriptEscape) {
+ $html .= $indent . ' ' . $escapeStart . PHP_EOL;
+ }
+
+ $html .= $indent . ' ' . $item->source;
+
+ if ($addScriptEscape) {
+ $html .= $indent . ' ' . $escapeEnd . PHP_EOL;
+ }
+
+ $html .= $indent;
}
$html .= '</script>';