Хочу реализовать мультиязычность и мультидоменность - на русском сайт в RU, на английском COM...

Использую modX3…

Хочу реализовать мультиязычность и мультидоменность, т.е.

для сайта на русском домен в зоне RU, а для английского домен в зоне COM…

Настроил контексты, домены открывает и для RU и для COM…

Но почему-то контент для вывода берет с основного ресурса, и для RU, и для COM,
не меняет содержимое в зависимости от домена…
Матвей
21 апреля 2025, 17:31
modx.pro
160
0

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

Артур Шевченко
21 апреля 2025, 19:50
0
Настроил контексты
Как именно настроил? Указал site_url, site_start, http_host? Плагин для переключения контекстов написал?
    Матвей
    21 апреля 2025, 20:12
    0
    Да, и плагин и site_url, другие параметры…
      Артур Шевченко
      21 апреля 2025, 20:16
      0
      Как ты выводишь содержимое?
        Матвей
        21 апреля 2025, 20:25
        0
        Через *content…
        Во 2м modx и на одном домене — спокойно настраивал мультиязычность и babel, а мультидоменность — почему-то не берет из разных контекстов для разных доменов
          Артур Шевченко
          21 апреля 2025, 20:26
          0
          Плагин на какое событие? Код плагина покажи
            Матвей
            21 апреля 2025, 20:39
            0
            if ($modx->event->name != 'OnMODXInit' || $modx->context->key == 'mgr') {
            return;
            }
            if ($host = str_replace('www.', '', $_SERVER['HTTP_HOST'] ?: $_SERVER['SERVER_NAME'])) {
            // Выбираем контексты с настройкой http_host
            $q = $modx->newQuery('modContextSetting', array('key' => 'http_host', 'value:!=' => ''));
            $q->select('context_key as ctx, value as host');

            $tstart = microtime(true);
            if ($q->prepare() && $q->stmt->execute()) {
            // Учитываем наш запрос в БД
            $modx->queryTime += microtime(true) — $tstart;
            $modx->executedQueries++;

            while ($row = $q->stmt->fetch(PDO::FETCH_ASSOC)) {
            // Если нашли нужный контекст — переключаем на него
            if ($row['host'] == $host) {
            $modx->switchContext($row['ctx']);
            break;
            }
            }
            }
            }
              Артур Шевченко
              21 апреля 2025, 20:43
              0
              ты проверял переключается ли контекст?
                Матвей
                21 апреля 2025, 20:46
                0
                как это сделать?
                  Артур Шевченко
                  21 апреля 2025, 20:50
                  0
                  В шаблоне вывести ключ контекста [[*context_key]]
                    Матвей
                    21 апреля 2025, 20:54
                    0
                    пустой...(
                      Артур Шевченко
                      21 апреля 2025, 20:57
                      0
                      Ты в шаблоне прописал?
                      Матвей
                      21 апреля 2025, 21:09
                      0
                      да
                      Артур Шевченко
                      21 апреля 2025, 21:16
                      0
                      Если ты прописал в шаблоне [[*context_key]], то он обязан был вывестись. Тут есть два варианта: ты его не видишь из-за стилей, ты прописал не в шаблоне. Есть и третий, ты не копировал, а набирал буквы сам и опечатался.
                      Матвей
                      22 апреля 2025, 13:09
                      0
                      Вопрос решил. Переустановил modx… И чудо — всё заработало…
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
14