Несколько фокусов с CMS Joomla! Отображение заглушки «сайт в разработке» для всех и всего сайта для избранных
- Опубликовано: 25.02.2017
- Автогенерация и отображение эскизов фотоальбомов модулем RokBox
- Доработка горизонтального меню-списка для динамического разворачивания подпунктов
- Единая кнопка «Сохранить изменения» для корзины Интернет-магазина VirtueMart
- Изменение/снятие ограничений на длину строки поиска и его попутная доработка
- Исправление ссылки на главную/домашнюю в горизонтальном меню старого стиля
- Модернизация сайтов на Joomla! старых версий 1.5/2.5 до актуальной 3.6
- Отображение заглушки «сайт в разработке» для всех и всего сайта для избранных
- Подсветка пункта меню типа «внешняя ссылка», или Как сделать ссылки на категории VirtueMart
- Преобразование адресов сайта в дружественные (SEF) для внешних нужд
- Реализация двуязычного сайта с постраничным переключением языков
- Удаление значка печати из списка статей при сохранении его на странице статьи
Отображение заглушки «сайт в разработке» для всех и всего сайта для избранных
По умолчанию в CMS Joomla! имеется два основных режима работы сайта («Административная панель» > «Сайт» > «Общие настройки» > «Сайт» > «Установки сайта» > «Сайт выключен»: «Нет»/«Да»):
- включен – сайт работает и доступен для всех, с учётом уровней доступа к отдельным его частям, конечно;
- выключен – сайт находится на обслуживании/обновляется и доступен только в административном исполнении избранным пользователям.
(Для справки: в выключенном режиме сайт по умолчанию отображает страницу /templates/system/offline.php, которую можно переопределить в вашем шаблоне (отобразить в вашем дизайне) как /templates/<шаблон>/offline.php.)
В случае, когда сайт ещё только создаётся (“under construction“), и заказчику хочется отслеживать его развитие, но при этом не «позориться» перед остальной публикой, штатный вариант выключения Joomla-сайта не подходит – сайт должен быть включен, но работать только для «избранных». Естественно, «избранные» при этом должны как-то идентифицироваться. Ну а чтобы не мучить их (тем более что «они» – это обычно Заказчик) запоминанием и вводом какого-либо секретного имени-пароля, лучше всего это сделать через использование «секретного» адреса, то есть обычного адреса сайта с некоторым «секретным» параметром. А чтобы при этом не таскать за собой этот параметр по всем адресам всех страниц сайта, после первого обращения его нужно просто записать в переменную сеанса.
И снова немного вмешательства в код (тоже небольшое), но на этот раз в код вашего шаблона:
/templates/<шаблон>/index.php
…
session_start();
if (($_GET["showto"] != "siteowners") && ($_SESSION["showto"] != "siteowners")) Header("Location: http://<домен>/underconstruction.html");
if ($_GET["showto"] == "siteowners") $_SESSION["showto"] = "siteowners";
…
Только если вы будете использовать моё решение, не забудьте в целях безопасности изменить название «секретного» параметра showto и/или его значения siteowners. 😊