<?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 = 'form'; // тип запроса
$status = 'all'; // любой статус

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

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

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

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

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

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

?>