Exemple #1
0
if (sizeof($preview['images']) != 1) {
    return Ans::err($ans, 'Cant read images test.docx');
}
if (mb_strlen($preview['preview']) != 119) {
    return Ans::err($ans, 'Cant read test.docx preview ' . mb_strlen($preview['preview']));
}
$name = 'test.tpl';
$preview = Mht::preview('-test-akiyatkin/resources/' . $name);
if (sizeof($preview) != 12) {
    return Ans::err($ans, 'Cant read preview ' . $name . ' ' . sizeof($preview));
}
if (sizeof($preview['links']) != 1) {
    return Ans::err($ans, 'Cant read links ' . $name . ' ' . sizeof($preview['links']));
}
if (sizeof($preview['images']) != 2) {
    return Ans::err($ans, 'Cant read images ' . $name . ' ' . sizeof($preview['images']));
}
if (mb_strlen($preview['preview']) != 521) {
    return Ans::err($ans, 'Cant read ' . $name . ' preview ' . strlen($preview['preview']));
}
$name = 'test.tpl';
$text = Mht::get('-test-akiyatkin/resources/' . $name);
if (mb_strlen($text) != 1935) {
    return Ans::err($ans, 'Cant read ' . $name . ' ' . strlen($text));
}
$name = 'test.html';
$text = Mht::get('-test-akiyatkin/resources/' . $name);
if (strlen($text) != 1073) {
    return Ans::err($ans, 'Cant read ' . $name . ' ' . strlen($text));
}
return Ans::ret($ans, 'tpl, mht, docx read ok!');
Exemple #2
0
<?php

use infrajs\path\Path;
use infrajs\ans\Ans;
use infrajs\config\search\Search;
if (!is_file('vendor/autoload.php')) {
    chdir('../../../');
    require_once 'vendor/autoload.php';
}
Search::init();
$ans = array();
$ans['search'] = Path::$conf['search'];
if (sizeof(Path::$conf['search']) == 1 && is_dir('vendor/ded/')) {
    //$ans['class']='bg-warning';
    return Ans::err($ans, 'Только одна папка поиска - ' . print_r(Path::$conf['search'], true) . ', такое может быть ещё для пустого проекта. Как минимум должен быть найден vendor/ded c domready');
}
return Ans::ret($ans);
Exemple #3
0
<?php

namespace infrajs\yml;

use infrajs\path\Path;
use infrajs\ans\Ans;
if (!is_file('vendor/autoload.php')) {
    chdir('../../../../');
    require_once 'vendor/autoload.php';
}
$ans = [];
if (!is_dir('data/')) {
    return Ans::err($ans, 'Папки data нет');
}
if (!is_file('data/yml.xlsx')) {
    return Ans::err($ans, 'Файла excel нет');
}
$src = '~yml.xlsx';
if (!Path::theme($src)) {
    return Ans::err($ans, 'Файл не найден.' . $src);
}
return Ans::ret($ans);
$ans = array();
$ans['title'] = 'Проверка ключей событий';
$test = '';
Event::handler('ontestkeys', function () use(&$test) {
    $test .= 3;
}, 'some:test');
Event::handler('ontestkeys', function () use(&$test) {
    $test .= 1;
}, 'test');
Event::handler('ontestkeys', function () use(&$test) {
    $test .= 2;
}, 'test');
Event::fire('ontestkeys');
if ($test != '123') {
    return Ans::err($ans, 'Группа событий не сработало в нужном порядке ' . $test);
}
$test = '';
Event::handler('oh.ontestkeys', function () use(&$test) {
    $test .= 2;
});
Event::handler('oh.ontestkeys', function () use(&$test) {
    $test .= 3;
}, 'test');
Event::handler('oh.ontestkeys', function () use(&$test) {
    $test .= 1;
}, 'oh');
Event::fire('oh.ontestkeys');
if ($test != '123') {
    return Ans::err($ans, 'Имя класса - ключ по умаолчанию ' . $test);
}
return Ans::ret($ans);
Exemple #5
0
use infrajs\excel\Xlsx;
use infrajs\router\Router;
use infrajs\ans\Ans;
if (!is_file('vendor/autoload.php')) {
    chdir('../../../');
    require_once 'vendor/autoload.php';
    Router::init();
    //Требуется автоматическая установка
}
$ans = array();
//Три уровня разбора данных
//1 Минимум требований к структуре Excel документа, данные "как есть"
$data = Xlsx::parse('vendor/infrajs/excel/test.xlsx');
if (sizeof($data) != 22) {
    return Ans::err($ans, 'Некорректный результат Xlsx::parse ' . sizeof($data));
}
//2 Простая структура - Распознаются заголовки таблицы, описание таблицы, структура групп. Можно применять Xlsx::runPoss и Xlsx::runGroups
$data = Xlsx::get('vendor/infrajs/excel/test.xlsx');
if (sizeof($data) != 7) {
    return Ans::err($ans, 'Некорректный результат Xlsx::get ' . sizeof($data));
}
//3 Оптимизировання структура. Обязательна колонка Артикул, объединение групп. Большой список опций вторым аргументом
$data = Xlsx::init('vendor/infrajs/excel/test.xlsx');
/*echo count($data);
echo '<pre>';
print_r($data);
exit;*/
if (sizeof($data['childs']) != 1) {
    return Ans::err($ans, 'Некорректный результат Xlsx::init ' . sizeof($data));
}
return Ans::ret($ans);
namespace infrajs\controller;

