[multiSite] - Мультисайт на MODX

Привет! Компонент реализует собственно мультисайт на modx. Что он делает по факту? В зависимости от города он ищет во всей странице ключи в соответствии вашего паттерна и заменяет их на содержимое конкретно этого города.




Особенности:


  1. Компонент не зависит от TV или каких либо полей modx'a он парсит любое все содержимое перед отдачей его на фронт. Например если у вы указываете в TV поле тег [TEST] а в содержимом [TEST1] то они оба спарсятся, да даже если вы просто в верстке зададите [TEST] компонент найдет этот тег и спарсит его
  2. Компонент работает изолированно для каждого ресурса и в редактировании ресурса добавляется вкладка мультисайтовость
  3. Компонент не зависит от компонентов определения города, он анализирует HOST сайта, т.е. его урл и за ключ города берет название поддомена
  4. Также если введен неверный поддомен, компонент не будет создавать дубли, а просто средеректит на базовый урл

Использование:


  1. Переходим пакеты -> multiSite
  2. Создаем города которые нам будут доступны, где:
    Ключ города — поддомен
    Название города — Наименование для вывода на сайте
  3. Переходим в документ/товар/категорию в котором нужно сделать динамический текст
  4. Открываем вкладку Мультисайтовость и создаем новый ключ, где:
    Ключ города — Выбираем город из созданных, если поле пустое — значение будет подтягиваться для основного домена
    Ключ в контенте — название тега который мы будем вставлять в содержимое/tv или прямо в верстку (например [TEST], где TEST — это ключ в контенте)
    Содержимое — это собственно наше динамическое содержимое которое будет выводиться

Вывод городов


Для вывода созданных вами городов используется сниппет getCities у него есть всего лишь один параметр: tpl где вы можете задать ваш кастомный шаблон вывода.
В tpl приходит две переменных cities — массив всех городов и current_city массив текущего города

UPD:


Ребятки, в общем не будет его в modstore, потому что оно перекликается с платным cityFields (да-да, не ChangeDomain как мы выяснили выше), по этому вот вам краткая инструкция как собрать компонент:

  1. Создаем папку Extras у себя на сайте
  2. Клонируем туда репозиторий на github
  3. Запускаем build.php
Исходники
Демо
Pavel Zarubin
10 декабря 2019, 03:17
modx.pro
12
511
+23
Поблагодарить автора Отправить деньги

Комментарии: 27

Pavel Zarubin
10 декабря 2019, 03:18
+1
И да, кстати, по моему я уже где то похожее видел, но порывшись в modstore честно говоря не нашел. Если украл у кого то, простите :)
    Алексей Соин
    10 декабря 2019, 07:49
    0
    Ты имеешь ввиду этот?)
      Николай Савин
      10 декабря 2019, 07:49
      0
      ChangeDomain вроде напоминает
        Михаил
        10 декабря 2019, 11:41
        0
        Он хоть и платный, но находиться в открытом доступе для сборки или ПР на github
          Pavel Zarubin
          10 декабря 2019, 14:13
          0
          Ну он вроде немного не об этом, судя по описанию. Ну значит моя совесть чиста)
            Михаил
            10 декабря 2019, 15:40
            0
            не ну так то он один в один)))
              Pavel Zarubin
              10 декабря 2019, 17:54
              0
              Ну нет, принципиально разные способы разборки ключей, например у тебя добавляются плейсхолдером ключи, и можно использовать я так понимаю только в контенте, у меня же можно использовать хоть в контенте, хоть в шаблоне, хоть в тв полях т.к. парсится уже скомпилированная страница, также я так понимаю что перед созданием контента к ключу нужно сначала создать эти ключи к городам, что не очень удобно, ну короче мб, когда нибудь гляну твой компонент
                Михаил
                10 декабря 2019, 18:25
                0
                ну почему же, плейсхолдеры можешь использовать вообще где угодно, и в шаблоне и в чанке и в ТВ и в настройках. Поэтому и говорю, что тоже самое)
        Andrei Extra
        10 декабря 2019, 12:26
        0
        @Pavel Zarubin Можно ли использовать компонент не для поддоменов, а для разных доменов (site1.ru, site2.ru)?
          Pavel Zarubin
          10 декабря 2019, 14:13
          0
          Можно, если чуть чуть изменить код плагина
          Pavel Zarubin
          11 декабря 2019, 00:55
          +2
          Ребятки, в общем не будет его в modstore, потому что оно перекликается с платным cityFields (да-да, не ChangeDomain как мы выяснили выше), по этому вот вам краткая инструкция как собрать компонент:

          1. Создаем папку Extras у себя на сайте
          2. Клонируем туда репозиторий на github
          3. Запускаем build.php
            Михаил
            11 декабря 2019, 08:52
            +1
            @Leonid Krylov да компонент не пересекатеся с cityFields. Вот с ChangeDomain да, но я не против, что бы его опубликовали. Чем больше разнообразных допов тем лучше.
              srs
              srs
              11 декабря 2019, 11:04
              0
              А на modx.com не хочешь?
                Pavel Zarubin
                11 декабря 2019, 16:05
                +1
                Если кто — то поможет с переводом, то почему бы и нет :)
                Евгений Webinmd
                11 декабря 2019, 11:24
                +1
                фиговая политика
                  Дмитрий
                  11 декабря 2019, 13:02
                  0
                  Старые добрые средние века)
                    Андрей
                    11 декабря 2019, 16:39
                    0
                    В телеге Modstore_pro был опрос по этому поводу (он закреплён в шапке), голосов немного конечно, но результат вполне очевиден.
                  Spirit_Ninja
                  11 декабря 2019, 15:08
                  0
                  блин, жаль…
                    Николай Савин
                    11 декабря 2019, 15:34
                    0
                    core не переименовывал?
                      Pavel Zarubin
                      11 декабря 2019, 16:05
                      0
                      Он не физически перекликается, а идейно )
                    Spirit_Ninja
                    11 декабря 2019, 15:07
                    0
                    Полезно, спасибо!
                      Фарит
                      16 декабря 2019, 13:05
                      0
                      Напишите, пожалуйста, вызов switch case для фенома.
                        Pavel Zarubin
                        16 декабря 2019, 13:06
                        0
                        Чего?
                          Николай Савин
                          16 декабря 2019, 13:09
                          +1
                          Подскажите как MODX установить
                            Фарит
                            16 декабря 2019, 13:10
                            0
                            Как в switch вытянуть город?
                              Pavel Zarubin
                              16 декабря 2019, 13:15
                              0
                              А я откуда знаю как в вашем случае в switch вытянуть город? В компоненте идет стандартный чанк где уже показано как вытянуть текущий выбранный город github.com/pavel-one/multiSite/blob/master/core/components/multisite/elements/chunks/city.tpl

                              А конкретнее в чанк приходит массив городов cities и массив текущего города исходя из урла current_city, распечатывайте их оба, смотрите как вам вытянуть в ваших условиях
                                Фарит
                                16 декабря 2019, 13:17
                                0
                                Спасибо
                          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                          27