public function check(&$layer) { if (!empty($layer['seojsontpl'])) { $layer['seojson'] = Template::parse(array($layer['seojsontpl']), $layer); } if (empty($layer['seojson'])) { return; } $item = self::load($layer['seojson']); if (!$item) { return; } $html = View::html(); if (!empty($item['image_src'])) { self::meta($html, $item, 'link', 'image_src'); self::meta($html, $item, 'property', 'og:image', $item['image_src']); self::meta($html, $item, 'name', 'twitter:image', $item['image_src']); //self::meta($html, $item, 'itemprop', 'image', $item['image_src']); } if (!empty($item['canonical'])) { self::meta($html, $item, 'link', 'canonical'); self::meta($html, $item, 'name', 'twitter:site', $item['canonical']); self::meta($html, $item, 'property', 'og:url', $item['canonical']); //self::meta($html, $item, 'property', 'business:contact_data:website', $item['canonical']); } if (!empty($item['description'])) { self::meta($html, $item, 'name', 'description'); self::meta($html, $item, 'property', 'og:description', $item['description']); self::meta($html, $item, 'name', 'twitter:description', $item['description']); } self::meta($html, $item, 'name', 'keywords'); if (!empty($item['title'])) { self::meta($html, $item, 'title', 'title'); self::meta($html, $item, 'property', 'og:title', $item['title']); self::meta($html, $item, 'name', 'twitter:title', $item['title']); } if (!empty($item['site_name'])) { self::meta($html, $item, 'property', 'site_name'); self::meta($html, $item, 'itemprop', 'name', $item['site_name']); self::meta($html, $item, 'property', 'og:site_name', $item['site_name']); } if (!empty($item['properties'])) { foreach ($item['properties'] as $k => $v) { self::meta($html, $item['properties'], 'property', $k); } } if (!empty($item['names'])) { foreach ($item['names'] as $k => $v) { self::meta($html, $item['names'], 'name', $k); } } if (!empty($item['itemprops'])) { foreach ($item['itemprops'] as $k => $v) { self::meta($html, $item['itemprops'], 'itemprop', $k); } } View::html($html, true); }
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; }); }
public static function check(&$layers) { static::$layers =& $layers; //Пробежка по слоям Event::tik('Infrajs'); Event::tik('layer'); Event::fire('Infrajs.oninit'); //сборка событий Run::exec(static::$layers, function &(&$layer, &$parent) { //Запускается у всех слоёв в работе $r = null; if ($parent) { $layer['parent'] =& $parent; } Event::fire('layer.oninit', $layer); if (!Event::fire('layer.ischeck', $layer)) { return $r; } Event::fire('layer.oncheck', $layer); return $r; }); //разрыв нужен для того чтобы можно было наперёд определить показывается слой или нет. oncheck у всех. а потом по порядку. Event::fire('oncheck'); //момент когда доступны слои по getUnickLayer Run::exec(static::$layers, function &(&$layer) { //С чего вдруг oncheck у всех слоёв.. надо только у активных $r = null; if (Event::fire('layer.isshow', $layer)) { //Событие в котором вставляется html Event::fire('layer.onshow', $layer); //при клике делается отметка в конфиге слоя и слой парсится... в oncheck будут подстановки tpl и isRest вернёт false //onchange показанный слой не реагирует на изменение адресной строки, нельзя привязывать динамику интерфейса к адресной строке, только черещ перепарсивание } return $r; }); //у родительского слоя showed будет реальное а не старое Event::fire('Infrajs.onshow'); //loader, setA, seo добавить в html, можно зациклить check $html = View::html(); //View::html('',true); return $html; }
<?php namespace infrajs\controller; use infrajs\ans\Ans; use infrajs\path\Path; use infrajs\view\View; use infrajs\load\Load; use infrajs\router\Router; if (!is_file('vendor/autoload.php')) { chdir('../../../../'); require_once 'vendor/autoload.php'; Router::init(); } $query = Crumb::$href; $ans = array('title' => 'Проверки контроллера'); $composer = Load::loadJSON('-infrajs/composer.json'); $require = $composer['require']; foreach ($require as $path => $ver) { $p = explode('/', $path); $r = Path::reqif('-' . $p[1] . '/infra.php'); } $layer = array('data' => 1, 'tpl' => array('qewr{data}')); Crumb::change(''); $html = Controller::check($layer); if ($html != 'qewr1') { return Ans::err($ans, 'Результат неожиданный ' . $html); } Crumb::change($query); View::html('', true); return Ans::ret($ans);
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'); Run::runAddList('layers'); Layer::parsedAdd('is'); Event::handler('Layer.isshow', function (&$layer) { $prop = 'is'; $proptpl = $prop . 'tpl'; if (isset($layer[$proptpl])) { $p = $layer[$proptpl]; $p = Template::parse(array($p), $layer); $layer[$prop] = $p;
public static function check(&$layer) { if (!empty($layer['seojsontpl'])) { $layer['seojson'] = Template::parse(array($layer['seojsontpl']), $layer); } if (empty($layer['seojson'])) { return; } $item = self::load($layer['seojson']); if (!$item) { return; } $html = View::html(); if (!empty($item['image_src'])) { self::meta($html, $item, 'link', 'image_src'); self::meta($html, $item, 'property', 'og:image', $item['image_src']); self::meta($html, $item, 'name', 'twitter:image', $item['image_src']); //self::meta($html, $item, 'itemprop', 'image', $item['image_src']); } if (empty($item['canonical'])) { $query = preg_replace('/^\\//', '', $_SERVER['REQUEST_URI']); $item['canonical'] = View::getPath() . $query; } if (!empty($item['canonical'])) { self::meta($html, $item, 'link', 'canonical'); self::meta($html, $item, 'name', 'twitter:site', $item['canonical']); self::meta($html, $item, 'property', 'og:url', $item['canonical']); //self::meta($html, $item, 'property', 'business:contact_data:website', $item['canonical']); } if (!empty($item['description'])) { self::meta($html, $item, 'name', 'description'); self::meta($html, $item, 'property', 'og:description', $item['description']); self::meta($html, $item, 'name', 'twitter:description', $item['description']); } self::meta($html, $item, 'name', 'keywords'); if (!empty($item['title'])) { self::meta($html, $item, 'title', 'title'); self::meta($html, $item, 'property', 'og:title', $item['title']); self::meta($html, $item, 'name', 'twitter:title', $item['title']); } if (!empty($item['site_name'])) { self::meta($html, $item, 'property', 'site_name'); self::meta($html, $item, 'itemprop', 'name', $item['site_name']); self::meta($html, $item, 'property', 'og:site_name', $item['site_name']); } if (empty($item['properties']['og:type'])) { self::meta($html, $item, 'property', 'og:type', 'website'); } if (!empty($item['properties'])) { foreach ($item['properties'] as $k => $v) { self::meta($html, $item['properties'], 'property', $k, $v); } } if (!empty($item['names'])) { foreach ($item['names'] as $k => $v) { self::meta($html, $item['names'], 'name', $k, $v); } } if (!empty($item['itemprops'])) { foreach ($item['itemprops'] as $k => $v) { self::meta($html, $item['itemprops'], 'itemprop', $k, $v); } } View::html($html, true); }
<?php use infrajs\event\Event; use infrajs\view\View; use infrajs\access\Access; use WyriHaximus\HtmlCompress; Event::one('Controller.onshow', function () { if (Access::debug()) { return; } $html = View::html(); $parser = HtmlCompress\Factory::construct(); $html = $parser->compress($html); View::html($html, true); });