use infrajs\view\View;
use infrajs\ans\Ans;
use infrajs\path\Path;
use infrajs\config\Config;
use infrajs\event\Event;
if (!is_file('vendor/autoload.php')) {
    chdir('../../../../');
    require_once 'vendor/autoload.php';
}
$ans = array();
$ans['title'] = 'Проверка функции Controller::check';
View::html('<div id="oh"></div>', true);
Config::get('controller');
//Нужно инициализировать Crumb с Контроллером, crumb может работать самостоятельно.
Crumb::init();
$layer = array('tpl' => array('хой<div id="test"></div>'), 'div' => 'oh');
$html = Controller::check($layer);
if ($html != '<div id="oh">хой<div id="test"></div></div>') {
    return Ans::err($ans, 'Ошибка');
}
$layer = array('tpl' => array('опа'), 'div' => 'test');
$html = Controller::check($layer);
if ($html != '<div id="oh">хой<div id="test">опа</div></div>') {
    return Ans::err($ans, 'Ошибка ' . $html);
}
Layer::$start_id = 1;
Layer::$ids = array();
View::html('', true);
return Ans::ret($ans, 'Работает две генерации');
Exemple #7
0
namespace infrajs\contacts;

use infrajs\router\Router;
use infrajs\ans\Ans;
use infrajs\config\Config;
use infrajs\cache\Cache;
if (!is_file('vendor/autoload.php')) {
    chdir('../../../');
    //Согласно фактическому расположению файла
    require_once 'vendor/autoload.php';
    Router::init();
}
$conf = Config::get('contacts');
if (!$conf['yaCounter']) {
    $ans['class'] = 'bg-warning';
    $yc = 'Не указан счётчик Яндекс.Метрики с целью contacts. Config.contacts.yaCounter';
} else {
    $yc = 'Яндекс.Метрика указана';
}
if ($conf['reCAPTCHA']) {
    if (empty($conf['reCAPTCHA_secret'])) {
        return Ans::err($ans, 'Для reCAPTCHA не указан secret.' . $yc);
    }
    if (empty($conf['reCAPTCHA_sitekey'])) {
        return Ans::err($ans, 'Для reCAPTCHA не указан sitekey.' . $yc);
    }
} else {
    $ans['class'] = 'bg-warning';
    return Ans::ret($ans, '<a href="https://www.google.com/recaptcha/intro/index.html">reCAPTCHA</a> отключена.' . $yc);
}
return Ans::ret($ans, $yc);
Exemple #8
0
    if ($el == 4) {
        return new Fix('del');
    }
    //пробовал передавать не new infra_Fix, а просто infra_Fix массив удалялся полностью, ну или просто функция неправильно срабатывала.
});
if ($res !== null) {
    return Ans::err($ans, 'Странный результат');
}
if ($count3 != $len) {
    return Ans::err($ans, 'Неожиданное количество выполненией');
}
if ($ar3[3] == 4) {
    return Ans::err($ans, 'Не работает удаление');
}
//Протестировать back
$ar = array(1, 2, 3, 4, 5, 6);
$count = 0;
$res = Each::forr($ar, function ($el) use(&$count) {
    return new Fix('del', false);
}, true);
if (isset($ar[5])) {
    return Ans::err($ans, 'Не работает back');
}
$ar = array(1, 2, 3, 4, 5, 6);
$res = Each::forr($ar, function ($el) {
    return $el;
}, true);
if ($res != 6) {
    return Ans::err($ans, 'Не работает back');
}
return Ans::ret($ans, 'Всё ок');
Exemple #9
0
use infrajs\load\Load;
use infrajs\config\Config;
use infrajs\access\Access;
if (!is_file('vendor/autoload.php')) {
    chdir('../../../');
    require_once 'vendor/autoload.php';
    Router::init();
}
$ans = array();
$osrc = Ans::GET('src');
if (!$osrc) {
    return Ans::err($ans, 'Для работы необходимо передать параметр ?src= до папки с иллюстрациями: ' . $osrc);
}
$src = Path::theme($osrc);
if (!$src) {
    return Ans::err($ans, 'Неправильный путь до папки с иллюстрациями: ' . $osrc);
}
$list = Access::cache(__FILE__, function ($src) {
    $list = array();
    array_map(function ($file) use(&$list, $src) {
        if ($file[0] == '.') {
            return;
        }
        $fdata = Load::nameInfo($file);
        if (!in_array($fdata['ext'], array('jpg', 'jpeg', 'png'))) {
            return;
        }
        $list[] = $src . Path::toutf($file);
    }, scandir($src));
    return $list;
}, array($src));
Exemple #10
0
<?php

