software:development:demo:cms:ucms:creating_sample_install_php_setting_comment
Комментарии Файл setting_install_windows.php
- setting_install_windows.php
<?php $cssFile = __DIR__ . '/css/install.css'; // Путь к рабочему файлу CSS $defaultFile = __DIR__ . '/css/default_install.css'; // Путь к эталонному файлу для сброса $message = ''; // Переменная для хранения текста уведомлений // 1. ЛОГИКА СБРОСА: Если в POST-запросе есть ключ кнопки "По умолчанию" if (isset($_POST['reset_default'])) { if (file_exists($defaultFile)) { // Проверяем, существует ли файл-эталон $defaultContent = file_get_contents($defaultFile); // Считываем данные из эталона if (is_writable($cssFile)) { // Проверяем, разрешена ли запись в рабочий файл file_put_contents($cssFile, $defaultContent); // Перезаписываем рабочий файл эталонным кодом $message = '<p class="msg ok">Стили восстановлены из файла по умолчанию!</p>'; // Успех } else { $message = '<p class="msg err">Ошибка: Нет прав на запись в install.css</p>'; // Ошибка доступа } } else { $message = '<p class="msg err">Ошибка: Файл по умолчанию не найден.</p>'; // Файл не найден } } // 2. ЛОГИКА СОХРАНЕНИЯ: Если пришли данные из текстового поля и это не команда сброса if (isset($_POST['css_content']) && !isset($_POST['reset_default'])) { if (is_writable($cssFile)) { // Проверяем права на запись file_put_contents($cssFile, $_POST['css_content']); // Сохраняем текст из формы напрямую в файл $message = '<p class="msg ok">Файл успешно сохранен!</p>'; // Уведомляем об успехе } else { $message = '<p class="msg err">Ошибка: Файл недоступен для записи.</p>'; // Уведомляем о запрете } } // 3. ЧТЕНИЕ: Получаем актуальный код для отображения в редакторе // htmlspecialchars преобразует спецсимволы (типа < >), чтобы они не конфликтовали с HTML-разметкой страницы $content = file_exists($cssFile) ? htmlspecialchars(file_get_contents($cssFile)) : ''; ?> <!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <!-- Установка кодировки UTF-8 --> <title>Редактор стилей</title> <!-- Заголовок вкладки браузера --> <style> /* Базовые стили страницы */ body { font-family: sans-serif; background: #f4f4f4; margin: 0; padding: 20px; } /* Центрирование контейнера (700px) */ .editor-container { max-width: 700px; /* Максимальная ширина 700 пикселей */ margin: 0 auto; /* Центрирование по горизонтали */ background: #fff; /* Белый фон окна */ padding: 20px; /* Внутренние отступы */ border-radius: 8px; /* Скругление углов */ box-shadow: 0 4px 15px rgba(0,0,0,0.1); /* Тень для объема */ } h3 { margin-top: 0; color: #333; font-size: 18px; } /* Стили заголовока */ /* Поле ввода кода */ textarea { width: 100%; /* Ширина на весь контейнер */ height: 450px; /* Высота 450 пикселей */ font-family: monospace; /* Шрифт как в редакторах кода */ font-size: 13px; /* Размер текста */ padding: 10px; /* Отступы внутри поля */ border: 1px solid #ccc; /* Серая рамка */ box-sizing: border-box; /* Чтобы padding не увеличивал ширину */ resize: vertical; /* Позволяет тянуть окно только вниз */ } /* Блок управления кнопками */ .controls { margin-top: 15px; display: flex; gap: 10px; align-items: center; } /* Общий стиль для кнопок */ button { padding: 10px 15px; border: none; border-radius: 4px; cursor: pointer; color: white; font-weight: bold; } .btn-save { background: #2e7d32; } /* Зеленая кнопка "Сохранить" */ .btn-reset { background: #d32f2f; } /* Красная кнопка "Сброс" */ /* Ссылка отмены прижата вправо (margin-left: auto) */ .btn-back { color: #666; text-decoration: none; font-size: 14px; margin-left: auto; } button:hover { opacity: 0.9; } /* Эффект при наведении на кнопку */ .msg { font-size: 14px; margin-bottom: 10px; } /* Базовый стиль сообщения */ .ok { color: green; } /* Цвет для успешного сообщения */ .err { color: red; } /* Цвет для сообщения об ошибке */ </style> </head> <body> <div class="editor-container"> <h3>Редактор: css/install.css</h3> <!-- Вывод переменной с сообщением (если она не пустая) --> <?= $message ?> <form method="post"> <!-- Текстовое поле с содержимым CSS-файла --> <textarea name="css_content"><?= $content ?></textarea> <div class="controls"> <!-- Кнопка отправки формы для сохранения --> <button type="submit" class="btn-save">Сохранить</button> <!-- Кнопка сброса. onclick запускает JS-подтверждение перед отправкой формы --> <button type="submit" name="reset_default" class="btn-reset" onclick="return confirm('Восстановить исходные стили?')">По умолчанию</button> <!-- Ссылка-кнопка для возврата назад без изменений --> <a href="install.php" class="btn-back">Отмена</a> </div> </form> </div> </body> </html>
Только авторизованные участники могут оставлять комментарии.
software/development/demo/cms/ucms/creating_sample_install_php_setting_comment.txt · Последнее изменение: — VladPolskiy
