7 часов назад
Здравствуйте, подскажите, удалось ли решить проблему и как?
Как настроить Babel, чтобы не было мучительно больно 36
Вчера в 21:28
Проблема была другого уровня. На VDS был указан ip6 который давно мне не принадлежал… благо разобрались. и все сайты вновь рабочие.
Долгая загрузка сайта из за яндекс метрики 2
20 сентября 2024, 16:19
Ага, верное замечание.
Я только для formit писал. И исправили верно сниппет.
Если я доберусь до github и будет свободное время — нужно сделать о...
YaSmartCaptcha - защитите ваши формы от спама умной капчей от Яндекс 2
20 сентября 2024, 12:21
Я пробовал так, в итоге происходит так, что при релизе сайта с одного окружения (stage) на другое (prod) методом миграции базы данных, мигируются и си...
Использование системных настроек из файла конфигурации 3
20 сентября 2024, 08:34
Вообще очень правильный вопрос.
Как перенести конфигурации migx в статичные файлы из БД? 8
19 сентября 2024, 11:57
Подскажите пожалуйста, не понял из описания.
Осуществляет ли модуль выгрузку товаров и структуру каталога ИЗ Б24 на сайт?
и далее синхронизирует це...
Анонс modB24CRM 20
17 сентября 2024, 16:47
Подскажите подойдет ли данный компонент для такой задачи:
Нужно, чтобы покупатель на странице оформления заказа прикрепил файл с реквизитами компании...
[msOrderFiles] 1.1.0 - Загрузка файлов к заказу из фронт-энда 2
17 сентября 2024, 14:29
Спасибо! работает) До такого я бы точно не додумался)
easyComm - комментарии, отзывы, вопросы на сайте 534
Всего 123 609 комментариев
Вчера лег СДЭК, его апи не работает.
У клиента сайт на Modx 2.8.3 + miniShop2 3.0.7 + ms_CDEK2 2.1.2 + CDEKIntegrate 1.1.10
После того как легло API СДЭКА клиентский сайт начал выдавать 500 ошибку при попытке просмотра заказов в админке и оформление заказов на фронте.
Пришлось деинсталировать плагин, чтобы магазин заработал.
По логам вот так
[27-May-2024 15:16:52 Europe/Moscow] PHP Fatal error: Uncaught CdekSDK2\Exceptions\RequestException: Idle timeout reached for «api.cdek.ru/v2/oauth/token». in /home/.../public_html/core/components/cdekintegrate/model/vendor/cdek-it/sdk2.0/src/Http/Api.php:246
Stack trace:
#0 /home/.../public_html/core/components/cdekintegrate/model/vendor/cdek-it/sdk2.0/src/Http/Api.php(192): CdekSDK2\Http\Api->request('POST', 'https://api.cde...', Array)
#1 /home/.../public_html/core/components/cdekintegrate/model/vendor/cdek-it/sdk2.0/src/Http/Api.php(149): CdekSDK2\Http\Api->post('/oauth/token', Array)
#2 /home/.../public_html/core/components/cdekintegrate/model/vendor/cdek-it/sdk2.0/src/Client.php(210): CdekSDK2\Http\Api->authorize()
#3 /home/.../public_html/core/components/cdekintegrate/model/cdekintegrate.class.php(82): CdekSDK2\Client->authorize()
#4 /home/.../public_html/core/xpdo/xpdo.class.php(1235): cdekIntegrate->__construct(Object(modX), Array)
#5 /home/.../public_html/core/cache/includes/elements/modplugin/39.include.cache.php(5): xPDO->getService('cdekIntegrate', 'cdekIntegrate', '/home/f/f4udest...', Array)
#6 /home/.../public_html/core/model/modx/modscript.class.php(76): include('/home/f/f4udest...')
#7 /home/.../public_html/core/model/modx/modx.class.php(1674): modScript->process(NULL)
#8 /home/.../public_html/core/components/minishop2/model/minishop2/minishop2.class.php(1045): modX->invokeEvent('msOnCreateOrder', Array)
#9 /home/.../public_html/core/components/minishop2/handlers/msorderhandler.class.php(432): miniShop2->invokeEvent('msOnCreateOrder', Array)
#10 /home/.../public_html/core/components/minishop2/model/minishop2/minishop2.class.php(207): msOrderHandler->submit(Array)
#11 /home/.../public_html/core/cache/includes/elements/modplugin/22.include.cache.php(20): miniShop2->handleRequest('order/submit', Array)
#12 /home/.../public_html/core/model/modx/modscript.class.php(76): include('/home/f/f4udest...')
#13 /home/.../public_html/core/model/modx/modx.class.php(1674): modScript->process(NULL)
#14 /home/.../public_html/core/model/modx/modrequest.class.php(70): modX->invokeEvent('OnHandleRequest')
#15 /home/.../public_html/core/model/modx/modx.class.php(1461): modRequest->handleRequest()
#16 /home/.../public_html/index.php(54): modX->handleRequest()
#17 /home/.../public_html/assets/components/minishop2/action.php(12): require('/home/f/f4udest...')
#18 {main}
thrown in /home/.../public_html/core/components/cdekintegrate/model/vendor/cdek-it/sdk2.0/src/Http/Api.php on line 246
Хорошо бы добавить проверку на доступность API СДЭКА, чтобы сайты не падали.
А так плагин очень нужный и экономит много времени менеджеру.
Cниппет ms_CDEK2
1. Одну строку комментируем, новую добавляем:
//$modx->regClientScript('https://www.cdek.ru/website/edostavka/template/js/widjet.js');
$modx->regClientScript('https://cdn.jsdelivr.net/gh/cdek-it/widget@2.5.5/widget/widjet.js');
2. Еще одну строку ниже комментируем, а новую добавляем:
//path: «www.cdek.ru/website/edostavka/template/scripts/»,
path: «cdn.jsdelivr.net/gh/cdek-it/widget@2.5.5/widget/scripts/»,
$mediaSourcePath = ' ';
$bindMediaSourceTv = true;
Это так и должно быть или нужно перед запуском скрипта какие-то еще манипуляции делать? Или скрипт надо только на чистый сайт запускать?
Вы пишите мне в ответе то, что я написал в сообщении, в тексте вопроса. Я знаю как вывести это используя fenom, а как на smarty — нет.
На данный момент, я смог получить id родителя, но как его использовать далее, чтобы получить pagetitle у родителя например, пока не пойму. Мб, заработался…
1. **Инициализация класса**: В конструкторе класса `msCartCustomHandler` вызывается конструктор родительского класса `msCartHandler`, чтобы корректно инициализировать объект.
2. **Вызов `getService`**: В методе `someMethod` происходит вызов `getService`, который загружает и инициализирует необходимый компонент (в данном примере `myComponent`).
3. **Проверка и использование**: Проверяется, что возвращаемое значение действительно является экземпляром необходимого класса компонента, после чего можно использовать методы этого компонента.
Этот подход позволяет вам гибко использовать функциональность различных компонентов MODX в вашем наследуемом классе.
### .htaccess
В файле .htaccess у вас всё верно настроено для переадресации запросов на index.php с соответствующим `cultureKey` и `q`. Однако, убедитесь, что у вас есть следующие строки в начале файла:
```apache
RewriteEngine On
RewriteBase /
```
### Роутинг
Ваш скрипт переключения контекстов выглядит правильно, но добавьте дополнительную обработку для других языков и `cultureKey`. Также убедитесь, что у вас есть все необходимые контексты в MODX.
### Пример улучшенного роутинга
```php
<?php
if ($modx->context->get('key') != «mgr») {
$allowedLanguages = ['en', 'ua', 'ru', 'fr', 'de'];
$cultureKey = isset($_REQUEST['cultureKey'])? $_REQUEST['cultureKey']: 'en';
if (in_array($cultureKey, $allowedLanguages)) {
$modx->switchContext($cultureKey);
} else {
$modx->switchContext('web');
}
unset($_GET['cultureKey']);
}
```
### Проверка контекстов и ресурсов
1. Убедитесь, что контексты `en`, `ua`, `ru`, `fr`, `de` существуют в системе.
2. Проверьте, что ресурс `franchiza` существует в каждом контексте и имеет одинаковый alias.
3. Перейдите в менеджер ресурсов и убедитесь, что все ресурсы переведены и имеют правильные alias.
### Дополнительные настройки Babel
Убедитесь, что Babel правильно настроен для всех контекстов:
1. Перейдите в «Системные настройки» -> Babel.
2. Проверьте значения настройки `babel.contextKeys` (ключи всех контекстов, разделенные запятыми).
### Пример настройки Babel
```plaintext
babel.contextKeys = en,ua,ru,fr,de
```
Если проблема сохраняется, проверьте журнал ошибок MODX на наличие дополнительных подсказок.
Данный код выполняет следующие действия:
1. Получает ID родителя текущего ресурса.
2. Использует этот ID для получения ID «дедушки» (родителя родителя).
3. Выводит заголовок страницы «дедушки» по его ID.
Этот способ достаточно прост и позволяет получить необходимые данные без использования дополнительных сниппетов.
Если у вас есть вопросы или нужна дополнительная информация, пожалуйста, обращайтесь.