Fix LESS import error and refactor project structure

This commit is contained in:
kirill.khorkov
2026-01-03 18:59:56 +03:00
parent 1bb0fc02e6
commit 4a8d4f8c3f
201 changed files with 891 additions and 14311 deletions

View File

@@ -1,51 +1,38 @@
<?php
/**
* Конфигурация приложения
*/
return [
// Название приложения
'name' => 'AETERNA',
// Режим отладки
'debug' => true,
// URL приложения
'url' => 'http://localhost',
// Базовый путь (для Docker)
'base_path' => '/cite_practica',
// Часовой пояс
'debug' => getenv('APP_DEBUG') ?: true,
'url' => getenv('APP_URL') ?: 'http://localhost:8080',
'base_path' => '',
'timezone' => 'Europe/Moscow',
// Локаль
'locale' => 'ru_RU',
// Email администраторов (получают права администратора при регистрации)
'admin_emails' => [
'admin@aeterna.ru',
'administrator@aeterna.ru',
'aeterna@mail.ru'
],
// Настройки сессии
'session' => [
'lifetime' => 120, // минуты
'lifetime' => 120,
'secure' => false,
'http_only' => true
],
// Настройки доставки
'delivery' => [
'default_price' => 2000,
'free_from' => 50000, // Бесплатная доставка от этой суммы
'free_from' => 50000,
],
// Промокоды
'promo_codes' => [
'SALE10' => ['type' => 'percent', 'value' => 10],
'FREE' => ['type' => 'free_delivery', 'value' => 0],
],
'paths' => [
'storage' => 'storage',
'uploads' => 'storage/uploads',
'assets' => 'public/assets',
]
];

View File

@@ -1,114 +0,0 @@
// check_auth.js
$(document).ready(function() {
// Проверка авторизации при загрузке страницы
checkAuthStatus();
// Обработка формы входа
$('#loginForm').on('submit', function(e) {
e.preventDefault();
const email = $('#login-email').val();
const password = $('#login-password').val();
const remember = $('#remember').is(':checked');
$.ajax({
url: 'login_handler.php',
method: 'POST',
data: {
email: email,
password: password
},
success: function(response) {
try {
const result = JSON.parse(response);
if (result.success) {
// Сохраняем в localStorage если выбрано "Запомнить меня"
if (remember) {
localStorage.setItem('rememberedEmail', email);
} else {
localStorage.removeItem('rememberedEmail');
}
// Перенаправляем
window.location.href = result.redirect || 'catalog.php';
} else {
showMessage('error', result.message || 'Ошибка авторизации');
}
} catch(e) {
showMessage('error', 'Ошибка обработки ответа');
}
},
error: function() {
showMessage('error', 'Ошибка сервера');
}
});
});
// Проверка статуса авторизации
function checkAuthStatus() {
$.ajax({
url: 'check_auth_status.php',
method: 'GET',
success: function(response) {
try {
const result = JSON.parse(response);
if (result.loggedIn) {
updateUserProfile(result.user);
}
} catch(e) {
console.error('Ошибка проверки авторизации', e);
}
}
});
}
// Обновление профиля пользователя
function updateUserProfile(user) {
// Обновляем шапку, если есть элементы для профиля
if ($('#userEmail').length) {
$('#userEmail').text(user.email);
}
if ($('#userName').length) {
$('#userName').text(user.full_name);
}
}
// Показать сообщение
function showMessage(type, text) {
const $message = $('#' + type + 'Message');
if ($message.length) {
$message.text(text).fadeIn();
setTimeout(() => $message.fadeOut(), 5000);
} else {
alert(text);
}
}
// Проверка авторизации для ссылок
function checkAuth(redirectUrl) {
$.ajax({
url: 'check_auth_status.php',
method: 'GET',
success: function(response) {
try {
const result = JSON.parse(response);
if (result.loggedIn) {
window.location.href = redirectUrl;
} else {
// Показываем модальное окно или перенаправляем на вход
showLoginModal(redirectUrl);
}
} catch(e) {
showLoginModal(redirectUrl);
}
}
});
return false;
}
// Показать модальное окно входа
function showLoginModal(redirectUrl) {
// Можно реализовать модальное окно или перенаправить на страницу входа
window.location.href = 'вход.php?redirect=' + encodeURIComponent(redirectUrl);
}
});

