Exemple #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');
Exemple #2
0
 public static function set(&$layer, $name, &$value)
 {
     if (!isset($layer['dyn'])) {
         $layer['dyn'] = array();
     }
     $layer['dyn'][$name] = $value;
     if (isset($layer['parent'])) {
         $root =& $layer['parent'][$name];
     } else {
         $root =& Crumb::getInstance();
     }
     if ($layer['dyn'][$name]) {
         $layer[$name] =& $root->getInst($layer['dyn'][$name]);
     } else {
         $layer[$name] =& $root;
     }
 }