Лазерная резка готова

This commit is contained in:
Arsen Mirzaev Tatyano-Muradovich
2022-02-01 18:37:46 +10:00
parent 503e25647c
commit 4c6331b5da
50 changed files with 3821 additions and 422 deletions

View File

@@ -9,7 +9,7 @@ use mirzaev\calculator\models\accounts_model as accounts;
use mirzaev\calculator\models\settings_model as settings;
/**
* Контроллер страницы настроек
* Контроллер настроек
*
* @package mirzaev\calculator\controllers
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
@@ -22,46 +22,65 @@ final class settings_controller extends core
* HTML-документ со списком настроек
*
* @param array $vars Параметры
*
* @return string HTML-докумкент или журнал ошибок
*/
public function index(array $vars = []): ?string
public function index(array $vars = []): string
{
// Инициализация журнала ошибок
$vars['errors'] = ['settings' => []];
// Инициализация аккаунта
$vars['account'] = accounts::account($vars['errors']);
$vars['account'] = accounts::account($vars['errors']['settings']);
// Генерация представления
return $this->view->render(DIRECTORY_SEPARATOR . 'settings' . DIRECTORY_SEPARATOR . 'index.html', $vars);
if (accounts::access('settings')) {
// Разрешён доступ к изменению настроек
// Инициализация настроек
$vars['settings'] = settings::translate(settings::filter(settings::read(errors: $vars['errors']['settings']), $vars['errors']['settings']), $vars['errors']['settings']);
// Генерация представления
return $this->view->render(DIRECTORY_SEPARATOR . 'settings' . DIRECTORY_SEPARATOR . 'index.html', $vars);
}
if (empty($vars['errors']['settings'])) return '';
return json_encode($vars['errors']);
}
/**
* Записать
*
* @param array $vars Параметры
*
* @return string Журнал ошибок
*/
public function write(array $vars = []): ?bool
public function write(array $vars = []): ?string
{
// Инициализация журнала ошибок
$vars['errors'] = ['settings' => []];
// Инициализация аккаунта
$vars['account'] = accounts::account($vars['errors']);
$vars['account'] = accounts::account($vars['errors']['settings']);
if ($vars['account'] && $vars['account']['permissions']['settings'] ?? 0 === 1) {
// Удалось аутентифицироваться и пройдена проверка авторизации
// Инициализация калькуляторов из тела запроса (подразумевается, что там массивы с параметрами)
$vars['settings'] = json_decode(file_get_contents('php://input'), true);
foreach ($vars['settings'] ?? [] as $name => $value) {
// Перебор настроек
settings::write($name, $value);
return true;
// Запись в базу данных
settings::write($name, $value, $vars['errors']['settings']);
}
return json_encode($vars['errors']);
}
return false;
http_response_code(500);
return json_encode($vars['errors']);
}
/**
@@ -75,7 +94,7 @@ final class settings_controller extends core
$vars['errors'] = ['settings' => []];
// Инициализация аккаунта
$vars['account'] = accounts::account($vars['errors']);
$vars['account'] = accounts::account($vars['errors']['settings']);
// Инициализация буфера вывода
$settings = [];
@@ -83,7 +102,7 @@ final class settings_controller extends core
foreach ($vars['settings'] ?? [] as $name) {
// Перебор настроек
$settings[] = settings::read($name, $vars['account'] && $vars['account']['permissions']['settings'] ?? 0 === 1);
$settings[] = settings::read($name, $vars['errors']['settings']);
}
return json_encode($settings);