$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, 'Ваша заявка принята');
$name = Catalog::getProducer($producer); $ans['name'] = $name; $ans['title'] = $name; $conf = infra_config(); $ans['breadcrumbs'][] = array('title' => $conf['catalog']['title'], 'add' => 'producer:'); $menu = infra_loadJSON('*catalog/menu.json'); $ans['breadcrumbs'][] = array('href' => 'producers', 'title' => $menu['producers']['title']); $ans['breadcrumbs'][] = array('add' => 'producer::producer.' . $name . ':1', 'title' => $name); } else { if (!$md['group'] && $md['search']) { $ans['is'] = 'search'; $ans['name'] = $md['search']; $ans['title'] = infra_forFs($md['search']); $conf = infra_config(); $ans['breadcrumbs'][] = array('title' => $conf['catalog']['title'], 'add' => 'search:'); $menu = infra_loadJSON('*catalog/menu.json'); $ans['breadcrumbs'][] = array('href' => 'find', 'title' => $menu['find']['title']); $ans['breadcrumbs'][] = array('title' => $ans['name']); } else { //is!, descr!, text!, name!, breadcrumbs!, title if ($md['group']) { foreach ($md['group'] as $group => $v) { break; } } else { $group = false; } $group = Catalog::getGroup($group); $ans['is'] = 'group'; $ans['breadcrumbs'][] = array('href' => '', 'title' => $conf['catalog']['title'], 'add' => 'group:'); array_map(function ($p) use(&$ans) {
$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']; } } elseif ($p['ext'] == 'mht') { $p = infra_loadJSON('*pages/mht/mht.php?preview' . $re . '&src=' . infra_toutf($p['src'])); 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']; } } } } $src = infra_tofs($src); $type = imager_type($src); if (!is_null($ignoremark)) { //Метку ignore может выставить только администратор
$path = infra_theme(infra_toutf($src) . $images[$i], 'fnu'); $ar = explode('.', $path); $ext = ''; if (sizeof($ar) == 2 && !$ar[0] && $ar[1]) { $filename = implode('.', $ar); } elseif (sizeof($ar) > 1) { //Это может быть папка или файл без расширения, тогда считаем что имя файла есть а расширения нет $ext = array_pop($ar); $filename = implode('.', $ar); } else { $filename = array_pop($ar); $ext = ''; } if ($ext == 'mht' || $ext == 'tpl' || $ext == 'html' || $ext == 'htm') { $s = '*pages/mht/mht.php?preview=1&src=' . infra_toutf($src) . $images[$i]; } elseif ($ext == 'docx') { $s = '*pages/docx.php?preview=1&src=' . infra_toutf($src) . $images[$i]; } $data = infra_loadJSON($s); if ($data) { $list[] = $data; } } $images = $list; } if (@$_GET['debug']) { echo '<pre>'; print_r($images); exit; } return infra_echo($images);
public static function get() { $json = '*user/get.php'; $user = infra_loadJSON($json); return $user; }
$fd = Catalog::initMark($ans); if (isset($_GET['lim'])) { $lim = $_GET['lim']; } else { $lim = '0,20'; } $p = explode(',', $lim); if (sizeof($p) != 2) { return infra_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(); $conf = infra_config(); $data = Catalog::init(); $prods = array(); Xlsx::runPoss($data, function (&$pos) use(&$prods) { @$prods[$pos['Производитель']]++; }); arsort($prods, SORT_NUMERIC); $prods = array_slice($prods, $start, $count); return $prods; }, $args, isset($_GET['re'])); $ans['menu'] = infra_loadJSON('*catalog/menu.json'); $ans['list'] = $list; $conf = infra_config(); $ans['breadcrumbs'][] = array('href' => '', 'title' => $conf['catalog']['title'], 'add' => 'group'); $ans['breadcrumbs'][] = array('href' => 'producers', 'title' => 'Производители'); return infra_ret($ans);
<?php namespace itlife\catalog; use itlife\files\Xlsx; $ans = array(); $fd = Catalog::initMark($ans); //На главной странице каталога показываются $data = infra_loadJSON('*catalog/search.php?m=' . $ans['m']); $ans['childs'] = $data['childs']; return infra_ret($ans);
<?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;
} else { if ($seo['defitem']) { $da = $seo['defitem']['data']; } else { $da = false; } } if (!$submit) { //Распарсить json. Нет itemslist, Нет item не найден //item обязательно должен быть либо в дефолтных, либо в созданных, либо в itemslist if (isset($seo['tpl'])) { $tpl = infra_template_parse(array($seo['tpl']), $da); $ans['tpl'] = $tpl; if (isset($seo['json'])) { $json = infra_template_parse(array($seo['json']), $da); $d = infra_loadJSON($json); $ans['text'] = infra_template_parse($tpl, $d); } else { $ans['text'] = infra_loadTEXT($tpl); } $ans['text'] = strip_tags($ans['text'], '<p><a><ul><li><table><tr><td><b><strong><h1><h2><h3>'); } $ans['result'] = 1; $ans['seo'] = array('name' => $seo['name'], 'item' => @$seo['item'], 'defitem' => @$seo['defitem']); } else { if (!$da) { $ans['msg'] = 'Для редактирвоания нужно создать страницу'; } else { $item = $_REQUEST['seo']; $item['data'] = $da; $src = infrajs_seo_saveitem($name, $item);
} $ans['cat_id'] = $id; $ans['cat_time'] = $time; $user = array('cat_id' => $id, 'list' => array(), 'time' => time()); foreach ($data['users'] as $k => $v) { if ($v['cat_id'] == $id) { $user = $v; unset($data['users'][$k]); break; } } $data['users'] = array_values($data['users']); foreach ($user['list'] as $k => $v) { if ($v['val'] == $val) { unset($user['list'][$k]); break; } } $user['list'] = array_values($user['list']); $search = infra_loadJSON('*catalog/search.php?val=' . $val); array_unshift($user['list'], array('val' => $val, 'time' => time(), 'count' => $search['count'])); if (sizeof($user['list']) > 10) { $user['list'] = array_slice($user['list'], 0, 10); } array_unshift($data['users'], $user); if (sizeof($data['users']) > 100) { $data['users'] = array_slice($data['users'], 0, 50); } file_put_contents($dir . 'catalog_stat.json', infra_json_encode($data)); $ans['data'] = $data; return infra_ret($ans);
<?php $data = array(); $seo = infra_loadJSON('*seo/seo.php?type=item&id=Главная страница'); infra_require('*files/files.inc.php'); if (!empty($seo['item']['title'])) { $data['title'] = $seo['item']['title']; } else { $data['title'] = 'Новостная лента ' . $_SERVER['HTTP_HOST']; } if (!empty($seo['item']['description'])) { $data['description'] = $seo['item']['description']; } else { $data['description'] = 'Новостная лента сайта ' . $_SERVER['HTTP_HOST']; } $data['time'] = infra_admin_time(); $data['link'] = 'http://' . infra_view_getHost() . '/' . infra_view_getRoot(); $conf = infra_config(); $exts = array('docx', 'tpl', 'mht', 'html'); $files = $conf['files']; $folders = array(array('dir' => $files['folder_blog'], 'link' => '?Блог/'), array('dir' => $files['folder_events'], 'link' => '?События/'), array('dir' => $files['folder_pages'], 'link' => '?')); $items = array(); infra_forr($folders, function ($fold) use($exts, &$items) { if (!$fold['dir']) { return; } $ar = files_list($fold['dir'], 0, 100, $exts); if (!$ar) { return; } $ar = array_values($ar);
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; }
function infrajs_seo_apply() { $conf = infra_config(); if (!$conf['seo']['seo']) { return; } $store =& infrajs_store(); $layer =& $store['seolayer']; if (!$layer) { return; } $seo = $layer['seo']; $reallink = $layer['crumb']->toString(); $item = $seo; if (isset($seo['name'])) { $id = $seo['name'] . '|' . $reallink; $r = infra_loadJSON('*seo/seo.php?type=item&id=' . $id); $item = $r['item']; } //Применяем $html = infra_html(); $name = 'keywords'; //stencil// if (isset($item[$name])) { if (!is_string($item[$name])) { $item[$name] = implode(', ', $item[$name]); } $r = preg_match('/<meta.*name=.{0,1}' . $name . '.{0,1}.*>/i', $html); if (!$r) { $html = str_ireplace('<head>', "<head>\n<meta name=\"" . $name . '" content="' . infrajs_seo_value($item[$name]) . '">', $html); } else { $html = preg_replace('/(<meta.*name=.{0,1}' . $name . '.{0,1})(.*>)/i', '<meta name="' . $name . '" content="' . infrajs_seo_value($item[$name]) . '" >', $html); } } $name = 'description'; //stencil// if (isset($item[$name])) { $r = preg_match('/<meta.*name=.{0,1}' . $name . '.{0,1}.*>/i', $html); if (!$r) { $html = str_ireplace('<head>', "<head>\n<meta name=\"" . $name . '" content="' . infrajs_seo_value($item[$name]) . '">', $html); } else { $html = preg_replace('/(<meta.*name=.{0,1}' . $name . '.{0,1})(.*>)/i', '<meta name="' . $name . '" content="' . infrajs_seo_value($item[$name]) . '" >', $html); } } $name = 'title'; //stencil// if (isset($item[$name])) { $r = preg_match('/<title>/i', $html); if (!$r) { $html = str_ireplace('<head>', "<head>\n<title>" . infrajs_seo_value($item[$name]) . '</title>', $html); } else { $html = preg_replace('/<title>.*<\\/title>/i', '<title>' . infrajs_seo_value($item[$name]) . '</title>', $html); } } infra_html($html, true); }
<?php $ans = array('title' => 'Проверка обработчиков каталога - позиция, группа, производители, рубрики и тп.'); $data = infra_loadJSON('*catalog/rubrics.php'); if (!$data) { return infra_err($ans, 'Ошибка rubrics.php'); } $data = infra_loadJSON('*catalog/producers.php'); if (!$data) { return infra_err($ans, 'Ошибка producers.php'); } $data = infra_loadJSON('*catalog/stat.php'); if (!$data) { return infra_err($ans, 'Ошибка stat.php'); } return infra_ret($ans);