From a636ca22642c43b9df588714811da5679775fb38 Mon Sep 17 00:00:00 2001 From: xue <> Date: Mon, 24 Dec 2007 16:06:39 +0000 Subject: TDataFieldAccessor now supports chained property access without getters. TJavaScript::encode() will encode data as a list if integer indices are detected. --- framework/Web/Javascripts/TJavaScript.php | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) (limited to 'framework/Web/Javascripts/TJavaScript.php') diff --git a/framework/Web/Javascripts/TJavaScript.php b/framework/Web/Javascripts/TJavaScript.php index 228dc88f..4dce8e2e 100644 --- a/framework/Web/Javascripts/TJavaScript.php +++ b/framework/Web/Javascripts/TJavaScript.php @@ -153,20 +153,26 @@ class TJavaScript return $value?'true':'false'; else if(is_array($value)) { - $results=array(); - if($toMap) + $results=''; + if(($n=count($value))>0 && array_keys($value)!==range(0,$n-1)) { foreach($value as $k=>$v) - if($v!=='') - $results[]="'{$k}':".self::encode($v,$toMap); - return '{'.implode(',',$results).'}'; + { + if($results!=='') + $results.=','; + $results.="'$k':".self::encode($v,$toMap); + } + return '{'.$results.'}'; } else { - foreach($value as $k=>$v) - if($v!=='') - $results[]=self::encode($v,$toMap); - return '['.implode(',',$results).']'; + foreach($value as $v) + { + if($results!=='') + $results.=','; + $results.=self::encode($v,$toMap); + } + return '['.$results.']'; } } else if(is_integer($value)) -- cgit v1.2.3