use infrajs\view\View;
use infrajs\ans\Ans;
use infrajs\load\Load;
use infrajs\config\Config;
$ans = array();
if (isset($_GET['seo'])) {
    if (empty($_GET['link'])) {
        return Ans::err($ans, 'Wrong parameters');
    }
    $link = $_GET['link'];
    $link = $link . '/find';
    $ans['external'] = '-catalog/seo.json';
    $ans['canonical'] = View::getPath() . $link;
    return Ans::ans($ans);
}
$ans = Load::loadJSON('-catalog/search.php');
$ans['breadcrumbs'] = array();
$conf = Config::get('catalog');
$ans['breadcrumbs'][] = array('href' => '', 'title' => $conf['title']);
$menu = Load::loadJSON('-catalog/menu.json');
$ans['breadcrumbs'][] = array('active' => true, 'href' => 'find', 'title' => $menu['find']['title']);
$ans['menu'] = $menu;
return Ans::ret($ans);
Exemple #11
0
<?php

namespace infrajs\autoedit;

use infrajs\load\Load;
use infrajs\access\Access;
use infrajs\ans\Ans;
if (!is_file('vendor/autoload.php')) {
    chdir('../../../../');
    require_once 'vendor/autoload.php';
}
$ans = array('title' => 'Проверка обработчиков каталога - позиция, группа, производители, рубрики и тп.');
$data = Load::loadJSON('-catalog/rubrics.php');
if (!$data) {
    return Ans::err($ans, 'Ошибка rubrics.php');
}
$data = Load::loadJSON('-catalog/producers.php');
if (!$data) {
    return Ans::err($ans, 'Ошибка producers.php');
}
$data = Load::loadJSON('-catalog/stat.php');
if (!$data) {
    return Ans::err($ans, 'Ошибка stat.php');
}
return Ans::ret($ans);
Exemple #12
0
    require_once 'vendor/autoload.php';
    Router::init();
}
$ans = array();
$lim = Ans::GET('lim', 'string', '0,100');
$p = explode(',', $lim);
if (sizeof($p) != 2) {
    return Ans::err($ans, 'Некорректный параметр lim');
}
list($start, $count) = $p;
$dir = Ans::GET('src', 'string');
if (!$dir) {
    return Ans::err($ans, 'Укажите обязательный параметр src');
}
if (!Path::isNest('~', $dir)) {
    return Ans::err($ans, 'Указан небезопасный путь src');
}
$order = Ans::GET('order', ['descending', 'ascending']);
$ans['order'] = $order;
$list = Access::cache(__FILE__, function ($dir, $order) {
    $list = array();
    array_map(function ($file) use(&$list, $dir) {
        if ($file[0] == '.') {
            return;
        }
        $file = Path::toutf($file);
        if (!Path::theme($dir . $file)) {
            return;
        }
        $fd = Load::nameInfo($file);
        if (!in_array($fd['ext'], array('jpg', 'png'))) {
Exemple #13
0
    chdir('../../../');
    //Согласно фактическому расположению файла
    require_once 'vendor/autoload.php';
}
ini_set("display_errors", 1);
$from = 'noreplay@' . $_SERVER['HTTP_HOST'];
$headers = 'From: ' . $from . "\r\n";
$headers .= "Content-type: text/plain; charset=UTF-8\r\n";
$headers .= 'Reply-To: aky@list.ru' . "\r\n";
//echo 'Нативная проверка<br>';
//$r=mail('*****@*****.**','Проверка с сервера '.$_SERVER['HTTP_HOST'],'Текст проверочного сообщения',$headers);
//var_dump($r);
//return;//нельзя зачастую лимит стоит сколько писем за раз можно отправлять
//echo '<br>Сложная проверка<br>';
$conf = Access::$conf['admin'];
$ans = array();
if (!$conf['support']) {
    return Ans::err($ans, 'У администратора не указан email support');
}
$body = Path::theme('-mail/update.tpl');
$body = file_get_contents($body);
$body = str_replace(array("{host}", "{date}"), array($_SERVER['HTTP_HOST'], date('j.m.Y')), $body);
$subject = 'Выполнено обновление ' . $_SERVER['HTTP_HOST'];
$email_from = 'noreplay@' . $_SERVER['HTTP_HOST'];
$r = Mail::toSupport($subject, $email_from, $body);
if (!$r) {
    error_log('Не удалось отправить тестовое письмо.');
    if (Access::debug() && !Load::isphp()) {
        echo '<pre>Не удалось отправить <a href="/-mail/update.php">тестовое письмо</a>.</pre>' . "\n";
    }
}
Exemple #14
0
use infrajs\ans\Ans;
use infrajs\load\Load;
if (!is_file('vendor/autoload.php')) {
    chdir('../../../');
    require_once 'vendor/autoload.php';
    Config::init();
}
$ans = array('title' => 'Запуск шаблонизатора');
$tpl = '{infra.config(name).main}';
$data = array('name' => 'rubrics');
$html = Template::parse(array($tpl), $data);
if (!$html) {
    return Ans::err($ans, $tpl . ' возрващает пустую строку ' . $html);
}
$tpl = '{infra.config(:rubrics).main}';
$data = true;
$html = Template::parse(array($tpl), $data);
if (!$html) {
    return Ans::err($ans, $tpl . ' возрващает пустую строку ' . $html);
}
$conf = Config::get('rubrics');
$tpl = '{list::test}{test:}1{:date}{date:}{~date(:F,~true)}';
$data = Load::loadJSON('-rubrics/?type=' . $conf['main'] . '&list');
if (sizeof($data['list'])) {
    //Это если есть данные иначе тест этот не проводим
    $html = Template::parse(array($tpl), $data);
    if (!$html) {
        return Ans::err($ans, ' возрващает пустую строку ' . $html);
    }
}
return Ans::ret($ans);
namespace infrajs\controller;

use infrajs\config\Config;
use infrajs\path\Path;
use infrajs\view\View;
use infrajs\load\Load;
use infrajs\ans\Ans;
if (!is_file('vendor/autoload.php')) {
    chdir('../../../../');
    require_once 'vendor/autoload.php';
}
$ans = array();
$ans['title'] = 'check4';
$query = Crumb::$query;
Config::get('controller');
View::html('<div id="main1"></div><div id="main2"></div>', true);
$layers = Load::loadJSON('-test-akiyatkin/resources/check4.json');
Crumb::change('test');
Controller::check($layers);
$html = View::html();
preg_match_all('/x/', $html, $matches);
$count = sizeof($matches[0]);
$countneed = 2;
Crumb::change($query);
Layer::$start_id = 1;
Layer::$ids = array();
View::html('', true);
if ($count != $countneed) {
    return Ans::err($ans);
}
return Ans::ret($ans);
Exemple #16
0
<?php

use infrajs\load\Load;
use infrajs\router\Router;
use infrajs\ans\Ans;
if (!is_file('vendor/autoload.php')) {
    chdir('../../../');
    require_once 'vendor/autoload.php';
    Router::init();
}
$ans = array();
$data = Load::loadJSON('-teremok/teremok.php?src=-teremok/images/');
if (!$data || !$data['result']) {
    return Ans::err($ans, 'Ошибка нет данных');
}
return Ans::ret($ans, 'Данные есть, теремок должен работать');
Exemple #17
0
        echo 'В файле нет сохранённых данных, файл оригинальный';
    }
    echo '<pre>';
    print_r($info);
    return;
}
if ($src && (preg_match("/\\/\\./", $src) || mb_substr($src, 0, 1) == '.' && mb_substr($src, 1, 1) != '/')) {
    header('HTTP/1.1 403 Forbidden');
    return Ans::err($ans, 'Путь содержит запрещённые символы');
}
if (!$src) {
    $default = true;
    $src = Imager::noImage();
    if (!$src) {
        header('HTTP/1.0 404 Not Found');
        return Ans::err('Noimage Not found');
    }
}
if ($getorig) {
    Access::admin(true);
}
if (!is_null($ignoremark)) {
    Access::admin(true);
}
if ($getorig) {
    Access::admin(true);
}
$gray = isset($_GET['gray']);
$args = array($src, $ignoremark, $mark, $default, $getorig, $w, $h, $crop, $top, $gray);
$execute = false;
$cachesrc = Imager::$conf['cache'] . 'resize/' . Hash::make($args);
Exemple #18
0
    }
    $link = $_GET['link'];
    $link = $link . '/producers';
    $ans['external'] = '-catalog/seo.json';
    $ans['canonical'] = View::getPath() . $link;
    return Ans::ans($ans);
}
$fd = Catalog::initMark($ans);
if (isset($_GET['lim'])) {
    $lim = $_GET['lim'];
} else {
    $lim = '0,20';
}
$p = explode(',', $lim);
if (sizeof($p) != 2) {
    return Ans::err($ans, 'Is wrong paramter lim');
}
$start = (int) $p[0];
$count = (int) $p[1];
$args = array($start, $count);
$list = Catalog::cache('producers.php', function ($start, $count) {
    $ans = array();
    $data = Catalog::init();
    $prods = array();
    Xlsx::runPoss($data, function &(&$pos) use(&$prods) {
        if (empty($prods[$pos['producer']])) {
            $prods[$pos['producer']] = 0;
        }
        $prods[$pos['producer']]++;
        $r = null;
        return $r;
        }
    }
    if ($obj['id'] === 1) {
        return false;
    }
    $test .= $obj['id'];
});
$r = Event::fire('layer.ontest', $obj2);
if (!$r) {
    return Ans::err($ans, 'Событие анализирую объект возвращает true');
}
$r = Event::fire('layer.ontest', $obj1);
if ($r) {
    return Ans::err($ans, 'Событие анализирую объект возвращает false');
}
$r = Event::fire('layer.ontest', $obj3);
if (!$r) {
    return Ans::err($ans, 'Событие анализирую объект возвращает true');
}
$r = Event::fire('layer.ontest', $obj1);
if ($r) {
    return Ans::err($ans, 'Кэш. Событие анализирую объект возвращает false');
}
$r = Event::fire('layer.ontest', $obj3);
if (!$r) {
    return Ans::err($ans, 'Кэш. Событие анализирую объект возвращает true');
}
if ($test != '22133') {
    return Ans::err($ans, 'События должны кэшироваться ' . $test);
}
return Ans::ret($ans);
Exemple #20
0
<?php

