Ejemplo n.º 1
0
    //Возможно у родителей обновился crumb из-за child у детей тоже должен обновиться хотя они не в child
}, 'crumb:external');
Event::handler('layer.oninit', function (&$layer) {
    //crumb child
    if (@(!$layer['child'])) {
        return;
    }
    //Это услвие после Crumb::set
    $crumb =& $layer['crumb']->child;
    if ($crumb) {
        $name = $crumb->name;
    } else {
        $name = '###child###';
    }
    Each::fora($layer['child'], function (&$l) use(&$name) {
        Crumb::set($l, 'crumb', $name);
    });
}, 'crumb:external');
Event::handler('layer.oninit', function (&$layer) {
    Each::forx($layer['childs'], function (&$l, $key) {
        //У этого childs ещё не взять external
        if (empty($l['crumb'])) {
            Crumb::set($l, 'crumb', $key);
        }
    });
}, 'crumb:external');
Event::handler('layer.ischeck', function (&$layer) {
    if (!$layer['crumb']->is) {
        return false;
    }
}, 'crumb:external');
Ejemplo n.º 2
0
 public static function _getHtml(&$layer)
 {
     //Вызывается как для основных так и для подслойв tpls frame. Расширяется в tpltpl.prop.js
     if (@$layer['data'] || @$layer['json'] || @$layer['tpls'] || @$layer['tplroot']) {
         $tpls = Template::make($layer['tpl']);
         //С кэшем перепарсивания
         Template::includes($tpls);
         $repls = array();
         //- подшаблоны для замены, Важно, что оригинальный распаршеный шаблон не изменяется
         Each::fora($layer['tplsm'], function ($tm) use(&$repls) {
             //mix tpl
             $t = Template::make($tm);
             //С кэшем перепарсивания
             array_push($repls, $t);
             //for(var i in t)repls[i]=t[i];//Нельзя подменять в оригинальном шаблоне, который в других местах может использоваться без подмен
             //^ из-за этого обработчики указанные в tplsm срабатывают постоянно, так как нельзя поставить отметку о том что обработчик сохранён
         });
         $layer['data'] =& self::getData($layer);
         //подменили строку data на объект data
         $alltpls = array(&$repls, &$tpls);
         $html = Template::exec($alltpls, $layer, @$layer['tplroot'], @$layer['dataroot']);
     } else {
         $tpl = self::getTpl($layer);
         $html = $tpl;
     }
     if (!$html) {
         $html = '';
     }
     return $html;
 }