Для временного ограничения доступа посетителей к фронтенду веб-сайта добавлен режим технического обслуживания - 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>
Специальная функция для проверки статуса режима технического обслуживания не реализована. В PHP коде плагинов, компонентов и шаблонов темы оформления можно использовать следующую конструкцию:
<?php
if ($dataw->maintenance == '1') {
// Maintenance Mode is enabled
}
Главное при использовании режима технического обслуживания веб-сайта – не забыть выключить его, чтобы веб-сайта снова стал доступен для посетителей.