use infrajs\access\Access;
use infrajs\event\Event;
use infrajs\ans\Ans;
use infrajs\path\Path;
use infrajs\each\Each;
use infrajs\config\Config;
if (!is_file('vendor/autoload.php')) {
    chdir('../../../../');
    require_once 'vendor/autoload.php';
}
$ans = array();
$ans['title'] = 'Проверка наличия папок';
$conf = Config::get();
if ($conf['mem']['type'] == 'fs') {
    $dirs = Config::get('path');
    if (!Path::theme($dirs['cache'])) {
        return Ans::err($ans, 'Нет папки ' . $dirs['cache']);
    }
    if (!Path::theme($dirs['data'])) {
        return Ans::err($ans, 'Нет папки ' . $dirs['data']);
    }
    return Ans::ret($ans, 'Обязательные папки есть');
} else {
    return Ans::ret($ans, 'Используется memcache. Папки не создаются.');
}
Exemple #21
0
<?php

namespace infrajs\mem;

use infrajs\mem\Mem;
use infrajs\ans\Ans;
use infrajs\config\Config;
if (!is_file('vendor/autoload.php')) {
    chdir('../../../../');
    require_once 'vendor/autoload.php';
}
$ans = array();
$ans['title'] = 'Проверка доступности сервера';
$conf = Mem::$conf;
if ($conf['type'] != 'mem') {
    $ans['class'] = "bg-warning";
    return Ans::ret($ans, 'memcache не используется config.mem.mem');
}
if (!class_exists('Memcache')) {
    return Ans::err($ans, 'Нет класса Memcache');
}
$mem = Mem::memcache();
if (!$mem) {
    return Ans::err($ans, 'Сервер не доступен');
}
Mem::set('test', true);
$val = Mem::get('test');
if (!$val) {
    return Ans::err($ans, 'Неудалось восстановить значение. Требуется F5');
}
return Ans::ret($ans, 'сервер доступен');
Exemple #22
0
<?php

