--- 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();