Обратный звонок
17-12-2016
Семён Кудрявцев

MODX. Урок 4: Контексты

 

Пройти базовый Курс по MODX

Привет, друзья!

Продолжаем изучать MODX Revolution. Сегодня мы поговорим об основополагающем принципе работы системы, в основе которой лежит понятие «контекст». С точки зрения MODX, контекст – это отдельный сайт, и при установке системы нам уже доступны 2 контекста. Чтобы это проверить, идем в настройки -> пункт меню -> «контексты», и видим, что в списке уже установлено 2 контекста. Первый контекст mgr – это контекст самой админки (т.е., админка воспринимается как отдельный сайт со своими настройками, со своими страницами). Второй контекст – контекст веб – это front-end часть сайта, который мы создаем для пользователя.

Список контекстов

Что дает контекст?

Работа с контекстами позволяет нам создавать на одной установке MODX мультисайтовую и мультиязычную структуру проектов. С помощью кнопки «создать новый контекст» можно создавать отдельные сайты на одном движке. Увидеть, где располагаются контексты и их содержимое можно в левом сайт-баре, во вкладке «ресурсы». Здесь есть выпадающий список с иконкой планеты, где находятся ресурсы, странички этого контекста. Сейчас создадим еще один контекст, в «ключе контекста» введем, допустим, msk, в остальные поля не будем ничего вписывать, пусть все будет msk (если поле «Имя» не заполнено, оно автоматически скопируется из «ключа контекста»). Ура, мы создали новый контекст! Вы можете обновить страницу и увидеть, что появился еще один выпадающий список с иконкой планеты.

Новый контекст

Создадим для него собственную страницу, допустим: «Привет, Москва» – публикуем ее, и получается вроде как два сайта – веб-сайт со своей главной страницей и контекст «msk» со своей страницей.

Страница контекста

Два сайта в одной админке

Чтобы двум сайтам работать на одной установке, нужно провести ряд процедур:

Во-первых, нам нужно настроить контекст. Настройку можно произвести прямо из левого сайт-бара: правая кнопка мыши -> «редактировать», после чего мы попадаем в настройку контекста. Либо еще один вариант: основные настройки –> контексты -> выбираем контекст, который мы создали –> правая кнопка мыши –> редактировать –> в итоге попадаем на ту же самую страницу. Переходим на вкладку «настройки контекста». Здесь нужно создать четыре ключевых параметра, отвечающих за функциональность контекста.

1 параметр – base_url, отвечающий за базовый путь. Пишем base_url, и выставляем его значение – «слэш» / (то есть «от корня»).

Следующий параметр – это site_url (через нижнее подчеркивание!). Это полный url сайта с учетом протокола, то есть пишем http, допустим у нас будет сайт МСК, и создадим его как поддомен основного домена: http://msk.project.loc/, в конце обязательно нужно поставить слэш.

Создание параметров

Следующий параметр – http хост. Пишем «http_host» с нижним подчеркиванием. Здесь указываем такой же поддомен, только без учета протокола (то есть, пишем «msk.project.lock»).

И последний параметр – необязательный, но желательный – это стартовая страница контекста – site_start. Она выставляется по идентификатору ресурса. Во вкладке «ресурсы» видно, что ресурс msk имеет идентификатор 8, поэтому в поле «Значение» ставим восьмерку, чтобы «msk» стала главной страницей контекста. Сохраняем все 4 параметра и их настройки.

Далее нужно установить компонент, который будет перехватывать запросы пользователя и отдавать им соответствующий контекст. Идем в приложения –> установщик –> загрузить дополнение. Существует два основных дополнения, которые выполняют нужную нам функцию – это contexRouter и X-Routing, загружаем оба. Они выполняют практически одну и ту же работу с небольшими отличиями, поэтому ставить можно любой из них. Итак, установили систему, и больше никаких дополнительных настроек с этим контекстом производить не надо, он уже перехватывает запросы и отдает соответствующий контекст.

Осталось правильно настроить веб-сервер. Так как мы создавали поддомен к основному домену, то находим файловую структуру веб-сервера, ищем проект project.loc и создаем еще один msk.project.loc, то есть создаем пустую папку, она является своеобразным поддоменом.

Файловая структура веб-сервера

Работает? Работает!

Перезапускаем веб-сервис, чтобы он определил новый поддомен. Дальше идем в настройки или заходим во вкладку алиаса, чтобы привязать наш поддомен МСК, msk.project.loc к основному домену, то есть домену project.loc. Добавляем алиас, сохраняем, сервер перезапускается – ура! Все основные настройки сделаны. Возвращаемся в админку, запускаем страницу и смотрим: теперь в адресной строке запускается сайт на поддомене MSK.project.loc – и вот открылась главная страница сайта «Привет, Москва». Используется то же самое оформление, те же самые шаблоны. Таким образом можно создавать неограниченное количество контекстов и реализовывать мультиязычную или мультисайтовую структуру проекта. Где это может потребоваться? Например, у вас есть интернет-магазин, который работает по всей России, и вы хотели бы создать на поддоменах разбивку по регионам. И у каждого региона будут свои контентные страницы, свой каталог товаров, свои специальные предложения. Для подобных целей работа с контекстом вполне подойдет. Преимущества здесь очевидные: у вас единый командный центр, вы управляете всеми сайтами из одной админки; а также, если выходит какое-либо обновление компонентов или ядра системы, то достаточно обновить всего лишь один движок – и все остальные сайты получат это обновление автоматом.

Готовая страница контекста! Ура!

Вот и все, что я хотел рассказать о контекстах, спасибо большое за внимание и до новых встреч!

Самые читаемые: