все форумы все темы добавить тему
Как закрыть сайт?
Собственно, данный вопрос появился в последнее время уже несколько раз. Несмотря на то, что решение совсем простое и лежит на поверхности, видимо, оно и отпугивает своей слишком большой простотой.
 
Итак, задачи такие:
1. закрыть сайт на время проведения работ
2. сделать "закрытый" сайт, на который имеют доступ только зарегистрированные пользователи.
3. разрешить доступ на сайт только определенным группам (например, тестерам)
 
Собственно, все три задачки решались достаточно просто по отдельности, но я решил сделать универсальный способ. Заодно и показать еще раз простоту написания модулей
 
Итак, будем писать модуль, который будет решать все озвученные задачи.
index.php
PHP
<?php
 //если у группы нет доступа
if (!access('access')
        //и пользователь не обращается к модулю авторизации
        && LabCMS::i()->url!=getModulePath(LabConfig::$cfg['auth_module']))
                //требуем авторизоваться или говорим что доступ запрещен
                LabCMS::i()->error403();

Собственно, модуль готов. Осталось создать для него корректный config.xml, чтобы можно было его устанавливать и настраивать.
 
config.xml
XML
<module>
        <name>закрытый сайт</name>
        <describe>Ограничивает доступ на сайт для всех, кроме указанных групп</describe>
        <component>0</component>
        <!-- модуль статичный, чтобы его действие распространялось на все страницы -->
        <static>1</static>
        <!-- ставим число поменьше, чтобы модуль подключался раньше других -->
        <runlevel>90</runlevel>
        <access>
                <permis>
                        <name>access</name>
                        <type>boolean</type>
                        <title>Доступ</title>
                        <describe>Эта группа имеет доступ на сайт</describe>
                </permis>
        </access>
</module>

 
Собственно и все. Устанавливаем модуль, подключаем его к корневому элементу сайта и даем права доступа выбранным группам.