Git Hub
коротко

Заглушка

22 сентября 2015, 17:19

После написания модуля заглушки для Market Place я полагал, что тема с подобными заглушками для меня закрыта, но пришла следующая.

Задача:

Во время определённого периода времени сайт должен быть:

  1. закрыт для посетителей
  2. открыт для редакторов
  3. открыт для администраторов

Мат. часть

Битрикс реализует закрытие публичной части от посещений отслеживая состояние site_stopped — опции главного модуля в файле prolog_after.php.
Соответственно для закрытия сайта нам необходим вызов вида

COption::SetOptionString("main","site_stopped","Y");

после этого битрикс заглянет в

/bitrix/php_interface/<ID-сайта>/include/site_closed.php

и если не обнаружит там файла, то заглянет сюда

/bitrix/php_interface/include/site_closed.php

пример содержимого такого файла

<?
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); 
CHTTP::SetStatus("503 Service Unavailable"); 

?>
<!DOCTYPE html>
<html>
<head>
        <title>Название информационного русурса</title>
</head>
<body>
	<div class="main">
		<p>
                    В связи с такими-то праздниками сайт закрыт для посещений.
                    Бла-бла-бла с такого-то по такое-то вермя, число нужное зачеркнуть...
                </p>
	</div>
</body>
</html>

Решение

пришлось повесить на крон два скрипта, которые:

  1. в час X выключает сайт
  2. в час Z включает обратно
Поделиться
Популярное