generated from mirzaev/pot
переработка шаблонизатора, работа над аутентификацией
This commit is contained in:
@@ -5,7 +5,7 @@ declare(strict_types=1);
|
||||
namespace mirzaev\site\account\controllers;
|
||||
|
||||
// Файлы проекта
|
||||
use mirzaev\site\account\views\manager;
|
||||
use mirzaev\site\account\views\templater;
|
||||
use mirzaev\site\account\models\core as models;
|
||||
use mirzaev\site\account\models\account_model as account;
|
||||
use mirzaev\site\account\models\session_model as session;
|
||||
@@ -26,75 +26,71 @@ use mirzaev\vk\robots\user as robot;
|
||||
* @package mirzaev\site\account\controllers
|
||||
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
||||
*/
|
||||
class core extends controller
|
||||
class core extends controller
|
||||
{
|
||||
/**
|
||||
* Переменные окружения
|
||||
*/
|
||||
protected robot $vk;
|
||||
/**
|
||||
* Переменные окружения
|
||||
*/
|
||||
protected robot $vk;
|
||||
|
||||
/**
|
||||
* Переменные окружения
|
||||
*/
|
||||
protected array $variables = [];
|
||||
/**
|
||||
* Конструктор
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
/**
|
||||
* Конструктор
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
// Инициализация ядра моделей (соединение с базой данных...)
|
||||
new models();
|
||||
|
||||
// Инициализация ядра моделей (соединение с базой данных...)
|
||||
new models();
|
||||
// Инициализация шаблонизатора представлений
|
||||
$this->view = new templater;
|
||||
|
||||
// Инициализация журнала ошибок
|
||||
$this->variables['errors'] = [
|
||||
'session' => [],
|
||||
'account' => [],
|
||||
'vk' => []
|
||||
];
|
||||
// Инициализация журнала ошибок
|
||||
$this->view->errors = [
|
||||
'session' => [],
|
||||
'account' => [],
|
||||
'vk' => []
|
||||
];
|
||||
|
||||
// Инициализация даты до которой будет активна сессия
|
||||
$expires = time() + 604800;
|
||||
// Инициализация даты до которой будет активна сессия
|
||||
$expires = time() + 604800;
|
||||
|
||||
// Инициализация сессии (без журналирования)
|
||||
$this->variables['session'] = new session($_COOKIE["session"] ?? null, $expires) ?? header('Location: https://mirzaev.sexy/error?code=500&text=Не+удалось+инициализировать+сессию');
|
||||
// Инициализация сессии (без журналирования)
|
||||
$this->view->session = new session($_COOKIE["session"] ?? null, $expires) ??
|
||||
header('Location: https://mirzaev.sexy/error?code=500&text=Не+удалось+инициализировать+сессию');
|
||||
|
||||
if ($_COOKIE["session"] ?? null !== $this->variables['session']->hash) {
|
||||
// Изменился хеш сессии (подразумевается, что сессия устарела)
|
||||
if ($_COOKIE["session"] ?? null !== $this->view->session->hash) {
|
||||
// Изменился хеш сессии (подразумевается, что сессия устарела)
|
||||
|
||||
// Запись хеша новой сессии
|
||||
setcookie('session', $this->variables['session']->hash, [
|
||||
'expires' => $expires,
|
||||
'domain' => 'mirzaev.sexy',
|
||||
'path' => '/',
|
||||
'secure' => true,
|
||||
'httponly' => true,
|
||||
'samesite' => 'strict'
|
||||
]);
|
||||
}
|
||||
|
||||
// Инициализация аккаунта (без журналирования)
|
||||
$this->variables['account'] = $this->variables['session']->account();
|
||||
|
||||
if ($this->variables['account'] instanceof _document) {
|
||||
// Инициализирован аккаунт
|
||||
|
||||
// Инициализация аккаунта ВКонтакте (без журналирования)
|
||||
$this->variables['vk'] = account::vk($this->variables['account']);
|
||||
|
||||
if ($this->variables['vk'] instanceof _document) {
|
||||
// Инициализирован аккаунт ВКонтакте
|
||||
|
||||
// Инициализация робота для аккаунта ВКонтакте
|
||||
$this->vk = vk::init()->user(key: $this->variables['vk']->access['key']);
|
||||
} else unset($this->variables['account'], $this->variables['vk']);
|
||||
}
|
||||
|
||||
// Инициализация препроцессора представления
|
||||
$this->view = new manager;
|
||||
// Запись хеша новой сессии
|
||||
setcookie('session', $this->view->session->hash, [
|
||||
'expires' => $expires,
|
||||
'domain' => 'mirzaev.sexy',
|
||||
'path' => '/',
|
||||
'secure' => true,
|
||||
'httponly' => true,
|
||||
'samesite' => 'strict'
|
||||
]);
|
||||
}
|
||||
|
||||
// Инициализация аккаунта (без журналирования)
|
||||
$this->view->account = $this->view->session->account();
|
||||
|
||||
if ($this->view->account instanceof _document) {
|
||||
// Инициализирован аккаунт
|
||||
|
||||
// Инициализация аккаунта ВКонтакте (без журналирования)
|
||||
$this->variables['vk'] = account::vk($this->variables['account']);
|
||||
|
||||
if ($this->variables['vk'] instanceof _document) {
|
||||
// Инициализирован аккаунт ВКонтакте
|
||||
|
||||
// Инициализация робота для аккаунта ВКонтакте
|
||||
$this->vk = vk::init()->user(key: $this->variables['vk']->access['key']);
|
||||
} else unset($this->variables['account'], $this->variables['vk']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -22,59 +22,12 @@ final class index_controller extends core
|
||||
*/
|
||||
public function index(array $parameters = []): ?string
|
||||
{
|
||||
// Инициализация загружаемых категорий
|
||||
$this->variables['include'] = [
|
||||
'head' => ['self'],
|
||||
'body' => ['self']
|
||||
// Инициализация узлов
|
||||
$this->view->nodes = [
|
||||
'account' => $this->view->render(DIRECTORY_SEPARATOR . 'nodes' . DIRECTORY_SEPARATOR . (isset($this->account) ? 'profile.html' : 'authentication.html'))
|
||||
];
|
||||
|
||||
// Инициализация бегущей строки
|
||||
$this->variables['hotline'] = [
|
||||
'id' => $this->variables['request']['id'] ?? 'hotline'
|
||||
];
|
||||
|
||||
// Инициализация параметров бегущей строки
|
||||
$this->variables['hotline']['parameters'] = [
|
||||
// 'step' => 2
|
||||
];
|
||||
|
||||
// Инициализация аттрибутов бегущей строки
|
||||
$this->variables['hotline']['attributes'] = [];
|
||||
|
||||
// Инициализация элементов бегущей строки
|
||||
$this->variables['hotline']['elements'] = [
|
||||
['content' => '1'],
|
||||
[
|
||||
'tag' => 'article',
|
||||
'content' => '2'
|
||||
],
|
||||
['content' => '3'],
|
||||
['content' => '4'],
|
||||
['content' => '5'],
|
||||
['content' => '6'],
|
||||
['content' => '7'],
|
||||
['content' => '8'],
|
||||
['content' => '9'],
|
||||
['content' => '10'],
|
||||
['content' => '11'],
|
||||
['content' => '12'],
|
||||
['content' => '13'],
|
||||
['content' => '14'],
|
||||
['content' => '15']
|
||||
];
|
||||
|
||||
// Инициализация бегущей строки
|
||||
$this->variables['graph'] = [
|
||||
'id' => $this->variables['request']['id'] ?? 'graph'
|
||||
];
|
||||
|
||||
// Инициализация аттрибутов бегущей строки
|
||||
$this->variables['graph']['attributes'] = [];
|
||||
|
||||
// Инициализация элементов бегущей строки
|
||||
$this->variables['graph']['elements'] = [];
|
||||
|
||||
// Генерация представления
|
||||
return $this->view->render(DIRECTORY_SEPARATOR . 'index.html', $this->variables);
|
||||
return $this->view->render(DIRECTORY_SEPARATOR . 'index.html');
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user