modules/default.js
function(data) {

        for(var i=1;i<=me.tpls[data.tpl].blocks;i++) {
            data['BLOCK_'+i] = []    
        }
 
        // пройдем по всем блокам и выполним код в них
        // каждый последующий блок выполняется строго после предыдущего
        var recur = function(j) {
           
            if(!data || !data.blocks) {  // ToDo Why data.blocks is undefined sometime
                push2tpl(data)
                return;
            }
           
            var b = data.blocks[j],
                plg, ctr;

            if(!b) {  
                push2tpl(data)
                return;
            }

            if(!b.viewarea || 
            (request.page && b.viewarea == 2) ||
            (!request.page && b.viewarea == 1)) {}
            else {
                 recur(j+1)
                 return;
            }
            
            
            if(b.controller && b.controller != '') {
                                
                ctr = b.controller.split(':')
                b.controller = ctr[0]
                if(!ctr[1]) ctr[1] = 'run' // метод контролера по-умолчанию



                if(!!(plg = me.server.getModel(ctr[0])) && !!plg[ctr[1]]) {
                    
                    controllersCount++;
                    
                    request.pageData = data
                    
                    if(ctr.length>2) {
                        //if(!request.urlparams) 
                        request.urlparams = []
                        for(var ii=2;ii<ctr.length;ii++) request.urlparams.push(ctr[ii])
                    }
                  
                    plg[ctr[1]](request, function(bdata, error) {
      
                        if(error) {
                            callback(null, error)
                            return;
                        }
                        
                        if(!data['BLOCK_'+b.block]) data['BLOCK_'+b.block] = []
                        
                        if(bdata === Object(bdata)) {
                            if(bdata.html) data['BLOCK_'+b.block].push({html:bdata.html, m:true})
                            if(bdata.globals) {
                                for(var ii in bdata.globals) data[ii] = bdata.globals[ii]    
                            }
                        } else {
                            data['BLOCK_'+b.block].push({html:bdata, m:true})
                        }
                        recur(j+1)
                    }, auth, data)
                } else {
                    recur(j+1)
                }
            } else {
                if(b.text) {
                    data['BLOCK_'+b.block].push({html:b.text, m:false})
                }
                recur(j+1)
            }
            
        }
        recur(0)
    }
function(data) {

        for(var i=1;i<=me.tpls[data.tpl].blocks;i++) {
            data['BLOCK_'+i] = []    
        }
 
        // пройдем по всем блокам и выполним код в них
        // каждый последующий блок выполняется строго после предыдущего
        var recur = function(j) {
           
            if(!data || !data.blocks) {  // ToDo Why data.blocks is undefined sometime
                push2tpl(data)
                return;
            }
           
            var b = data.blocks[j],
                plg, ctr;

            if(!b) {  
                push2tpl(data)
                return;
            }

            if(!b.viewarea || 
            (request.page && b.viewarea == 2) ||
            (!request.page && b.viewarea == 1)) {}
            else {
                 recur(j+1)
                 return;
            }
            
            
            if(b.controller && b.controller != '') {
                                
                ctr = b.controller.split(':')
                b.controller = ctr[0]
                if(!ctr[1]) ctr[1] = 'run' // метод контролера по-умолчанию



                if(!!(plg = me.server.getModel(ctr[0])) && !!plg[ctr[1]]) {
                    
                    controllersCount++;
                    
                    request.pageData = data
                    
                    if(ctr.length>2) {
                        //if(!request.urlparams) 
                        request.urlparams = []
                        for(var ii=2;ii<ctr.length;ii++) request.urlparams.push(ctr[ii])
                    }
                  
                    plg[ctr[1]](request, function(bdata, error) {
      
                        if(error) {
                            callback(null, error)
                            return;
                        }
                        
                        if(!data['BLOCK_'+b.block]) data['BLOCK_'+b.block] = []
                        
                        if(bdata === Object(bdata)) {
                            if(bdata.html) data['BLOCK_'+b.block].push({html:bdata.html, m:true})
                            if(bdata.globals) {
                                for(var ii in bdata.globals) data[ii] = bdata.globals[ii]    
                            }
                        } else {
                            data['BLOCK_'+b.block].push({html:bdata, m:true})
                        }
                        recur(j+1)
                    }, auth, data)
                } else {
                    recur(j+1)
                }
            } else {
                if(b.text) {
                    data['BLOCK_'+b.block].push({html:b.text, m:false})
                }
                recur(j+1)
            }
            
        }
        recur(0)
    }
function ( data ) { for ( var i = 1 ; i <= me . tpls [ data . tpl ] . blocks ; i ++ ) { data [ 'BLOCK_' + i ] = [ ] } // пройдем по всем блокам и выполним код в них // каждый последующий блок выполняется строго после предыдущего var recur = function ( j ) { if ( ! data || ! data . blocks ) { // ToDo Why data.blocks is undefined sometime push2tpl ( data ) return ; } var b = data . blocks [ j ] , plg , ctr ; if ( ! b ) { push2tpl ( data ) return ; } if ( ! b . viewarea || ( request . page && b . viewarea == 2 ) || ( ! request . page && b . viewarea == 1 ) ) { } else { recur ( j + 1 ) return ; } if ( b . controller && b . controller != '' ) { ctr = b . controller . split ( ':' ) b . controller = ctr [ 0 ] if ( ! ctr [ 1 ] ) ctr [ 1 ] = 'run' // метод контролера по-умолчанию if ( ! ! ( plg = me . server . getModel ( ctr [ 0 ] ) ) && ! ! plg [ ctr [ 1 ] ] ) { controllersCount ++ ; request . pageData = data if ( ctr . length > 2 ) { //if(!request.urlparams)  request . urlparams = [ ] for ( var ii = 2 ; ii < ctr . length ; ii ++ ) request . urlparams . push ( ctr [ ii ] ) } plg [ ctr [ 1 ] ] ( request , function ( bdata , error ) { if ( error ) { callback ( null , error ) return ; } if ( ! data [ 'BLOCK_' + b . block ] ) data [ 'BLOCK_' + b . block ] = [ ] if ( bdata === Object ( bdata ) ) { if ( bdata . html ) data [ 'BLOCK_' + b . block ] . push ( { html : bdata . html , m : true } ) if ( bdata . globals ) { for ( var ii in bdata . globals ) data [ ii ] = bdata . globals [ ii ] } } else { data [ 'BLOCK_' + b . block ] . push ( { html : bdata , m : true } ) } recur ( j + 1 ) } , auth , data ) } else { recur ( j + 1 ) } } else { if ( b . text ) { data [ 'BLOCK_' + b . block ] . push ( { html : b . text , m : false } ) } recur ( j + 1 ) } } recur ( 0 ) }
Готовим данные по блокам
Готовим данные по блокам