12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- var zy_tmpl_count=function(dd)
- {
- if(Object.prototype.toString.apply(dd)==="[object Array]")
- {
- return dd.length;
- }
- else
- {
- var c=0;
- for(var i in dd)
- c++;
- return c;
- }
- }
- var _f = function(d,c,k1,k2,l){
- var q = c.match(/(first:|last:)(\"|\'*)([^\"\']*)(\"|\'*)/);
- if(!q) return;
- if(q[1]==k1){
- if(q[2]=='\"'||q[2]=='\''){
- return q[3];
- }
- else
- return d[q[3]];
- }
- else if(q[1]==k2 && l>1)
- return "";
- }
- var t_f = function(t,d,i,l,cb){
- return t.replace( /\$\{([^\}]*)\}/g,function(m,c){
- if(c.match(/index:/)){
- return i;
- }
- if(c.match(/cb:/) && cb){
- return cb(d,c.match(/cb:(.*)/));
- }
- if(i==0){
- var s=_f(d,c,"first:","last:",l);
- if(s) return s;
- }
- if(i==(l-1)){
- var s= _f(d,c,"last:","first:",l);
- if(s) return s;
- }
- var ar=c.split('.');
- var res=d;
- for(var key in ar)
- res=res[ar[key]];
- return res||"";
- });
- }
-
- var zy_tmpl = function(t,dd,l,cb,scb){
- var r = "";
- {
- var index=0;
- for(var i in dd)
- {
- if(scb)
- scb(0,i,dd[i]);
- var rr=t_f(t,dd[i],index,l,cb);
- if(scb)
- scb(1,rr,dd[i]);
- r+=rr;
- index++;
- }
- }
- return r;
- }
- var zy_tmpl_s = function(t,dd,cb)
- {
- return t_f(t,dd,-1,-1,cb);
- }
|