Example #1
0
function yml_init()
{
    infra_require('*cart/catalog.inc.php');
    $data = cat_init();
    xls_runGroups($data, function (&$group, $i, &$parent) {
        $group['data'] = array_filter($group['data'], function (&$pos) {
            //Убираем позиции у которых не указана цена
            if ($pos['Синхронизация'] != 'Да') {
                return false;
            }
            if (!$pos['Цена']) {
                return false;
            }
            return true;
        });
        $group['data'] = array_values($group['data']);
    });
    xls_runGroups($data, function (&$group, $i, &$parent) {
        if ($group['childs']) {
            $group['childs'] = array_filter($group['childs'], function (&$g) {
                if (!$g['data'] && !$g['childs']) {
                    return false;
                }
                return true;
            });
            $group['childs'] = array_values($group['childs']);
        }
    }, array(), true);
    xls_runPoss($data, function (&$pos) {
        $conf = infra_config();
        xls_preparePosFiles($pos, $conf['cart']['dir'], array('Производитель', 'article'));
        foreach ($pos['images'] as $k => $v) {
            $src = $pos['images'][$k];
            $p = explode('/', $src);
            foreach ($p as $i => $n) {
                $p[$i] = urlencode($n);
                $p[$i] = preg_replace('/\\+/', '%20', $p[$i]);
            }
            $pos['images'][$k] = implode('/', $p);
        }
    });
    return yml_parse($data);
}
Example #2
0
$gray = isset($_GET['gray']);
$args = array($src, $ignoremark, $mark, $default, $getorig, $w, $h, $crop, $top, $gray);
$data = infra_cache(array($isrc), 'imager.php', function ($src, $ignoremark, $mark, $default, $getorig, $w, $h, $crop, $top, $gray, $re) use($isrc) {
    $p1 = infra_srcinfo($isrc);
    //Нужна папка со звёздочкой
    $p = infra_srcinfo($src);
    if (in_array($p['ext'], array('docx', 'mht'))) {
        die("docx, mht TODO");
        /*
        	TODO: Смотрим подключён ли плагин files для того чтобы достать картинку и файла
        */
        if (!infra_theme('*files/files.inc.php')) {
            $default = true;
            $src = infra_theme('*imager/noimage.png');
        } else {
            infra_require('*files/files.inc.php');
            if ($re) {
                $re = '&re';
            } else {
                $re = '';
            }
            if ($p['ext'] == 'docx') {
                $p = files_get(infra_toutf($p1['folder']), infra_toutf($p['id']));
                if (!$p['images'][0]) {
                    $default = true;
                    $src = infra_theme('*imager/noimage.png');
                    //header('HTTP/1.1 404 Not Found');
                    //return;
                } else {
                    $src = $p['images'][0]['src'];
                }
Example #3
0
<?php

namespace itlife\user;

infra_require('*session/session.php');
class User
{
    public static function is($group = false)
    {
        $email = infra_session_getEmail();
        if (!$email) {
            return false;
        }
        $verify = infra_session_getVerify();
        if (!$verify) {
            return false;
        }
        $conf = infra_config();
        infra_cache_no();
        if (!$group) {
            return true;
        }
        if (empty($conf['user'][$group])) {
            return false;
        }
        return in_array($email, $conf['user'][$group]);
    }
    public static function isAdmin()
    {
        return self::is('admin');
    }
Example #4
0
<?php

infra_require('*seo/seo.inc.php');
$type = infra_toutf(@$_REQUEST['type']);
$id = infra_toutf(@$_REQUEST['id']);
$submit = (bool) @$_REQUEST['submit'];
$layers = infra_toutf(urldecode(@$_REQUEST['layers']));
@set_time_limit(300);
//может быть отключена на хостинге
$ans = array('result' => 0, 'id' => $id, 'type' => $type);
if ($type == 'item') {
    $ans = infra_admin_cache('seoitemopt', function ($id) {
        $ans['result'] = 1;
        $p = explode('|', $id);
        $name = array_shift($p);
        $link = implode('|', $p);
        $seo = infrajs_seo_getSeo($name);
        if (isset($seo['all'][$link])) {
            $item = $seo['all'][$link];
        } else {
            $item = array();
        }
        $ans['item'] = $item;
        return $ans;
    }, array($id));
    return infra_echo($ans);
} else {
    if ($type == 'sitemap') {
        $html = infra_admin_cache('sitemap', function () {
            $data = array();
            $all = array();
Example #5
0
	//Создаём объект с вложенными группами root->book->sheet данные на страницах ещё не изменялись, 
	//но сгрупировались
	//descr - всё что до head
	//head - первая строка в которой больше 2х заполненых ячеек
	//data - всё что после head
	xls_processDescr($data);//descr приводится к виду ключ значение
	xls_run($data,function($group){//Бежим по всем группам
		unset($group['parent']);//Удалили рекурсивное свойсто parent
		for($i=0,$l=sizeof($group['data']);$i<$l;$i++){
			$pos=$group['data'][$i];
			unset($pos['group']);//Удалили рекурсивное свойсто group
		}
	});
	$data=xls_init(path,conf)
*/
infra_require('*infra/ext/seq.php');
/*var pathlib=require('path');
var util=require('util');
var csv=require('node-csv');
var crypto=require('crypto');
var fs=require('fs');
csv=csv.createParser(',','"','"');*/
function &xls_parseTable($path, $list)
{
    $data = xls_parse($path, $list);
}
function &xls_parseAll($path)
{
    $data = infra_cache(array($path), 'xls_parseAll', function &($path) {
        $file = infra_theme($path);
        $data = array();
Example #6
0
<?php

/*
Copyright 2008-2011 ITLife, Ltd. Togliatti, Samara Oblast, Russian Federation. http://itlife-studio.ru
*/
infra_require('*imager/imager.inc.php');
infra_admin(true);
if (!function_exists('runfolder')) {
    function runfolder($dir, $f = 1, $d = 0, $sub = false, $exts = false, &$filelist = array(), $pre = '')
    {
        if (is_dir($dir) && ($dh = opendir($dir))) {
            while (($file = readdir($dh)) !== false) {
                if ($file[0] == '.') {
                    continue;
                }
                if ($file == 'vendor') {
                    continue;
                }
                if ($file[0] == '~') {
                    continue;
                }
                $path = $dir . $file;
                if (is_file($path) && $exts) {
                    preg_match('/\\.(\\w{0,4})$/', $file, $math);
                    //Расширение при поиске не учитываем
                    $ext = strtolower($math[1]);
                    if (!in_array($ext, $exts)) {
                        continue;
                    }
                }
                //$count++;
Example #7
0
<?php

namespace itlife\catalog;

use itlife\files\Xlsx;
infra_require('*catalog/Extend.php');
class Catalog
{
    public static $md = array("count" => 10, "reverse" => false, "sort" => false, "producer" => array(), "group" => array(), "search" => false, "more" => array(), "cost" => array());
    public static function init()
    {
        return self::cache('cat_init', function () {
            $conf = infra_config();
            $columns = array_merge(array("Наименование", "Артикул", "Производитель", "Цена", "Описание"), $conf['catalog']['columns']);
            $data =& Xlsx::init($conf['catalog']['dir'], array('more' => true, 'Имя файла' => $conf['catalog']['filename'], 'Известные колонки' => $columns));
            Xlsx::runGroups($data, function (&$gr) {
                $gr['data'] = array_reverse($gr['data']);
                // Возвращает массив с элементами в обратном порядке
            });
            Extend::init($data);
            return $data;
        });
    }
    public static function getProducer($producer)
    {
        return Catalog::cache('getProducer', function &($producer) {
            $data = Catalog::init();
            $pos = Xlsx::runPoss($data, function &($pos) use($producer) {
                if ($pos['producer'] == $producer) {
                    return $pos;
                }