MiniShop2 - Меняющийся контекст модуля.

Доброго дня!

Уже задавал сей вопрос и ответа не получил. Только сарказм.

Не знаю как это описать словами но постоянно меняется язык MiniShop2 (именно MiniShop2 и нечего больше)
Язык меняется на английский, но ломаный. Половина слов выводиться как переменные без заполненных полей в словорях

Что контекст сменился вижу в первую очередь так:



Потом захожу в заказы и вижу:


Видно что у контекста словарный запас ограничен и слова «Заказы» мы не видим, а только пустое поле.

Ок! Идём дальше!



Особо внимательные заметят, что тут отсутствует вкладка — «Заказ».

Это была админка.

Теперь фронтенд.

Страница корзины:



Страница оформления заказа:



Если вычистить весь кеш, то проблема временно исчезает и MiniShop становиться русским, но как -то вдруг всё что на скринах возвращается в рандомном порядке.

Письма так-же приходят в момент такого коллапса.

Контекст у меня стоит по умолчанию русский и язык меняется только в MiniShop2.

Я не знаю — что это и соответственно не знаю этому названия и как адать яндексу вопрос тоже нензнаю, по этому уже второй раз пишу сюда.
Алексей
12 июня 2017, 13:07
modx.pro
1
2 403
0

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

