I've applied nate's fix with success. Sorry for the reporting -- I'll report bugs more politely in the future. :)
On Apr 11, 2:12 pm, "nate" <[EMAIL PROTECTED]> wrote: > He firespade, > > I actually came up with another method that is more efficient, as it > does not require a loop to check for numeric keys. You can see the > change here, as well as the test case that proves > it:https://trac.cakephp.org/changeset/4838 > > Also, in the future, if you'd like to submit patches (or bug reports > [Josh ;-)]), please readhttps://trac.cakephp.org/wiki/bugreport > and this:https://trac.cakephp.org/wiki/Developement/CodingStandards > > Generally speaking, we don't respond to patches or bug reports on the > mailing list, as this isn't the place for it. Thanks guys. > > On Apr 11, 1:05 pm, "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> wrote: > > > Place this over the original Object method in the javascript.php > > located in "\cake\libs\view\helpers\". > > Enjoy. > > > function object($data, $block = false, $prefix = '', $postfix = '', > > $stringKeys = array(), $quoteKeys = true, $q = "\"") > > { > > $parts = array(); > > $is_list = false; > > > $keys = array_keys($data); > > $max_length = count($data)-1; > > > if(($keys[0] == 0) and ($keys[$max_length] == $max_length)) { > > $is_list = true; > > > for($i=0; $i<count($keys); $i++) { > > if($i != $keys[$i]) { > > $is_list = false; > > break; > > } > > } > > > } > > > foreach($data as $key=>$value) { > > if(is_array($value)) { > > if($is_list) $parts[] = $this->object($value, false, '', > > '', $stringKeys, $quoteKeys, $q); > > else $parts[] = $q . $this->escapeString($key) . $q . > > ':' . $this->object($value, false, '', '', $stringKeys, $quoteKeys, > > $q); > > } else { > > $str = ''; > > if(!$is_list) $str = $q . $this->escapeString($key) . > > $q .':'; > > > if(is_numeric($value)) $str .= $value; > > elseif($value === false) $str .= 'false'; > > elseif($value === true) $str .= 'true'; > > else $str .= $q . $this->escapeString($value) . $q; > > > $parts[] = $str; > > } > > } > > $json = implode(',',$parts); > > > if($is_list) return '[' . $json . ']'; > > else $rt = '{' . $json . '}'; > > > $rt = $prefix . $rt . $postfix; > > > if($block) > > { > > $rt = $this->codeBlock($rt); > > } > > > return $rt; > > } --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Cake PHP" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/cake-php?hl=en -~----------~----~----~----~------~----~------~--~---