namespace infrajs\excel;

use infrajs\access\Access;
use infrajs\ans\Ans;
use infrajs\config\Config;
Access::test(true);
$ans = array();
$data = Xlsx::init('-test-akiyatkin/resources/test.xlsx');
if (!$data) {
    return Ans::err($ans, 'Cant read test.xlsx');
}
$data = Xlsx::init('-test-akiyatkin/resources/test.csv');
if (!$data) {
    return Ans::err($ans, 'Cant read test.csv');
}
if (sizeof($data['childs']) != 1) {
    return Ans::err($ans, 'Cant read test.csv ' . sizeof($data['childs']));
}
$num = ini_get('mbstring.func_overload');
if ($num != 0) {
    $ans['class'] = 'bg-warning';
    return Ans::err($ans, 'mbstring.func_overload should be 0, not ' . $num);
} else {
    $data = Xlsx::get('-test-akiyatkin/resources/test.xls');
    if (sizeof($data['childs'][0]['data']) != 30) {
        return Ans::err($ans, 'Cant read test.xls ' . sizeof($data['childs'][0]['data']));
    }
}
return Ans::ret($ans, 'csv, xls, xlsx read ok!');
Exemple #23
0
} elseif ($type == 'takefile') {
    if ($submit) {
        $take = (bool) $_GET['take'];
        $ans['take'] = $take;
        $file = autoedit_theme($id);
        $file = Path::toutf($file);
        if (!$file) {
            $ans['noaction'] = true;
            //Собственно всё осталось как было
        } else {
            $takepath = autoedit_takepath($file);
            if (!$take && is_file($takepath)) {
                $r = @unlink($takepath);
                if (!$r) {
                    return Ans::err($ans, 'Неудалось отпустить файл');
                }
            } elseif ($take && !is_file($takepath)) {
                //Повторно захватывать не будем
                $save = array('path' => $id, 'date' => time(), 'ip' => $_SERVER['REMOTE_ADDR'], 'browser' => $_SERVER['HTTP_USER_AGENT']);
                $r = file_put_contents($takepath, Load::json_encode($save));
                if (!$r) {
                    return Ans::err('Неудалось захватить файл');
                }
            } else {
                $ans['noaction'] = true;
                //Собственно всё осталось как было
            }
        }
    }
}
return Ans::ret($ans);
$a = 1;
$b =& $a;
$a = 2;
if ($b !== 2) {
    return Ans::err($ans, 'Амперсанд глючит в простой ситуации');
}
function &funcamp(&$t)
{
    return $t;
}
$c = 5;
$newc =& funcamp($c);
$c = 6;
if ($newc !== 6) {
    return Ans::err($ans, 'Амперсанд глючит в функции');
}
$megac =& call_user_func('funcamp', $c);
$c = 7;
if ($megac === 7) {
    return Ans::err($ans, 'Амперсанд в call_user_func вдруг заработал, это очень странно!');
}
$funcamp2 = function &(&$arg) {
    return $arg;
};
$d = 5;
$superc =& call_user_func_array($funcamp2, array(&$d));
$d = 8;
if ($superc == 8) {
    return Ans::err($ans, 'Амперсанд в call_user_func_array вдруг работает! Это неожиданно!');
}
return Ans::ret($ans, 'Ссылки работают, ну или ведут себя предстказуемо.');
Exemple #25
0
    $_SESSION['submit_time'] = time();
}
$ans['testmail'] = $mdata['testmail'];
if ($maildir) {
    $folder = Path::theme($maildir);
    $name = Path::tofs(Path::encode($data['name']));
    $fname = date('Y F j H-i') . ' ' . $name . ' ' . time();
    if ($conf['file'] && $file) {
        $src = $folder . $fname . '.' . Path::tofs($file['name']);
        $r = move_uploaded_file($file['tmp_name'], $src);
        if (!$r) {
            return Ans::err($ans, 'Неудалось загрузить файл');
        }
        $data['file'] = Path::toutf(Path::pretty($src));
    }
}
$body = Template::parse('-contacts/mail.tpl', $data);
if (!$body) {
    $body = 'Ошибка. Не найден шаблон письма!';
}
if ($maildir) {
    file_put_contents($folder . $fname . '.txt', print_r($body, true) . "\n\n\n\n\n" . print_r($mdata, true));
}
if (!isset($mdata['email_from'])) {
    return Ans::err($ans, 'Ошибка с адресом получателя!');
}
$r = Mail::toAdmin($mdata['subject'], $mdata['email_from'], $body, $mdata['testmail']);
if (!$r) {
    return Ans::err($ans, "Неудалось отправить письмо из-за ошибки на сервере!");
}
return Ans::ret($ans, "Письмо отправлено!<blockquote>" . $data['text'] . "</blockquote>");
Exemple #26
0
use infrajs\session\Session;
use infrajs\sequence\Sequence;
use infrajs\router\Router;
if (!is_file('vendor/autoload.php')) {
    chdir(explode('vendor/', __DIR__)[0]);
    require_once 'vendor/autoload.php';
    Router::init();
}
$ans = array();
try {
    $db =& Db::pdo();
} catch (Exception $e) {
    $db = false;
}
if (!$db) {
    return Ans::err($ans, 'Нет соединения с базой данных. Сессия только в браузере.');
}
$session_id = View::getCookie('infra_session_id');
$session_pass = View::getCookie('infra_session_pass');
$timelast = isset($_REQUEST['time']) ? (int) $_REQUEST['time'] : View::getCookie('infra_session_time');
if (!$timelast) {
    $timelast = 0;
}
$ans['timelast'] = $timelast;
$time = time();
//время синхронизации и время записываемых данных, устанавливается в cookie
$ans['time'] = $time;
$list = Load::json_decode($_POST['list']);
Each::exec($list, function &(&$li) use($time) {
    $li['time'] = $time;
    //У каждого сета добавляем его момет, что бы он начал попадат в выборку по времени в своём периуде
Exemple #27
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);
}
if ($obj->parent !== $parent) {
    return Ans::err($ans, 'Некорректно определён parent');
}
Crumb::change('test/hi');
$obj = Crumb::getInstance('test');
if (!$obj->is) {
    return Ans::err($ans, 'Не применилась крошка на втором уровне');
}
$root = Crumb::getInstance();
Crumb::change('');
$crumb = Crumb::getInstance('');
$f = $crumb->query;
Crumb::change('test');
$s =& Crumb::getInstance('some');
$s2 =& Crumb::getInstance('some');
$r = Each::isEqual($s, $s2);
$s = Crumb::$childs;
$r2 = Each::isEqual($s[''], Crumb::getInstance());
$r = $r && $r2;
$crumb = Crumb::getInstance('test');
$crumb2 = Crumb::getInstance('test2');
if (!($f == null && $r && !is_null($crumb->value) && is_null($crumb2->value))) {
    return Ans::err($ans, 'Изменения крошек');
}
Crumb::change('test/test');
$inst = Crumb::getInstance('test/test/test');
Crumb::change($query);
Layer::$start_id = 1;
Layer::$ids = array();
return Ans::ret($ans);
<?php

