[multiSite] - Мультисайт на MODX
Привет! Компонент реализует собственно мультисайт на modx. Что он делает по факту? В зависимости от города он ищет во всей странице ключи в соответствии вашего паттерна и заменяет их на содержимое конкретно этого города.
Для вывода созданных вами городов используется сниппет getCities у него есть всего лишь один параметр: tpl где вы можете задать ваш кастомный шаблон вывода.
В tpl приходит две переменных cities — массив всех городов и current_city массив текущего города
Ребятки, в общем не будет его в modstore, потому что оно перекликается с платным cityFields (да-да, не ChangeDomain как мы выяснили выше), по этому вот вам краткая инструкция как собрать компонент:
Демо
Особенности:
- Компонент не зависит от TV или каких либо полей modx'a он парсит любое все содержимое перед отдачей его на фронт. Например если у вы указываете в TV поле тег [TEST] а в содержимом [TEST1] то они оба спарсятся, да даже если вы просто в верстке зададите [TEST] компонент найдет этот тег и спарсит его
- Компонент работает изолированно для каждого ресурса и в редактировании ресурса добавляется вкладка мультисайтовость
- Компонент не зависит от компонентов определения города, он анализирует HOST сайта, т.е. его урл и за ключ города берет название поддомена
- Также если введен неверный поддомен, компонент не будет создавать дубли, а просто средеректит на базовый урл
Использование:
- Переходим пакеты -> multiSite
- Создаем города которые нам будут доступны, где:
Ключ города — поддомен
Название города — Наименование для вывода на сайте
- Переходим в документ/товар/категорию в котором нужно сделать динамический текст
- Открываем вкладку Мультисайтовость и создаем новый ключ, где:
Ключ города — Выбираем город из созданных, если поле пустое — значение будет подтягиваться для основного домена
Ключ в контенте — название тега который мы будем вставлять в содержимое/tv или прямо в верстку (например [TEST], где TEST — это ключ в контенте)
Содержимое — это собственно наше динамическое содержимое которое будет выводиться
Вывод городов
Для вывода созданных вами городов используется сниппет getCities у него есть всего лишь один параметр: tpl где вы можете задать ваш кастомный шаблон вывода.
В tpl приходит две переменных cities — массив всех городов и current_city массив текущего города
UPD:
Ребятки, в общем не будет его в modstore, потому что оно перекликается с платным cityFields (да-да, не ChangeDomain как мы выяснили выше), по этому вот вам краткая инструкция как собрать компонент:
- Создаем папку Extras у себя на сайте
- Клонируем туда репозиторий на github
- Запускаем build.php
Демо
Поблагодарить автора
Отправить деньги
Комментарии: 27
И да, кстати, по моему я уже где то похожее видел, но порывшись в modstore честно говоря не нашел. Если украл у кого то, простите :)
Ты имеешь ввиду этот?)
ChangeDomain вроде напоминает
Он хоть и платный, но находиться в открытом доступе для сборки или ПР на github
Ну он вроде немного не об этом, судя по описанию. Ну значит моя совесть чиста)
не ну так то он один в один)))
Ну нет, принципиально разные способы разборки ключей, например у тебя добавляются плейсхолдером ключи, и можно использовать я так понимаю только в контенте, у меня же можно использовать хоть в контенте, хоть в шаблоне, хоть в тв полях т.к. парсится уже скомпилированная страница, также я так понимаю что перед созданием контента к ключу нужно сначала создать эти ключи к городам, что не очень удобно, ну короче мб, когда нибудь гляну твой компонент
ну почему же, плейсхолдеры можешь использовать вообще где угодно, и в шаблоне и в чанке и в ТВ и в настройках. Поэтому и говорю, что тоже самое)
@Pavel Zarubin Можно ли использовать компонент не для поддоменов, а для разных доменов (site1.ru, site2.ru)?
Можно, если чуть чуть изменить код плагина
Ребятки, в общем не будет его в modstore, потому что оно перекликается с платным cityFields (да-да, не ChangeDomain как мы выяснили выше), по этому вот вам краткая инструкция как собрать компонент:
- Создаем папку Extras у себя на сайте
- Клонируем туда репозиторий на github
- Запускаем build.php
@Leonid Krylov да компонент не пересекатеся с cityFields. Вот с ChangeDomain да, но я не против, что бы его опубликовали. Чем больше разнообразных допов тем лучше.
А на modx.com не хочешь?
Если кто — то поможет с переводом, то почему бы и нет :)
фиговая политика
Старые добрые средние века)
В телеге Modstore_pro был опрос по этому поводу (он закреплён в шапке), голосов немного конечно, но результат вполне очевиден.
блин, жаль…
core не переименовывал?
Он не физически перекликается, а идейно )
Полезно, спасибо!
Напишите, пожалуйста, вызов switch case для фенома.
Чего?
Подскажите как MODX установить
Как в switch вытянуть город?
А я откуда знаю как в вашем случае в switch вытянуть город? В компоненте идет стандартный чанк где уже показано как вытянуть текущий выбранный город github.com/pavel-one/multiSite/blob/master/core/components/multisite/elements/chunks/city.tpl
А конкретнее в чанк приходит массив городов cities и массив текущего города исходя из урла current_city, распечатывайте их оба, смотрите как вам вытянуть в ваших условиях
А конкретнее в чанк приходит массив городов cities и массив текущего города исходя из урла current_city, распечатывайте их оба, смотрите как вам вытянуть в ваших условиях
Спасибо
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.