Example #1
0
        return;
    }
    $layer['div'] = Template::parse(array($layer['divtpl']), $layer);
}, 'div:env,config,external');
Event::handler('layer.isshow', function (&$layer) {
    if (empty($layer['div']) && !empty($layer['parent'])) {
        return false;
    }
    //Такой слой игнорируется, события onshow не будет, но обработка пройдёт дальше у других дивов
    $start = false;
    if (Run::exec(Controller::$layers, function (&$l) use(&$layer, &$start) {
        //Пробежка не по слоям на ветке, а по всем слоям обрабатываемых после.. .то есть и на других ветках тоже
        if (!$start) {
            if (Each::isEqual($layer, $l)) {
                $start = true;
            }
            return;
        }
        if (@$l['div'] !== @$layer['div']) {
            return;
        }
        //ищим совпадение дивов впереди
        if (Controller::fire('layer.isshow', $l)) {
            $layer['is_save_branch'] = Layer::isParent($l, $layer);
            return true;
            //Слой который дальше показывается в томже диве найден
        }
    })) {
        return false;
    }
}, 'div:is');