Андрей Степаненко

Андрей Степаненко

С нами с 28 октября 2014; Место в рейтинге пользователей: #5
Отправить деньги
Андрей Степаненко
18 мая 2020, 11:54
+1
в этом коде нету переменных, там return
Андрей Степаненко
15 мая 2020, 13:57
1
0
В общем вот решение для dev и product
<?php
switch ($modx->event->name) {
    case 'OnHandleRequest':
        // Загрузка общих настроек
        $site_all = MODX_CORE_PATH . 'config/settings/';
        if (file_exists($site_all) and is_dir($site_all)) {
            foreach (glob($site_all . '*.inc.php') as $file) {
                $response = require($file);
                if (is_array($response)) $modx->config = array_merge($modx->config, $response);
            }
        }
        
        // Конфигурация для сайта с конфигом MODX_CONFIG_KEY
        $site_dir = MODX_CORE_PATH . 'config/settings/' . MODX_CONFIG_KEY.'/';
        
        if (file_exists($site_dir) and is_dir($site_dir)) {
            foreach (glob($site_dir . '*.inc.php') as $file) {
                $response = require($file);
                if (is_array($response)) $modx->config = array_merge($modx->config, $response);
            }
        }
        break;
}
Структура папок
core/config/dev.inc.php
core/config/settings/*.inc.php # здесь общие настройки
core/config/settings/dev/*.inc.php # здесь настройки персонально для dev (MODX_CONFIG_KEY)
Андрей Степаненко
15 мая 2020, 13:10
0
В списке городов хранятся синонимы (Москва, Москве) которые так же пишутся в настройки. Ну это уже здесь не обязательно, можно уже ниже вынести в базу или как в твоем варианте в отдельные файлы.
Андрей Степаненко
15 мая 2020, 13:04
0
Делаю чтобы на основе домена подменялась папка с кэшем, чтобы не вызывало проблем с кэшем на страницах.

Написал плагин, который во время сброса кэша срабатывает и удаляет директории с кэшем городов.
Ну и по аналогии обновление ресурсов при сохранении.

В папке
/core/cache/
создаются папки
/core/cache/city/kemerovo
/core/cache/city/moskva
Собственно так и выяснялось что в классе xPDOCacheManager невозможно изменить cache_path

Есть другие разные ухищрения как можно реализовать подобный функционал, сейчас не об этом.

Текущее решение очень простое и работает)
Андрей Степаненко
15 мая 2020, 12:54
1
0
Лучше так
<?php
switch ($modx->event->name) {
    case 'OnHandleRequest':
        foreach (glob(MODX_CORE_PATH . 'config/settings/*.php') as $file) {
            $response = require ($file);
            if (is_array($response)) $modx->config = array_merge($modx->config, $response);
        }
    break;
}
а то если несколько конфигов будет, то MODX_CONFIG_KEY не поможет.
Андрей Степаненко
15 мая 2020, 12:44
0
Оба вариант подходящие. Но они 100% не рассчитаны на менеджеров сайта))
Андрей Степаненко
15 мая 2020, 12:43
0
Это да, но для работы с двумя сайтами одновременно у тебя в любом случае настройки у dev версии будут отличатся от product

Варианты:
  1. Указывать через конфиг config.inc.php (с удалением записи в бд.)
  2. Добавить плагин через modzone.ru/blog/2016/12/23/downloaded-configs-from-files/
Андрей Степаненко
15 мая 2020, 12:32
0
Почти все:
cache_path — однозначно нужно в файле config.inc.php заменять
Андрей Степаненко
15 мая 2020, 12:28
0
проблем с обновлением в любом случае не будет))
Тут проблем в том что если удалишь site_name то при обновлении он заново будет создан.
Андрей Степаненко
15 мая 2020, 11:36
0
а как?))
Пытался найти как изменить cache_path у класса xPDOCacheManager не нашел)
Андрей Степаненко
15 мая 2020, 10:46
0
То же хороший вариант.
А cache_path кажется не получиться сменить?
Андрей Степаненко
14 мая 2020, 14:51
0
про ClientConfig смысла наверное нету все таки упоминать.
Тут идея в том чтобы иметь разные настройки у сайтов и добавлять новые через файл.
С файлом куда проще работать чем с БД, это еще даже если не брать во внимание работу с git.
Андрей Степаненко
13 мая 2020, 23:18
0
А все сорян) нашел, надо сделать проверку ветки
git fetch GulomovCreative
Андрей Степаненко
13 мая 2020, 23:16
0
Подскажи плиз где найти: «fix-image-trigger-class» в github.com/bezumkin/miniShop2/pulls
Андрей Степаненко
13 мая 2020, 23:08
0
Привет, спасибо)) Чучуть яснее стало.

Надо наверно отдельный раздел заводить GIT+компонент
git remote add GulomovCreative https://github.com/GulomovCreative/miniShop2 && git fetch GulomovCreative && git checkout fix-image-trigger-class
то есть этой строкой проверяем изменения в ветке какого то другова репазитория, и скачиваем из него изменения?
Андрей Степаненко
13 мая 2020, 22:50
0
в 1С есть порциональная выгрузка, если она запускается. Что произойдет?
Андрей Степаненко
13 мая 2020, 22:39
+1
А можно для тупых (p.s. для меня))) Одной строкой, как скачать? Я потом по инструкции уже по шагово разберу)
Просто когда пишут инструкцию для git, никогда не понятно когда ты ошибся)) Аля гляди с первого раза что то получится))
Андрей Степаненко
13 мая 2020, 22:27
0
Немного о другой проблеме (возможно пересекается с текущей):
частенько проблема возникает из-за подключен по https или без
То есть если у тебя сайт на https то адрес подключения должен быть
https://modstore.pro/extras/

если нет то
http://modstore.pro/extras/
При создании зависание происходит и все. Возможно проблема не нова, но постоянно с ней сталкиваюсь

И еще моменто почему требуется именно «modstore.pro» имя вводить? prnt.sc/sg8jfb
С другим не работает.
Андрей Степаненко
07 апреля 2020, 06:52
+1
Лучше не использовать, если в штате нету опытного программиста 1с.
в 1с так заведено, что если ты что то доработал, то при обновлении 1с, ты в ручную все будешь по новой внедрять.