Example #1
0
 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);
 }
Example #2
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;
     });
 }
Example #3
0
 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;
 }
Example #4
0
<?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);
Example #5
0
    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;
Example #6
0
 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);
 }
Example #7
0
<?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);
});