<?php

# проверка ajax запроса, выдача ошибки сервера
if (!$FUNC->ajax()) { http_response_code(403); exit; }

# обработка входящей ссылки
$url = substr(URL, 5);// нарезка ссылки из полученной
$link = $FUNC->back($url, true);// преобразование ссылки
if ($link == '/' || !$FUNC->url($link)) $route = 'stop'; // ссылка неверная
else { $parts = $FUNC->parse($link); // парсинг ссылки
$route = reset($parts); } // определение текущего роутера
if (!isset($route)) $route = 'stop'; // проверка целостности массива ссылки

# данные по умолчанию
$page = 'sheet'; // тип запроса
$status = 'all'; // любой статус
$param = false; // начальный параметр
$params = false; // общие параметры

# выборка модуля из списка
require_once SYS .'rout/page.php';

# проверка авторизации
require_once SYS .'main/auth.php';

# не указан ник, зарегистрированный аккаунт
if (defined('USER') && USER['status'] != 'guest' && USER['nick'] == 'Гость') $stop = true;

# страница отсутствует, показ ошибки
if (isset($stop)) { ob_start('ob_gzhandler'); // буферизация данных
require_once MODS .'error/sheet.php'; // шаблон ошибки
$buffer = ob_get_clean(); // чтение данных из буфера
$body = array('title' => 'Нет доступа', 'body' => $buffer); // запись данных в массив
echo json_encode($body); exit; } // преобразование в json, отправка к клиенту

# запись данных навигации
define('ROUT', array('folder' => $folder, 'file' => $file));

# проверка и запись параметров
if ($param || $params) define('PARAMS', $FUNC->params($parts, key($parts), $param));

# проверка, подключение действия
if (file_exists(MODS . ROUT['folder'] .'/acts/'. ROUT['file'] .'.php'))
require_once MODS . ROUT['folder'] .'/acts/'. ROUT['file'] .'.php';

# проверка, подключение шаблона
if (file_exists(MODS . ROUT['folder'] .'/temps/'. ROUT['file'] .'.php')) { // проверка наличия шаблона
ob_start('ob_gzhandler'); header('Content-Type: text/html; charset=UTF-8'); // буферизация, тип, кодировка
require_once MODS .'wraps/head.php'; require_once MODS . ROUT['folder'] .'/temps/'.  ROUT['file'] .'.php'; // шапка, шаблон
require_once MODS .'wraps/act.php'; require_once MODS .'wraps/foot.php'; // обертка, подвал
$buffer = ob_get_clean(); $body = array('title' => TITLE, 'body' => $buffer); // буфер, запись данных в массив
echo json_encode($body); } // преобразование в json, отправка к клиенту

?>