many fixes in design and add shirt story type for creation book
This commit is contained in:
+24
-24
@@ -61,6 +61,8 @@ CREATE TABLE `books` (
|
||||
`updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
|
||||
`share_token` varchar(32) DEFAULT NULL,
|
||||
`published` tinyint(1) NOT NULL DEFAULT 0,
|
||||
`is_short_story` tinyint(1) NOT NULL DEFAULT 0,
|
||||
`content` text DEFAULT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `share_token` (`share_token`),
|
||||
KEY `user_id` (`user_id`),
|
||||
@@ -198,32 +200,27 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
}
|
||||
|
||||
function generate_config($db) {
|
||||
$site_url = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]";
|
||||
$base_path = str_replace('/install.php', '', $_SERVER['PHP_SELF']);
|
||||
$site_url .= $base_path;
|
||||
|
||||
return <<<EOT
|
||||
<?php
|
||||
// config/config.php - автоматически сгенерирован установщиком
|
||||
// Подключаем функции
|
||||
require_once __DIR__ . '/../includes/functions.php';
|
||||
session_start();
|
||||
require_once __DIR__ . '/../public/includes/functions.php';
|
||||
|
||||
// Настройки базы данных
|
||||
define('DB_HOST', '{$db['db_host']}');
|
||||
define('DB_USER', '{$db['db_user']}');
|
||||
define('DB_PASS', '{$db['db_pass']}');
|
||||
define('DB_NAME', '{$db['db_name']}');
|
||||
define('SITE_URL', '{$site_url}');
|
||||
}
|
||||
|
||||
// динамическое определение SITE_URL
|
||||
$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? 'https://' : 'http://';
|
||||
$host = $_SERVER['HTTP_HOST'] ?? 'localhost';
|
||||
define('SITE_URL', $protocol . $host);
|
||||
|
||||
// Настройки приложения
|
||||
define('APP_NAME', 'Web Writer');
|
||||
|
||||
define('CONTROLLERS_PATH', __DIR__ . '/../controllers/');
|
||||
define('VIEWS_PATH', __DIR__ . '/../views/');
|
||||
define('LAYOUTS_PATH', VIEWS_PATH . 'layouts/');
|
||||
|
||||
define('UPLOAD_PATH', __DIR__ . '/../uploads/');
|
||||
define('UPLOAD_PATH', __DIR__ . '/../public/uploads/');
|
||||
define('COVERS_PATH', UPLOAD_PATH . 'covers/');
|
||||
define('COVERS_URL', SITE_URL . '/uploads/covers/');
|
||||
define('AVATARS_PATH', UPLOAD_PATH . 'avatars/');
|
||||
@@ -237,25 +234,28 @@ if (!file_exists(AVATARS_PATH)) {
|
||||
mkdir(AVATARS_PATH, 0755, true);
|
||||
}
|
||||
|
||||
|
||||
// Подключение к базе данных
|
||||
try {
|
||||
\$pdo = new PDO("mysql:host=" . DB_HOST . ";dbname=" . DB_NAME . ";charset=utf8mb4", DB_USER, DB_PASS);
|
||||
\$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||
} catch(PDOException \$e) {
|
||||
error_log("DB Error: " . \$e->getMessage());
|
||||
$pdo = new PDO("mysql:host=" . DB_HOST . ";dbname=" . DB_NAME . ";charset=utf8mb4", DB_USER, DB_PASS);
|
||||
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||
} catch(PDOException $e) {
|
||||
error_log("DB Error: " . $e->getMessage());
|
||||
die("Ошибка подключения к базе данных");
|
||||
}
|
||||
|
||||
// Добавляем константы для новых путей
|
||||
define('CONTROLLERS_PATH', __DIR__ . '/../public/controllers/');
|
||||
define('VIEWS_PATH', __DIR__ . '/../public/views/');
|
||||
define('LAYOUTS_PATH', VIEWS_PATH . 'layouts/');
|
||||
|
||||
|
||||
// Автозагрузка моделей
|
||||
spl_autoload_register(function (\$class_name) {
|
||||
\$model_file = __DIR__ . '/../models/' . \$class_name . '.php';
|
||||
if (file_exists(\$model_file)) {
|
||||
require_once \$model_file;
|
||||
// Автозагрузка контроллеров
|
||||
spl_autoload_register(function ($class_name) {
|
||||
$controller_file = CONTROLLERS_PATH . $class_name . '.php';
|
||||
if (file_exists($controller_file)) {
|
||||
require_once $controller_file;
|
||||
}
|
||||
});
|
||||
?>
|
||||
EOT;
|
||||
}
|
||||
?>
|
||||
|
||||
Reference in New Issue
Block a user