SVRegions

Определяет регион по поддомену третьего уровня и выводит региональные данные на сайте
Автор дополнения
Александр Палочкин
Пакетов
1
Закачек
1
Обычно отвечает в течение 2 часов
Автор дополнения
Пакетов
1
Закачек
1
Обычно отвечает в течение 2 часов
Версия 1.2.3-pl
Дата выпуска 17.06.2026
Загрузки 0
Просмотры 1
Внимание, этот компонент требует PHP 8.1 или выше!
Внимание, этот компонент несовместим с MODX 3.
SVRegions определяет регион по текущему домену или поддомену и выводит связанные с ним данные через плейсхолдеры MODX. Компонент предназначен для проектов, в которых основной домен и региональные поддомены обслуживаются одной установкой MODX и используют общие ресурсы, шаблоны и чанки.

Например:
example.ru
spb.example.ru
kazan.example.ru
samara.example.ru

При открытии spb.example.ru компонент выбирает запись Санкт-Петербурга, а при открытии kazan.example.ru — запись Казани.

Для добавления нового региона не требуется создавать отдельный контекст или копировать ресурсы сайта. Достаточно направить поддомен на текущую установку MODX и добавить региональную запись. Также поддерживаются отдельные домены, если они обслуживаются той же установкой MODX из одного корневого каталога.

КАК РАБОТАЕТ КОМПОНЕНТ

SVRegions получает текущее имя хоста из HTTP_HOST, находит соответствующую включённую запись региона и устанавливает плейсхолдеры с префиксом region.

Основной регион используется:
  • для основного домена;
  • если включённая запись текущего домена не найдена;
  • как источник значений для пустых полей других регионов.

Например, для каждого региона можно указать собственный город, адрес и карту, но использовать общий телефон из основного региона.

КАКИЕ ДАННЫЕ ПОДДЕРЖИВАЮТСЯ

В стандартную конфигурацию входят:
  • домен или поддомен;
  • название города;
  • предложный падеж названия города;
  • родительный падеж названия города;
  • почтовый индекс;
  • адрес;
  • основной телефон;
  • номер основного телефона для ссылки tel:;
  • дополнительный телефон;
  • номер дополнительного телефона для ссылки tel:;
  • ссылка на Яндекс Карты;
  • код встроенной карты Яндекса;
  • код виджета отзывов Яндекса.
ПЛЕЙСХОЛДЕРЫ

Домен —
[[+region.domain]]
Город —
[[+region.city]]
Предложный падеж —
[[+region.locative]]
Родительный падеж —
[[+region.genitive]]
Почтовый индекс —
[[+region.index]]
Адрес —
[[+region.address]]
Основной телефон —
[[+region.phone]]
Телефон для ссылки tel: —
[[+region.phone_link]]
Дополнительный телефон —
[[+region.phone_2]]
Дополнительный телефон для ссылки tel: —
[[+region.phone_2_link]]
Ссылка на Яндекс Карты —
[[+region.yandex_link]]
Код карты Яндекса —
[[+region.yandex_map]]
Виджет отзывов Яндекса —
[[+region.yandex_review]]

Дополнительные технические плейсхолдеры:

Идентификатор записи —
[[+region.id]]
Дата создания —
[[+region.createdon]]
Дата изменения —
[[+region.editedon]]

Служебные поля published и deleted в плейсхолдеры не выводятся.

КАК ИСПОЛЬЗУЮТСЯ ПЛЕЙСХОЛДЕРЫ

Плейсхолдеры размещаются в существующих шаблонах и чанках MODX. В комплект входит чанк SVRegionExample с готовыми примерами использования региональных плейсхолдеров. Его содержимое можно использовать как образец при настройке собственных шаблонов и чанков.

Один и тот же шаблон на поддомене spb.example.ru выводит данные Санкт-Петербурга, а на kazan.example.ru — данные Казани. Структура страницы и основной контент остаются общими. Меняются только региональные значения: город, адрес, телефоны, карта и отзывы.

УПРАВЛЕНИЕ РЕГИОНАМИ

После установки в панели MODX появляется раздел «Регионы», реализованный на MIGX/MIGXdb. Региональные данные представлены в виде понятных полей. Для повседневного добавления и редактирования регионов программист не требуется — эту работу может выполнять менеджер сайта.

В разделе можно:
  • добавлять и редактировать региональные записи;
  • изменять домены и региональные данные;
  • включать и временно выключать регионы;
  • физически удалять ненужные записи.

Состояние региона можно изменить непосредственно в таблице кликом по значку в колонке «Активен»:
  • зелёная галочка означает, что регион включён;
  • красный крестик означает, что регион выключен.

Для каждой записи также доступно контекстное меню:
  • «Редактировать»;
  • «Опубликовать»;
  • «Снять с публикации»;
  • «Удалить».

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

Действие «Удалить» физически удаляет региональную запись из базы данных. Перед удалением важных данных рекомендуется создать резервную копию.

Для каждого региона указывается точный домен или поддомен без протокола, пути, порта и завершающего слеша.

ПРЕИМУЩЕСТВА
  • одна установка MODX для основного сайта и региональных доменов;
  • общие ресурсы, шаблоны и чанки;
  • добавление нового региона одной записью;
  • отсутствие копий страниц и элементов сайта;
  • централизованное управление региональными данными;
  • редактирование данных без участия программиста;
  • быстрое включение и выключение регионов непосредственно из таблицы;
  • наследование пустых значений от основного региона;
  • точное и предсказуемое определение региона по домену;
  • отсутствие зависимости от GeoIP;
  • поддержка поддоменов третьего уровня и отдельных доменов.

ОТЛИЧИЕ ОТ КОНТЕКСТОВ И МУЛЬТИЯЗЫЧНЫХ КОМПОНЕНТОВ

SVRegions не заменяет контексты MODX и мультиязычные компоненты, а выполняет другую задачу. Контексты и мультиязычные решения управляют различными версиями структуры, страниц или языков сайта. SVRegions используется, когда структура сайта, ресурсы, шаблоны и основной контент остаются общими, а по доменам меняется ограниченный набор региональных данных.

ОГРАНИЧЕНИЯ

SVRegions не создаёт домены и поддомены, не настраивает DNS, веб-сервер и SSL-сертификаты. Все домены должны быть заранее направлены на корневой каталог одной установки MODX. Компонент не определяет местоположение посетителя по IP и не выполняет автоматическое переключение города.

ДЕИНСТАЛЛЯЦИЯ

При штатной деинсталляции удаляются файлы и элементы компонента, включая плагин, пункт меню, MIGX-конфигурацию, системные настройки и пространство имён.

Таблица SVRegions и созданные региональные записи сохраняются. После повторной установки компонента сохранённые данные снова становятся доступны.

Для полного удаления региональных данных таблицу SVRegions необходимо удалить отдельно после создания резервной копии.

СОВМЕСТИМОСТЬ

MODX Revolution 2.6.0–2.8.x.
MIGX 2.13.0 или новее.
PHP и MySQL, совместимые с установленной версией MODX.
Разработка и основное тестирование выполнялись на MODX Revolution 2.8.8.

MODX Revolution 3 текущей версией не поддерживается, поскольку компонент использует MIGX/MIGXdb для ветки MODX 2.

Последние обсуждения в сообществе MODX.pro