Пример #1
0
 public function istpl(&$layer)
 {
     $prop = 'is';
     $proptpl = $prop . 'tpl';
     if (!isset($layer[$proptpl])) {
         return;
     }
     $p = $layer[$proptpl];
     $p = infra_template_parse(array($p), $layer);
     $layer[$prop] = $p;
 }
Пример #2
0
 public static function init()
 {
     self::add('dataroot');
     self::add('tplroot');
     self::add('envval');
     self::add('json');
     self::add('tpl');
     self::add('is');
     self::add('parsed');
     self::add(function ($layer) {
         if (!isset($layer['parsedtpl'])) {
             return '';
         }
         return infra_template_parse(array($layer['parsedtpl']), $layer);
     });
 }
Пример #3
0
 public static function mail($email, $mailroot, $data = array())
 {
     if (!$email) {
         return 'Wrong email.';
     }
     if (!$mailroot) {
         return;
     }
     //Когда нет указаний в конфиге... ничего такого...
     $tpl = '*user/user.mail.tpl';
     $data['host'] = infra_view_getHost();
     $data['path'] = infra_view_getRoot();
     $data['email'] = $email;
     $data['time'] = time();
     $data['site'] = $data['host'] . '/' . $data['path'];
     $subject = infra_template_parse($tpl, $data, $mailroot . '-subject');
     $body = infra_template_parse($tpl, $data, $mailroot);
     return infra_mail_fromAdmin($subject, $email, $body);
 }
Пример #4
0
function infrajs_seo_checkseolinktpl(&$layer)
{
    $conf = infra_config();
    if (!$conf['seo']['seo']) {
        return;
    }
    if (!isset($layer['seotpl'])) {
        return;
    }
    if (!isset($layer['seo'])) {
        $layer['seo'] = array();
    }
    $props = array('tpl', 'link', 'json', 'name', 'title');
    for ($i = 0, $l = sizeof($props); $i < $l; $i++) {
        if (isset($layer['seotpl'][$props[$i]])) {
            $layer['seo'][$props[$i]] = infra_template_parse(array($layer['seotpl'][$props[$i]]), $layer);
        }
    }
}
Пример #5
0
function yml_parse($data)
{
    $gid = 0;
    $pid = 0;
    $gorups = array();
    $poss = array();
    $conf = infra_config();
    if (!$conf['yml']) {
        die('Требуется конфиг yml');
    }
    if (!$conf['yml']['name']) {
        die('В конфиге yml требуется указать name. Наименование компании без организационный формы');
    }
    if (!$conf['yml']['company']) {
        die('В конфиге yml требуется указать company, название компании с организационной формой ООО и тп');
    }
    xls_runPoss($data, function (&$pos) {
        $pos['Описание'] = yml_tostr($pos['Описание']);
    });
    xls_runGroups($data, function (&$group, $i, &$parent) use(&$gid, &$groups) {
        $group['id'] = ++$gid;
        if ($parent) {
            $group['parentId'] = $parent['id'];
        }
        $groups[] =& $group;
    });
    xls_runPoss($data, function (&$pos, $i, &$group) use(&$pid, &$poss) {
        $pos['id'] = ++$pid;
        $pos['categoryId'] = $group['id'];
        $poss[] =& $pos;
    });
    $conf = infra_config();
    $d = array("conf" => $conf, "site" => infra_view_getHost() . '/' . infra_view_getRoot(), "poss" => $poss, "groups" => $groups);
    $html = infra_template_parse('*yml/yml.tpl', $d);
    return $html;
}
Пример #6
0
    $conf = infra_config();
    return infra_err($ans, $conf['subscribe']['msg']);
}
if (strlen($_REQUEST['email']) > 1000) {
    return infra_err($ans, 'Слишком много данных. ' . $conf['subscribe']['msg']);
}
$email = strip_tags($_REQUEST['email']);
$email = trim($email);
$email = infra_forFS($email);
$agent = $_SERVER['HTTP_USER_AGENT'];
$ip = $_SERVER['REMOTE_ADDR'];
session_start();
if (empty($_SESSION['submit_time'])) {
    $_SESSION['submit_time'] = 0;
}
if (time() - $_SESSION['submit_time'] < 60) {
    return infra_err($ans, 'Письмо уже отправлено! Новое сообщение можно будет отправить через 1 минуту!');
}
$_SESSION['submit_time'] = time();
$data = array('email' => $email, 'agent' => $agent, 'ip' => $ip, 'host' => $_SERVER['HTTP_HOST']);
$body = infra_template_parse('*order.tpl', $data);
infra_mail_toAdmin('Запрос ' . $data['host'] . ' ' . $email, 'noreplay@' . $data['host'], $body);
$dirs = infra_dirs();
$src = $dirs['data'] . '.subscribe.json';
$subs = infra_loadJSON($src);
if (!$subs) {
    $subs = array();
}
$subs[$email] = date('d.m.Y');
file_put_contents($src, infra_json_encode($subs));
return infra_ret($ans, 'Ваша заявка принята');
Пример #7
0
             			);
             		}*/
         }
     }
 } else {
     if ($type == 'additem') {
         if (!$submit) {
             $seo = infrajs_seo_getSeo($id);
             unset($seo['items']);
             $ans['seo'] = $seo;
         } else {
             $name = $id;
             $seo = infrajs_seo_getSeo($name);
             $itemdata = $_REQUEST['itemdata'];
             $data = infra_json_decode($itemdata);
             $link = infra_template_parse(array($seo['link']), $data);
             $item = array('data' => $data);
             $r = false;
             foreach ($seo['items'] as $k => $i) {
                 if ($i['link'] == $link) {
                     $r = true;
                     $ans['msg'] = 'Cтраница "' . $link . '" уже есть в списке';
                     break;
                 }
             }
             if (!$r) {
                 $seo['items'][] = $item;
                 $ans['msg'] = 'Страница ' . $link . ' добавлена в список';
                 infrajs_seo_saveitem($name, $item);
             }
             $id = $name . '|' . $link;
Пример #8
0
<?php

require_once __DIR__ . '../infra/infra.php';
$data = infra_loadJSON('*rss/data.php');
header('Content-Type:text/xml; charset=utf-8');
$html = infra_template_parse('*rss/rss.tpl', $data);
echo $html;
Пример #9
0
function _seo_all($name = false)
{
    //Возвращает все [seo,seo] с item указанными по умолчанию и item заполненными пользователем
    //Те что заполенны пользователем отмечены user:true
    //Для каждого item расчитан link
    $list = infra_admin_cache('seo.inc.php', function ($name) {
        $list = infra_loadJSON('*pages/list.php?src=infra/cache/seo/&f=1&d=0&onlyname=2');
        $seo = array();
        $items_cache = array();
        foreach ($list as $i) {
            $s = infra_loadJSON('infra/cache/seo/' . $i . '.json');
            //{link:'',items:[{}]}
            if (!isset($s['link'])) {
                continue;
            }
            //link обязателен
            $linktpl = $s['link'];
            $seo[$i] = $s;
            if (!isset($seo[$i]['items'])) {
                $seo[$i]['items'] = array();
            }
            $items_cache[$i] = array();
            foreach ($seo[$i]['items'] as $item) {
                if ($linktpl) {
                    $link = infra_template_parse(array($linktpl), $item['data']);
                } else {
                    $link = '';
                }
                $item['layer'] = true;
                $item['link'] = $link;
                $items_cache[$i][$link] = $item;
            }
        }
        $list = infra_loadJSON('*pages/list.php?src=infra/data/seo/&f=1&d=0&onlyname=2');
        foreach ($list as $i) {
            if (!isset($seo[$i])) {
                continue;
            }
            //Хранятся данные seo для слоя которого сейчас нет.. и нет значит и link
            $linktpl = $seo[$i]['link'];
            $data = infra_loadJSON('infra/data/seo/' . $i . '.json');
            if (!isset($data['items'])) {
                continue;
            }
            //items обязателен
            foreach ($data['items'] as $n => $item) {
                $link = infra_template_parse(array($linktpl), $item['data']);
                $item['user'] = true;
                $item['link'] = $link;
                if (isset($items_cache[$i][$link])) {
                    foreach ($item as $k => $v) {
                        $items_cache[$i][$link][$k] = $v;
                    }
                } else {
                    $items_cache[$i][$link] = $item;
                }
            }
        }
        $list = array();
        foreach ($items_cache as $k => $v) {
            $r = array('json' => @$seo[$k]['json'], 'tpl' => @$seo[$k]['tpl'], 'name' => $k, 'defitems' => @$seo[$k]['defitems'], 'link' => $seo[$k]['link'], 'schema' => $seo[$k]['schema'], 'items' => array_values($v));
            foreach ($r['items'] as $item) {
                if (isset($item['user'])) {
                    if ($item['user']) {
                        $r['user'] = true;
                        break;
                    }
                }
            }
            $list[] = $r;
            if ($k == $name) {
                return $r;
            }
        }
        if ($name) {
            return array('name' => $name);
        }
        return $list;
    }, array($name));
    if ($name) {
        $seos = array($list);
    } else {
        $seos = $list;
    }
    return $seos;
}