Exemple #1
0
 public static function check(&$layer)
 {
     if (!isset($layer['css'])) {
         return;
     }
     if (static::$ready[$css]) {
         return;
     }
     Each::fora($layer['css'], function ($css) use(&$layer) {
         Css::$ready[$css] = true;
         $code = Load::loadTEXT($css);
         View::html('<style>' . $code . '</style>', $layer['div']);
         $r = null;
         return $r;
     });
 }
Exemple #2
0
 public static function checkExt(&$layer, &$external)
 {
     if (!$external) {
         return;
     }
     unset($layer['external']);
     Each::fora($external, function &(&$exter) use(&$layer) {
         if (is_string($exter)) {
             $external =& Load::loadJSON($exter);
         } else {
             $external = $exter;
         }
         if ($external) {
             foreach ($external as $i => &$v) {
                 external::merge($layer, $external, $i);
             }
         }
         $r = null;
         return $r;
     });
 }
Exemple #3
0
    //Возможно у родителей обновился crumb из-за child у детей тоже должен обновиться хотя они не в child
}, 'crumb');
Event::handler('Layer.oninit', function (&$layer) {
    if (empty($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) {
        $r = null;
        Crumb::set($l, 'crumb', $name);
        return $r;
    });
}, 'crumb');
Event::handler('Layer.oninit', function (&$layer) {
    if (empty($layer['childs'])) {
        return;
    }
    foreach ($layer['childs'] as $key => &$v) {
        Each::exec($v, function &(&$l) use($key) {
            $r = null;
            if (!empty($l['crumb'])) {
                return $r;
            }
            Crumb::set($l, 'crumb', $key);
            return $r;
Exemple #4
0
     $ans['news'] = $news;
     Each::fora($ans['news'], function &(&$n) use($list, &$ans) {
         $n['value'] = Load::json_decode($n['value'], true);
         $n['name'] = Sequence::right($n['name']);
         $r = Each::exec($list, function &($item) use(&$n, &$ans) {
             //Устанавливаемое значение ищим в новости
             $r = null;
             //найдено совпадение новости с устанавливаемым значением.. новость удаляем
             $a = Sequence::contain($item['name'], $n['name']);
             if ($a || $a == array()) {
                 $r = true;
                 return $r;
                 //news Длиннее... и часть новости изменена в устанавливаемом значение
             }
             $ans['a'] = $a;
             //Новость ищим в устанавливаемом значение
             $right = Sequence::contain($n['name'], $item['name']);
             if ($right) {
                 $n['value'] = Sequence::set($n['value'], $right, $item['value']);
                 //Новость осталась но она включает устанавливаемые данные
             }
             return $r;
         });
         if ($r) {
             $del = new Fix('del');
             return $del;
         }
         $r = null;
         return $r;
     });
 }
Exemple #5
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 срабатывают постоянно, так как нельзя поставить отметку о том что обработчик сохранён
             $r = null;
             return $r;
         });
         $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;
 }