View File

@@ -1,14 +1,17 @@
<?php
/**
* Конфигурация базы данных
*/
return [
'driver' => 'pgsql',
'host' => '185.130.224.177',
'port' => '5481',
'database' => 'postgres',
'username' => 'admin',
'password' => '38feaad2840ccfda0e71243a6faaecfd',
'driver' => getenv('DB_DRIVER') ?: 'pgsql',
'host' => getenv('DB_HOST') ?: '185.130.224.177',
'port' => getenv('DB_PORT') ?: '5481',
'database' => getenv('DB_DATABASE') ?: 'postgres',
'username' => getenv('DB_USERNAME') ?: 'admin',
'password' => getenv('DB_PASSWORD') ?: '38feaad2840ccfda0e71243a6faaecfd',
'charset' => 'utf8',
'options' => [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
]
];

View File

@@ -1,46 +1,32 @@
<?php
/**
* Определение маршрутов приложения
*
* @var \App\Core\Router $router
*/
// ========== Главная страница ==========
$router->get('/', 'HomeController', 'index');
$router->get('/home', 'HomeController', 'index');
// ========== Авторизация ==========
$router->get('/login', 'AuthController', 'loginForm');
$router->post('/login', 'AuthController', 'login');
$router->get('/register', 'AuthController', 'registerForm');
$router->post('/register', 'AuthController', 'register');
$router->get('/logout', 'AuthController', 'logout');
// ========== Каталог и товары ==========
$router->get('/catalog', 'ProductController', 'catalog');
$router->get('/product/{id}', 'ProductController', 'show');
// ========== Корзина ==========
$router->get('/cart', 'CartController', 'index');
$router->post('/cart/add', 'CartController', 'add');
$router->post('/cart/update', 'CartController', 'update');
$router->post('/cart/remove', 'CartController', 'remove');
$router->get('/cart/count', 'CartController', 'count');
// ========== Заказы ==========
$router->get('/checkout', 'OrderController', 'checkout');
$router->post('/order', 'OrderController', 'create');
// ========== Статические страницы ==========
$router->get('/services', 'PageController', 'services');
$router->get('/delivery', 'PageController', 'delivery');
$router->get('/warranty', 'PageController', 'warranty');
// ========== Админ-панель ==========
$router->get('/admin', 'AdminController', 'dashboard');
// Управление товарами
$router->get('/admin/products', 'AdminController', 'products');
$router->get('/admin/products/add', 'AdminController', 'addProduct');
$router->post('/admin/products/add', 'AdminController', 'storeProduct');
@@ -48,7 +34,6 @@ $router->get('/admin/products/edit/{id}', 'AdminController', 'editProduct');
$router->post('/admin/products/edit/{id}', 'AdminController', 'updateProduct');
$router->post('/admin/products/delete/{id}', 'AdminController', 'deleteProduct');
// Управление категориями
$router->get('/admin/categories', 'AdminController', 'categories');
$router->get('/admin/categories/add', 'AdminController', 'addCategory');
$router->post('/admin/categories/add', 'AdminController', 'storeCategory');
@@ -56,11 +41,8 @@ $router->get('/admin/categories/edit/{id}', 'AdminController', 'editCategory');
$router->post('/admin/categories/edit/{id}', 'AdminController', 'updateCategory');
$router->post('/admin/categories/delete/{id}', 'AdminController', 'deleteCategory');
// Управление заказами
$router->get('/admin/orders', 'AdminController', 'orders');
$router->get('/admin/orders/{id}', 'AdminController', 'orderDetails');
$router->post('/admin/orders/{id}/status', 'AdminController', 'updateOrderStatus');
// Управление пользователями
$router->get('/admin/users', 'AdminController', 'users');