Василий Столейков
13 июня 2017, 05:24
0
Похожие глюки тоже иногда наблюдал, хостинг какой? Права на папки все верные? Пробовал переустановку минишопа? Как давно начался такой цирк?
    Алексей
    13 июня 2017, 11:01
    0
    Добрый день. Такой цирк начался месяца полтора или 2 назад.

    не хочу вести беспочвенных обвинений, но началось — это после того-как я попросил помощи у местного разработчика Валоди поправить купленный у него модуль msOptionPrice 2.

    Для решения проблемы давал ему доступ к админке и после этого всё и началось. Но поскольку он вносил изменения только в свой модуль, то я не могу сопоставить его вмешательство и данную проблему.

    Хостинг — Мастерхост
    Права на папки отродясь никто не трогал.
    Іван Клімчук
    13 июня 2017, 11:13
    0
    Проблема видится в правах на папки внутри кеша, где кешируются словари. Или еще какой переполох там же. У себя встречал пару раз, когда заходил через консоль (ssh) поправить файл руками и забывал переключить пользователя. Тут вероятно что-то похожее, скорее всего в консоли ошибок полно сообщений о том, что не удалось кешировать какой-то лексикон и прочее. Из-за этого и такие глюки дикие. Учитывая, что переводы кешируются в один здоровенный файл, возможно какие-то настройки сервера (хостинга) ограничивают размер или время для генерации полного файла переводов и какие-то части теряются. Однозначно ответить, что сломалось, сложно. Нужно разбираться в вашем случае детально, смотреть логи сервера, MODX и прочее.
      t.g
      t.g
      13 июня 2017, 11:45
      0
      Возможно и место на хостинге закончилось, был случай когда MODX генерировал очень много кэша, весь доступный лимит по inode. В результате чего и появлялись всякие глюки. После чистки кэша работало все норм, а потом снова начиналось.
        Алексей
        13 июня 2017, 12:19
        0
        Раз уж много людей ссылаются на права записи, то временно установил 777 для теста, было 755, хотя ранее неудобств не доставляло.
          Scorp Satex
          23 сентября 2017, 02:27
          0
          И как? Помогло?
          Scorp Satex
          13 июня 2017, 18:20
          0
          У меня проблема такая же. Уже полгода как.

          Выключил Minifyx — проблема стала появляться реже, но стабильно раз в 1-2 недели, и приходится чистить кеш. Тоже не знаю как это починить. :(

          В логах ошибок сервака пусто. В логах модыкса часто одно и то же:

          [2017-06-06 14:55:52] (ERROR @ /home/u00000/site.ru/www/core/model/modx/modcachemanager.class.php : 344) Error caching lexicon topic lexicon/ru/minishop2/default
          [2017-06-06 14:55:52] (ERROR @ /home/u00000/site.ru/www/core/model/modx/modcachemanager.class.php : 344) Error caching lexicon topic lexicon/en/core/default
          [2017-06-06 14:55:52] (ERROR @ /home/u00000/site.ru/www/core/model/modx/modcachemanager.class.php : 344) Error caching lexicon topic lexicon/ru/core/default
          [2017-06-06 14:55:52] (ERROR @ /home/u00000/site.ru/www/core/model/modx/modcachemanager.class.php : 394) Error caching action map mgr/actions
          Тоже мастерхост, тот же глюк с кешем как в сабже. Но у меня двухязычный сайт. Сделано через Babel и гейт.

          Пример гейта:

          <?php
          // Работаем только на фронтенде и только с friendly urls
          if ($modx->event->name != 'OnHandleRequest' || $modx->context->key == 'mgr' || !$modx->getOption('friendly_urls')) {return;}
          
          // Получаем запрашиваемый url
          $alias = $modx->getOption('request_param_alias', null, 'alias', true);
          $request = &$_REQUEST[$alias];
          
          // Выбираем контексты с настройкой base_url
          $q = $modx->newQuery('modContextSetting', array('key' => 'base_url', 'value:!=' => ''));
          $q->select('context_key,value');
          
          $contexts = array();
          $tstart = microtime(true);
          if ($q->prepare() && $q->stmt->execute()) {
          	// Учитываем наш запрос в БД
          	$modx->queryTime += microtime(true) - $tstart;
          	$modx->executedQueries++;
          	// Разбираем результаты
          	while ($row = $q->stmt->fetch(PDO::FETCH_ASSOC)) {
          		$base_url = trim($row['value'], '/');
          		$context = $row['context_key'];
          		// Если запрос начинается с base_url какого-то контекста
          		if (preg_match('/^('.$base_url.')\//i', $request)) {
          			// То переключаемся на этот контекст
          			// Web инициализируется в index.php - на него переключаться не нужно
          			if ($context != 'web') {
          				$modx->switchContext($context);
          			}
          			// Вырезаем base_url из запроса, чтобы MODX нашел ресурс по uri
          			$request = preg_replace('/^'.$base_url.'\//', '', $request);
          			// Дело сделано - выходим из цикла
          			break;
          		}
          	}
          }
          MODX Revolution 2.5.7-pl (traditional)
          PHP Version 5.4.45-1+mh1
          miniShop2 2.4.10-pl
            Scorp Satex
            01 июля 2017, 13:55
            0
            Нашел способ исправить поломку словарей на фронте.

            1. Удалил полностью MinifyX. Он оказывается у меня сжимал скрипты, даже не вызываясь в шаблоне, была настройка в админке.

            2. Добавил в начало tpl.msOrder:

            {$_modx->lexicon->load('MiniShop2:default')}

            А в tpl.msCart строчку:

            {$_modx->lexicon->load('MiniShop2:cart')}

            Все, словари больше не слетают во фронте.

            Осталась только разобраться с jgrowl, там так и висит на другом контексте «ms2_cart_change_success».
              Сергей Глазунов
              02 сентября 2017, 20:09
              0
              У меня такая же проблема с последней версией MiniShop2 2.4.11 — Послу установки было нормально, только опции отображались не текстом, а модификаторы ms2_product_size.
              При смене языка на Английский все отображается правильно на Английском, затем снова переключаюсь на Русский и все лексиконы MiniShop отображаются такими модификаторами:
              ms2_frontend_currency
              ms2_frontend_count_unit
              ms2_product_size
              ms2_frontend_credentials
              ms2_frontend_payments

              В общем везде… Удаление кэша из папки не помогает, очистка кэша из Админки не помогает.
              Помогает только добавив к URL в адресной строке ?cultureKey=ru но помогает только для текущей сессии, открыв в другом брауезере естественно проблема сохраняется.

              В логах тоже ошибки:
              public_html/core/model/modx/modcachemanager.class.php : 344) Error caching lexicon topic lexicon/ru/core/default
              public_html/core/model/modx/modcachemanager.class.php : 394) Error caching action map mgr/actions
              public_html/core/model/modx/modcachemanager.class.php : 344) Error caching lexicon topic lexicon/en/msop2/default
              public_html/core/model/modx/modcachemanager.class.php : 344) Error caching lexicon topic lexicon/ru/msop2/defaultpublic_html/core/model/modx/modcachemanager.class.php : 344) Error caching lexicon topic lexicon/ru/msop2/manager
                Александр
                10 октября 2017, 18:57
                0
                Такая же проблема. Решили как-то?
                  Сергей Глазунов
                  10 октября 2017, 19:19
                  0
                  Нет, проблема актуальна. Не знаю, как ее решать. Думаю тут должно спасти только обновление Василия!
                    Александр
                    16 ноября 2017, 01:01
                    0
                    Проблема до сих пор существует…
                    Для демонстрации запустил всё это на тестовом сервере на modhost, там точно также эта ошибка срабатывает…

                    Страница на русском: s11792.h9.modhost.pro/category/


                    На английском: s11792.h9.modhost.pro/en/category/ — не отображает значения словаря minishop2


                    На английском: s11792.h9.modhost.pro/en/category/?cultureKey=en — всё работает…


                    Настройки en контекста:


                    Если через .htaccess прописывать cultureKey, то всё ок до тех пор, пока не срабатывают ajax-запросы, например, в mfilter2. И после фильтрации записи словаря снова отображаются коряво…
                      Александр
                      16 ноября 2017, 01:12
                      0
                      Ещё такая конструкция в шаблоне помогает
                      {$_modx->lexicon->load($_modx->config['cultureKey'] ~ ':minishop2:default')}
                      но это не похоже на изящное решение.

                      P.S. В шаблоне только
                      [[!msProducts]]
                Scorp Satex
                23 сентября 2017, 02:25
                0
                Эх, так никто и не смог найти проблему. :(
                  Ishvan
                  01 мая 2018, 14:59
                  0
                  Подскажите никто решение проблемы не нашел? у меня такая же проблема. на контексте с английским все гуд а на контексте с русским вот так
                  ms2_frontend_currency
                  ms2_frontend_count_unit
                  ms2_product_size
                  ms2_frontend_credentials
                  ms2_frontend_payments
                  добавляю к адресу текущей страницы ?cultureKey=ru отображается как надо переходишь на другую все ломается опять.
                    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                    15