Сышышь ты, выходи сюда,
поговорим !

Робота з контекстами в MODX

  1. Що дає контекст?
  2. Два сайту в одній адмінки
  3. Працює? Працює!

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

Привіт друзі!

Продовжуємо вивчати MODX Revolution. Сьогодні ми поговоримо про основоположний принцип роботи системи, в основі якої лежить поняття «контекст». З точки зору MODX, контекст - це окремий сайт, і при установці системи нам вже доступні 2 контексту. Щоб це перевірити, йдемо в настройки -> пункт меню -> «контексти», і бачимо, що в списку вже встановлено 2 контексту. Перший контекст mgr - це контекст самої адмінки (тобто, админка сприймається як окремий сайт зі своїми настройками, зі своїми сторінками). Другий контекст - контекст веб - це front-end частина сайту, який ми створюємо для користувача.

Другий контекст - контекст веб - це front-end частина сайту, який ми створюємо для користувача

Що дає контекст?

Робота з контекстами дозволяє нам створювати на одній установці MODX мультісайтового і мультимовну структуру проектів. За допомогою кнопки «створити новий контекст» можна створювати окремі сайти на одному двигуні. Побачити, де розташовуються контексти і їх вміст можна в лівому сайт-барі, у вкладці «ресурси». Тут є список, що випадає з іконкою планети, де знаходяться ресурси, сторінки цього контексту. Зараз створимо ще один контекст, в «ключі контексту» введемо, припустимо, msk, в інші поля не будемо нічого вписувати, нехай все буде msk (якщо поле «Ім'я» не заповнено, воно автоматично скопіюється з «ключа контексту»). Ура, ми створили новий контекст! Ви можете оновити сторінку і побачити, що з'явився ще один список, що випадає з іконкою планети.

Створимо для нього власну сторінку, припустимо: «Привіт, Москва» - публікуємо її, і виходить ніби як два сайти - веб-сайт зі своїм головним сторінкою і контекст «msk» зі своєю сторінкою.

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

Щоб двом сайтам працювати на одній установці, потрібно провести ряд процедур:

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

1 параметр - base_url, що відповідає за базовий шлях. Пишемо base_url, і виставляємо його значення - «слеш» / (тобто «від кореня»).

Наступний параметр - це site_url (через нижнє підкреслення!). Це повний url сайту з урахуванням протоколу, тобто пишемо http, припустимо у нас буде сайт МСК, і створимо його як піддомен основного домену: http: //msk.project.loc/ , В кінці обов'язково потрібно поставити слеш.

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 - і ось відкрилася головна сторінка сайту «Привіт, Москва». Використовується те ж саме оформлення, ті ж самі шаблони. Таким чином можна створювати необмежену кількість контекстів і реалізовувати мультимовну або мультісайтового структуру проекту. Де це може знадобитися? Наприклад, у вас є інтернет-магазин, який працює по всій Росії, і ви хотіли б створити на піддоменів розбивку по регіонах. І у кожного регіону будуть свої тематичні сторінки, свій каталог товарів, свої спеціальні пропозиції. Для подібних цілей робота з контекстом цілком підійде. Переваги тут очевидні: у вас єдиний командний центр, ви керуєте усіма сайтами з однієї адмінки; а також, якщо виходить якесь оновлення компонентів або ядра системи, то досить оновити всього лише один двигун - і всі інші сайти отримають це оновлення автоматом.

Ось і все, що я хотів розповісти про контекстах, спасибі велике за увагу і до нових зустрічей!

Ось і все, що я хотів розповісти про контекстах, спасибі велике за увагу і до нових зустрічей

Що дає контекст?
Що дає контекст?
Працює?
Де це може знадобитися?