diff -r 5e7a0fedabdf -r 877f952ae2bd web/lib/Zend/View/Helper/Json.php --- a/web/lib/Zend/View/Helper/Json.php Thu Mar 21 17:31:31 2013 +0100 +++ b/web/lib/Zend/View/Helper/Json.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: Json.php 23451 2010-11-28 13:10:03Z ramon $ + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @version $Id: Json.php 25091 2012-11-07 19:58:48Z rob $ * @license http://framework.zend.com/license/new-bsd New BSD License */ @@ -34,7 +34,7 @@ * * @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_Json extends Zend_View_Helper_Abstract @@ -43,28 +43,38 @@ * Encode data as JSON, disable layouts, and set response header * * If $keepLayouts is true, does not disable layouts. + * If $encodeJson is false, does not JSON-encode $data * * @param mixed $data * @param bool $keepLayouts * NOTE: if boolean, establish $keepLayouts to true|false * if array, admit params for Zend_Json::encode as enableJsonExprFinder=>true|false - * this array can contains a 'keepLayout'=>true|false + * this array can contains a 'keepLayout'=>true|false and/or 'encodeData'=>true|false * that will not be passed to Zend_Json::encode method but will be used here + * @param bool $encodeData * @return string|void */ - public function json($data, $keepLayouts = false) + public function json($data, $keepLayouts = false, $encodeData = true) { $options = array(); - if (is_array($keepLayouts)) - { - $options = $keepLayouts; - $keepLayouts = (array_key_exists('keepLayouts', $keepLayouts)) - ? $keepLayouts['keepLayouts'] - : false; - unset($options['keepLayouts']); + if (is_array($keepLayouts)) { + $options = $keepLayouts; + + $keepLayouts = false; + if (array_key_exists('keepLayouts', $options)) { + $keepLayouts = $options['keepLayouts']; + unset($options['keepLayouts']); + } + + if (array_key_exists('encodeData', $options)) { + $encodeData = $options['encodeData']; + unset($options['encodeData']); + } } - $data = Zend_Json::encode($data, null, $options); + if ($encodeData) { + $data = Zend_Json::encode($data, null, $options); + } if (!$keepLayouts) { require_once 'Zend/Layout.php'; $layout = Zend_Layout::getMvcInstance();