nl_tokens: Готовим данные по блокам
pl_tokens: function ( data ) { for ( var i = 1 ; i <= me . tpls [ data . tpl ] . blocks ; i ++ ) { <mask> [ '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 ) }