/
infra.php
79 lines (66 loc) · 2.12 KB
/
infra.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<?php
namespace infrajs\controller;
use infrajs\event\Event;
use infrajs\path\Path;
use infrajs\view\View;
use infrajs\layer\tpl\Tpl;
/**
* У слоя созданы свойства
* tpl, json, dataroot, tplroot, data, tplcheck, datacheck
**/
Path::req('*controller/infra.php');
Event::handler('oninit', function () {
Layer::parsedAdd('tpl');
Layer::parsedAdd('json');
Layer::parsedAdd('dataroot');
Layer::parsedAdd('tplroot');
}, 'tpl');
Event::handler('layer.oncheck', function (&$layer) {
Tpl::tplroottpl($layer);
Tpl::dataroottpl($layer);
Tpl::tpltpl($layer);
Tpl::jsontpl($layer);
}, 'tpl:div,env,config');
Event::handler('layer.isshow', function (&$layer) {
if (@$layer['tpl']) return;
$r = true;
if (!empty($layer['parent'])) {//Пустой слой не должен обрывать наследования если какой=то родитель скрывает всю ветку
$r = $layer['parent']['is_save_branch'];
if (is_null($r)) $r = true;
}
$layer['is_save_branch'] = $r;
return false;
}, 'tpl:div,is');
Event::handler('layer.isshow', function (&$layer) {
//tpl depricated
if (is_string(@$layer['tpl']) && @$layer['tplcheck']) {
//Мы не можем делать проверку пока другой плагин не подменит tpl
$res = Load::loadTEXT($layer['tpl']);
if (!$res) {
return false;
}
}
}, 'tpl:div,is');
Event::handler('layer.isshow', function (&$layer) {
//tpl depricated
if (Layer::pop($layer, 'onlyclient')) return;
return Tpl::jsoncheck($layer);
}, 'tpl:div,is');
Event::handler('layer.onshow', function (&$layer) {
if (Layer::pop($layer, 'onlyclient')) return;
$layer['html'] = Tpl::getHtml($layer);
}, 'tpl:div');
Event::handler('layer.onshow', function (&$layer) {
//tpl
if (Layer::pop($layer, 'onlyclient')) return;
if(!empty($layer['div'])){
$div = $layer['div'];
}else{
$div = null;
}
$r = View::html($layer['html'], $div);
if (!$r && (!isset($layer['divcheck']) || !$layer['divcheck'])) {
echo 'Не найден div '.$layer['div'].' infra_html<br>';
}
unset($layer['html']);//нефиг в памяти весеть
}, 'tpl:div');