Как объединить два modx?

Как объединить два modx example.com sub.example.com?

Установил на оба сайта, поменял в sub.example.com адреса базы данных на основной. Нашел в документации пост о настройках контекста, отредактировал за исключением последнего пункта(я так понимаю документация не соответствует нынешней версии).

И результат готов на половину, на sub.example.com всё отображается кроме стилей и картинок. А на example.com в менеджере не подтягивается на «2web» стартовая страница. А когда создаю новую, то она идет по стандартному адресу родителя: example.com/page.
Pavel
25 апреля 2024, 21:02
modx.pro
429
0

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

Артур Шевченко
25 апреля 2024, 23:13
0
Как объединить два modx?
Никак. А главное зачем? Если нужно два сайта в одной админке используй контексты. Инструкции по настройке в интернете есть. А делать два сайта с одной БД это дичь какая-то.
    Дима Касаткин
    26 апреля 2024, 02:11
    0
    Это может быть очень удобно, если шаблоны одинаковые либо похожи, контент пересекается (например компания и её филиал, или диффузный бренд или просто раздел вынести на поддомен company.com и blog.company.com нужно сделать по тем или иным причинам.

    У каждого контекста свои настройки, их можно использовать в шаблоне (те же контакты в шапке и т.п.).

    Бонусом получишь обновление движка и пакетов на оба сайта, 1 раз вместо двух создашь любимые TV (обложка для страницы или галерея), 1 раз купишь платный компонент и так далее. На мой взгляд например, совсем не дичь, для этого (в числе прочего) контексты и придуманы в MODX!..
      Артур Шевченко
      26 апреля 2024, 10:37
      0
      Как я понял, коллега установил две админки modx и подключил их к одной БД и, если это так, то это дичь. А контексты это удобно спору нет.
        Pavel
        26 апреля 2024, 11:18
        0
        Никак. А главное зачем?
        я делаю это я в познавательных целях, как это может/должно работать. Ну а плюс информация которую я нахожу в основном старая 7-18-ый года, где версия MODX уже не соответствует нынешней.
        Как я понял, коллега установил две админки modx и подключил их к одной БД и, если это так, то это дичь.
        Я просто посчитал, что если я подключу БД к основному сайту, это должно упростить вывод информации. Но понял что ошибся в своих рассуждениях.
          Артур Шевченко
          26 апреля 2024, 11:28
          0
          в основном старая 7-18-ый года, где версия MODX уже не соответствует нынешней
          Если нынешняя это 3.х, то там глобально в работе с контекстами ничего не изменилось, так что старые инструкции вполне рабочие, главное найти в новом интерфейсе нужные пункты меню.
    Дима Касаткин
    26 апреля 2024, 02:05
    1
    0
    Запустит довольно просто, как раз этим занимался сейчас :) решил и здесь написать:

    Создай второй контекст, создай плагин (в элементах в админке) назови например ContextSwitch и подключи его на OnHandleRequest вот код:
    <?php
    if ($modx->event->name != 'OnHandleRequest' || $modx->context->key == 'mgr') {return;}
    
    // Определяем запрашиваемый хост
    $host = $_SERVER['HTTP_HOST'];
    
    // Выбираем контекст с настройкой http_host
    $q = $modx->newQuery('modContextSetting', array('key' => 'http_host', 'value' => $host));
    $q->select('context_key');
    
    if ($q->prepare() && $q->stmt->execute()) {
        // Получаем ключ контекста
        if ($context = $q->stmt->fetch(PDO::FETCH_COLUMN)) {
            // Web инициализируется в index.php - на него переключаться не нужно
            if ($context != 'web') {
                $modx->switchContext($context);
            }
        }
    }
    Далее в новом контексте укажи настройку (правый клик в админке → редактировать контекст) и добавь туда 2 системные настройки:
    1. site_start (укажи id страницы в новом контексте, её нужно там создать и опубликовать) и это будет главная страница!
    2. http_host (полный адрес url без https и слешей, например sub.example.com)

    И всё должно заработать!
      Pavel
      26 апреля 2024, 11:32
      0
      Это указивать в контекстах админки субдомена или основного?
        Дима Касаткин
        27 апреля 2024, 00:53
        0
        Для второго (и последующих) контекста, то есть того, который имеет имя (key), отличное от web. Где там какой домен или поддомен, разницы нет. Как надо чтобы открывалось, такой адрес и пиши. На хостинге все эти домены направляй в одну папку.

        НО! Если у тебя и правда из двух установленных MODX в разных папках, у которых в core/config/config.inc.php указана одна и та же база с одинаковым значением $table_prefix — то я не знаю что тебе посоветовать, кроме как не пользоваться одной из папок, а настроить работу поддоменов через контексты, как указал выше.

        Дело в том, что в MODX используется файловый кэш, в т.ч. системных настроек и т.п. В момент, когда ты очищаешь кэш, он удаляется и папки core/cache/* и как раз из-за этого могут быть проблемы. Наверное, если отключить вообще весь кэш, то всё будет работать, а почему бы и нет (в познавательных-то целях). Данные все в БД. Отключай короче все кэши, чтобы ничего не записывалось на диск, а всё было в Базе Данных… Но опять же, всякие фотографии, скрипты и стили для фронтенда, они же лежат на диске. При установке любого компонента, его файлы кладутся в папку с установленным MODX, а информация записывается в БД. Из другой папки будет видно инфу, а файлов нет — скорее всего будут ошибки.

        Предполагаю, что комфортная работа не возможна в таких случаях. Но не уверен, возможно в кейсах, когда выносится core из корневой папки, можно использовать его в нескольких установках, но так я ни разу не делал, а в MODX3 такую возможность убрали, так что уже и не представится возможности.

        Короче, используй 1 установленный движок, и контексты :)
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      8