1: <?php
2: /**
3: * Magento
4: *
5: * NOTICE OF LICENSE
6: *
7: * This source file is subject to the Open Software License (OSL 3.0)
8: * that is bundled with this package in the file LICENSE.txt.
9: * It is also available through the world-wide-web at this URL:
10: * http://opensource.org/licenses/osl-3.0.php
11: * If you did not receive a copy of the license and are unable to
12: * obtain it through the world-wide-web, please send an email
13: * to license@magentocommerce.com so we can send you a copy immediately.
14: *
15: * DISCLAIMER
16: *
17: * Do not edit or add to this file if you wish to upgrade Magento to newer
18: * versions in the future. If you wish to customize Magento for your
19: * needs please refer to http://www.magentocommerce.com for more information.
20: *
21: * @category Mage
22: * @package Mage_Adminhtml
23: * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24: * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25: */
26:
27: /**
28: * Adminhtml JavaScript helper
29: *
30: * @category Mage
31: * @package Mage_Adminhtml
32: * @author Magento Core Team <core@magentocommerce.com>
33: */
34: class Mage_Adminhtml_Helper_Js extends Mage_Core_Helper_Js
35: {
36: /**
37: * Decode serialized grid data
38: *
39: * Ignores non-numeric array keys
40: *
41: * '1&2&3&4' will be decoded into:
42: * array(1, 2, 3, 4);
43: *
44: * otherwise the following format is anticipated:
45: * 1=<encoded string>&2=<encoded string>:
46: * array (
47: * 1 => array(...),
48: * 2 => array(...),
49: * )
50: *
51: * @param string $encoded
52: * @return array
53: */
54: public function decodeGridSerializedInput($encoded)
55: {
56: $isSimplified = (false === strpos($encoded, '='));
57: $result = array();
58: parse_str($encoded, $decoded);
59: foreach($decoded as $key => $value) {
60: if (is_numeric($key)) {
61: if ($isSimplified) {
62: $result[] = $key;
63: } else {
64: $result[$key] = null;
65: parse_str(base64_decode($value), $result[$key]);
66: }
67: }
68: }
69: return $result;
70: }
71: }
72: