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; }
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); }); }
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); }
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); } } }
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; }
$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, 'Ваша заявка принята');
); }*/ } } } 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;
<?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;
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; }