MiniShop2 - Меняющийся контекст модуля.
Доброго дня!
Уже задавал сей вопрос и ответа не получил. Только сарказм.
Не знаю как это описать словами но постоянно меняется язык MiniShop2 (именно MiniShop2 и нечего больше)
Язык меняется на английский, но ломаный. Половина слов выводиться как переменные без заполненных полей в словорях
Что контекст сменился вижу в первую очередь так:
Потом захожу в заказы и вижу:
Видно что у контекста словарный запас ограничен и слова «Заказы» мы не видим, а только пустое поле.
Ок! Идём дальше!
Особо внимательные заметят, что тут отсутствует вкладка — «Заказ».
Это была админка.
Теперь фронтенд.
Страница корзины:
Страница оформления заказа:
Если вычистить весь кеш, то проблема временно исчезает и MiniShop становиться русским, но как -то вдруг всё что на скринах возвращается в рандомном порядке.
Письма так-же приходят в момент такого коллапса.
Контекст у меня стоит по умолчанию русский и язык меняется только в MiniShop2.
Я не знаю — что это и соответственно не знаю этому названия и как адать яндексу вопрос тоже нензнаю, по этому уже второй раз пишу сюда.
Уже задавал сей вопрос и ответа не получил. Только сарказм.
Не знаю как это описать словами но постоянно меняется язык MiniShop2 (именно MiniShop2 и нечего больше)
Язык меняется на английский, но ломаный. Половина слов выводиться как переменные без заполненных полей в словорях
Что контекст сменился вижу в первую очередь так:
Потом захожу в заказы и вижу:
Видно что у контекста словарный запас ограничен и слова «Заказы» мы не видим, а только пустое поле.
Ок! Идём дальше!
Особо внимательные заметят, что тут отсутствует вкладка — «Заказ».
Это была админка.
Теперь фронтенд.
Страница корзины:
Страница оформления заказа:
Если вычистить весь кеш, то проблема временно исчезает и MiniShop становиться русским, но как -то вдруг всё что на скринах возвращается в рандомном порядке.
Письма так-же приходят в момент такого коллапса.
Контекст у меня стоит по умолчанию русский и язык меняется только в MiniShop2.
Я не знаю — что это и соответственно не знаю этому названия и как адать яндексу вопрос тоже нензнаю, по этому уже второй раз пишу сюда.
Комментарии: 15
Похожие глюки тоже иногда наблюдал, хостинг какой? Права на папки все верные? Пробовал переустановку минишопа? Как давно начался такой цирк?
Добрый день. Такой цирк начался месяца полтора или 2 назад.
не хочу вести беспочвенных обвинений, но началось — это после того-как я попросил помощи у местного разработчика Валоди поправить купленный у него модуль msOptionPrice 2.
Для решения проблемы давал ему доступ к админке и после этого всё и началось. Но поскольку он вносил изменения только в свой модуль, то я не могу сопоставить его вмешательство и данную проблему.
Хостинг — Мастерхост
Права на папки отродясь никто не трогал.
не хочу вести беспочвенных обвинений, но началось — это после того-как я попросил помощи у местного разработчика Валоди поправить купленный у него модуль msOptionPrice 2.
Для решения проблемы давал ему доступ к админке и после этого всё и началось. Но поскольку он вносил изменения только в свой модуль, то я не могу сопоставить его вмешательство и данную проблему.
Хостинг — Мастерхост
Права на папки отродясь никто не трогал.
Проблема видится в правах на папки внутри кеша, где кешируются словари. Или еще какой переполох там же. У себя встречал пару раз, когда заходил через консоль (ssh) поправить файл руками и забывал переключить пользователя. Тут вероятно что-то похожее, скорее всего в консоли ошибок полно сообщений о том, что не удалось кешировать какой-то лексикон и прочее. Из-за этого и такие глюки дикие. Учитывая, что переводы кешируются в один здоровенный файл, возможно какие-то настройки сервера (хостинга) ограничивают размер или время для генерации полного файла переводов и какие-то части теряются. Однозначно ответить, что сломалось, сложно. Нужно разбираться в вашем случае детально, смотреть логи сервера, MODX и прочее.
Возможно и место на хостинге закончилось, был случай когда MODX генерировал очень много кэша, весь доступный лимит по inode. В результате чего и появлялись всякие глюки. После чистки кэша работало все норм, а потом снова начиналось.
Раз уж много людей ссылаются на права записи, то временно установил 777 для теста, было 755, хотя ранее неудобств не доставляло.
И как? Помогло?
У меня проблема такая же. Уже полгода как.
Выключил Minifyx — проблема стала появляться реже, но стабильно раз в 1-2 недели, и приходится чистить кеш. Тоже не знаю как это починить. :(
В логах ошибок сервака пусто. В логах модыкса часто одно и то же:
Пример гейта:
PHP Version 5.4.45-1+mh1
miniShop2 2.4.10-pl
Выключил 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
Нашел способ исправить поломку словарей на фронте.
1. Удалил полностью MinifyX. Он оказывается у меня сжимал скрипты, даже не вызываясь в шаблоне, была настройка в админке.
2. Добавил в начало tpl.msOrder:
А в tpl.msCart строчку:
Все, словари больше не слетают во фронте.
Осталась только разобраться с jgrowl, там так и висит на другом контексте «ms2_cart_change_success».
1. Удалил полностью MinifyX. Он оказывается у меня сжимал скрипты, даже не вызываясь в шаблоне, была настройка в админке.
2. Добавил в начало tpl.msOrder:
{$_modx->lexicon->load('MiniShop2:default')}
А в tpl.msCart строчку:
{$_modx->lexicon->load('MiniShop2:cart')}
Все, словари больше не слетают во фронте.
Осталась только разобраться с jgrowl, там так и висит на другом контексте «ms2_cart_change_success».
У меня такая же проблема с последней версией 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 но помогает только для текущей сессии, открыв в другом брауезере естественно проблема сохраняется.
В логах тоже ошибки:
При смене языка на Английский все отображается правильно на Английском, затем снова переключаюсь на Русский и все лексиконы 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
Такая же проблема. Решили как-то?
Нет, проблема актуальна. Не знаю, как ее решать. Думаю тут должно спасти только обновление Василия!
Проблема до сих пор существует…
Для демонстрации запустил всё это на тестовом сервере на 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. И после фильтрации записи словаря снова отображаются коряво…
Для демонстрации запустил всё это на тестовом сервере на 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. И после фильтрации записи словаря снова отображаются коряво…
Ещё такая конструкция в шаблоне помогает
P.S. В шаблоне только
{$_modx->lexicon->load($_modx->config['cultureKey'] ~ ':minishop2:default')}
но это не похоже на изящное решение.P.S. В шаблоне только
[[!msProducts]]
Эх, так никто и не смог найти проблему. :(
Подскажите никто решение проблемы не нашел? у меня такая же проблема. на контексте с английским все гуд а на контексте с русским вот так
ms2_frontend_currency
ms2_frontend_count_unit
ms2_product_size
ms2_frontend_credentials
ms2_frontend_payments
добавляю к адресу текущей страницы ?cultureKey=ru отображается как надо переходишь на другую все ломается опять.
ms2_frontend_currency
ms2_frontend_count_unit
ms2_product_size
ms2_frontend_credentials
ms2_frontend_payments
добавляю к адресу текущей страницы ?cultureKey=ru отображается как надо переходишь на другую все ломается опять.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.