namespace infrajs\controller;

use infrajs\controller\Controller;
use infrajs\controller\Run;
use infrajs\view\View;
use infrajs\ans\Ans;
use infrajs\path\Path;
if (!is_file('vendor/autoload.php')) {
    chdir('../../../../');
    require_once 'vendor/autoload.php';
}
$ans = array();
$ans['title'] = 'isEqual';
$l = array('tpl' => 'asdf', 'test' => 'bad');
$layers = array(&$l);
$msg = 'Maybe good';
$layer =& Run::exec($layers, function &(&$layer) use($msg) {
    $layer['test'] = $msg;
    return $layer;
});
$l['test'] = 'Good';
if ($l['test'] != $layer['test']) {
    return Ans::err($ans, 'err');
}
return Ans::ret($ans, 'ret');
Exemple #30
0
//if($arr!=false)return Ans::err($ans,'функция infra_isAssoc вернула неверный результат, переданный массив является индексным');
//Проверить, являются ли переданые переменные ссылкой друг на друга
$a = 15;
// создаем переменную a
$b = $a;
// записываем копию переменной a в переменную b
$equal = Each::isEqual($a, $b);
if ($equal !== false) {
    return Ans::err($ans, 'Функция infra_isEqual работает неверно $b не является ссылкой на $a');
}
$b =& $a;
// делаем b ссылкой на a
$equal = Each::isEqual($a, $b);
if ($equal !== true) {
    return Ans::err($ans, 'Функция infra_isEqual работает неверно $b является ссылкой на $a');
}
$a = array(1, 2, 4, 7);
// интересно получается, так как раннее мы $b=&$a то уже здесь, даже если присваивать массивы этим переменным, то всё равно при изменении $b всё записывается в $a
$b = array(1, 2, 4, 11);
$equal = Each::isEqual($a, $b);
if ($equal !== true) {
    return Ans::err($ans, 'Функция infra_isEqual работает неверно $b является ссылкой на $a');
}
$b = array(1, 2, 4, 15);
$c = array(1, 2, 4, 11);
//print_r($a);
$equal = Each::isEqual($b, $c);
if ($equal !== false) {
    return Ans::err($ans, 'Функция infra_isEqual работает не правильно, массив $с не является ссылкой на $b');
}
return Ans::ret($ans, 'Всё ок');