dimayakovlev.ru


Что нового в GetSimple Extended CMS: Режим технического обслуживания веб-сайта

Для временного ограничения доступа посетителей к фронтенду веб-сайта добавлен режим технического обслуживания - Maintenance Mode.

Режим технического обслуживания включён по умолчанию после установки системы управления контентом. Затем включение и выключение режима технического обслуживания выполняется пользователем через панель администрирования веб-сайта: Settings/Website Settings/Enable Maintenance Mode.

С целью привлечения внимания пользователя, при включённом режиме технического обслуживания в панели администрирования веб-сайта в верхнем правом меню выводится индикатор включённого режима “MAINTENANCE MODE” и предупреждающее сообщение о недоступности веб-сайта для посетителей.

Панель администрирования веб-сайта при включённом режиме технического обслуживания

Доступ к фронтенду веб-сайта в режиме технического обслуживания ограничен не только для обычных посетителей, но и для аутентифицированного пользователя. Для снятия ограничения в профиле пользователя должна быть включена настройка: Settings/User Profile/Access to website in Maintenance Mode.

При включённом режиме технического обслуживания при обращении к странице веб-сайта не происходит принудительного перенаправления на специальную выделенную страницу ошибки доступа, вместо этого клиент получает ответ сервера: 503 (Service Unavailable), а посетитель видит страницу с заголовком и информационным сообщением о проведении работ.

Заголовок и текст сообщения хранятся в файле GSDATAOTHERPATH/503.xml (/data/other/503.xml), формат которого соответствует стандартному формату XML-документа обычной страницы. В настоящее время в панели администрирования не предусмотрена возможность внесения изменений в этот файл, но это может быть сделано вручную при помощи текстового редактора.

Для визуального оформления веб-сайта в режиме технического обслуживания система управления контентом по умолчанию попытается использовать специальный шаблон из файла template-503.php текущей темы оформления. Если шаблон template-503.php в текущей теме оформления не существует, будет использован шаблон оформления страниц по умолчанию template.php.

Пример шаблона с использованием случайного изображения с сервиса Unsplash.com:

<?php
  if (!defined('IN_GS')) { die('you cannot load this page directly.'); }
?><!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title><?php get_page_clean_title(); ?> - <?php get_site_name(); ?></title>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <style>
    *, *:before, *:after { box-sizing: border-box; }
    html {
        background: black;
        color: white;
        display: flex;
        min-height: 100vh;
        flex-direction: column;
        background: linear-gradient(to bottom, rgba(0,0,0,.5), rgba(0,0,0,.5)), url('https://source.unsplash.com/1600x900/?program') center;
        background-size: cover, cover;
        font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
        margin: 0;
        padding: .5rem;
    }
    body {
        background-color: rgba(0,0,0,.6);
        border-radius: .5rem;
        margin: auto;
        text-align: center;
        padding: 2rem;
    }
    h1:before {
        content: '⚠';
        display: block;
        font-size: 4rem;
        padding-bottom: 2rem;
    }
  </style>
</head>
<body id="<?php get_page_slug(); ?>">
    <h1><?php get_page_title(); ?></h1>
    <?php get_page_content(); ?>
</body>
</html>

Пример шаблона для оформления веб-сайта в режиме технического обслуживания с использованием случайного изображения с сервиса Unsplash.com

Специальная функция для проверки статуса режима технического обслуживания не реализована. В PHP коде плагинов, компонентов и шаблонов темы оформления можно использовать следующую конструкцию:

<?php
  if ($dataw->maintenance == '1') {
    // Maintenance Mode is enabled
  }

Главное при использовании режима технического обслуживания веб-сайта – не забыть выключить его, чтобы веб-сайта снова стал доступен для посетителей.