Всего 125 004 комментария

Николай Савин
19 марта 2025, 18:43
+2
Hello @Henk Everts
Nice to meet you. Thanks for the translate. It is awesome.
Николай Савин
19 марта 2025, 17:13
+1
Здравствуйте. Готового решения конечно же нет в рамках MODX. Но они есть в мире PHP.

Для регулирования частоты запросов к API в PHP можно использовать библиотеку php-ratelimiter или symfony/rate-limiter. Оба инструмента предоставляют удобные способы контроля и ограничения количества запросов за определённый промежуток времени.

К примеру вот так используется php-ratelimiter
use RateLimiter\RateLimiter;
use RateLimiter\Storage\FileStorage;

$storage = new FileStorage('/path/to/storage');
$limiter = new RateLimiter($storage, 100, 3600); // 100 запросов в час

$key = 'user_ip_or_api_key'; // Уникальный идентификатор (например, IP или API-ключ)
if ($limiter->check($key)) {
    // Запрос разрешён
    $limiter->increment($key);
} else {
    // Лимит исчерпан
    http_response_code(429);
    echo 'Too Many Requests';
    exit;
}
Дмитрий
18 марта 2025, 15:16
0
да, да, именно так я и планировал поступить=) Спасибо!
Артур Шевченко
18 марта 2025, 14:46
+2
Зачем ты вообще проверяешь право на удаление? Просто удали этот код
// Проверка прав доступа
    if (!$modx->hasPermission('delete_document')) {
        $modx->log(modX::LOG_LEVEL_ERROR, 'Ошибка: У пользователя нет прав на удаление ресурса с ID ' . $resourceId);
        return $modx->error->failure('У вас нет прав на удаление этого ресурса.');
    }
Евгений Webinmd
18 марта 2025, 13:53
0
Процессоры лежат тут:
core/components/minishop2/processors/mgr/

В статье описано как не изменять исходники, там же и про процессор написано.
При большом желании можно изменить исходник, проверить работает ли сама идея и потом уже переопределять
Дмитрий
18 марта 2025, 13:41
0
Спасибо за наводку! Покурю… кстати, а где сами процессоры minishopa живут? Что называется, что бы за образец взять скрипты. Забегая вперед, я знаю, что изменять исходники — дурной тон=)
Илья
17 марта 2025, 20:04
0
Спасибо, заработало. Понял ошибку, нужно было делать через префикс usr.
Джанго
17 марта 2025, 17:53
+1
спасибо, помогло!
Евгений Webinmd
17 марта 2025, 13:31
0
userId — нет такого параметра у Profile
есть только user
Евгений Webinmd
17 марта 2025, 12:52
0
Вам нужно переопределить процессор getlist скорей всего. Посмотрите вот эту статейку, там есть кусок описания про переопредление. ВОзможно вам поможет.
modx.pro/howto/24899
Павлик Мышкин
17 марта 2025, 09:55
0
Если слово «Восстановить» воспринимать как «Удалить», то все станет на свои места. Удалить запись словаря. Или кнопка внизу Удалить все записи словаря (свои).
Сергей
16 марта 2025, 13:50
0
Постоянно ошибки:
16.03.2025 04:32:29 ERROR /home/f/fb7927nm/site.ru/public_html/core/model/modx/modx.class.php 1042
#0 /home/f/fb7927nm/site.ru/public_html/core/components/antibot/model/antibot.class.php(256): modX->makeUrl('0', 'web', '', 'full')
#1 /home/f/fb7927nm/site.ru/public_html/core/components/antibot/model/antibot.class.php(98): antiBot->verificationRequest()
#2 /home/f/fb7927nm/site.ru/public_html/core/cache/includes/elements/modplugin/81.include.cache.php(9): antiBot->loadHandlerEvent(Object(modSystemEvent), Array)
#3 /home/f/fb7927nm/site.ru/public_html/core/model/modx/modscript.class.php(76): include('/home/f/fb7927n...')
#4 /home/f/fb7927nm/site.ru/public_html/core/model/modx/modx.class.php(1680): modScript->process(NULL)
#5 /home/f/fb7927nm/site.ru/public_html/core/model/modx/modrequest.class.php(70): modX->invokeEvent('OnHandleRequest')
#6 /home/f/fb7927nm/site.ru/public_html/core/model/modx/modx.class.php(1467): modRequest->handleRequest()
#7 /home/f/fb7927nm/site.ru/public_html/index.php(54): modX->handleRequest()
#8 {main}
Николай Савин
16 марта 2025, 09:25
+2
Карма @Денис Усманов увеличена до бесконечности, за такое полезное дело!
Prihod
15 марта 2025, 17:05
0
Выполни в консоли modx
$manager = $modx->getManager();
  $manager->createObjectContainer('MsieCron');
$manager->createObjectContainer('MsiePreset');
$manager->createObjectContainer('MsieTask');
Александр
15 марта 2025, 09:04
0
Сработало, просто нужно было загрузить определенный словарь на страницу принудительно.
Спасибо!
Джанго
14 марта 2025, 22:41
0
Нет, не согласно. вторая версия была установлена поверх.
Теперь я удалил вторую версию, почистил таблицы в бд согласно инструкции.
Заново устанавливаю вторую версию ( при этом все равно высвечивается предупреждение, что вы устанавливаете вторую поверх первой), тем не менее устанавливаю, и в итоге высвечивается таже самая ошибка.
Артур Шевченко
14 марта 2025, 22:36
0
Что это за конструкция
[[!getId?id]]
Можно же получить доступ к гет-параметрам так [[#GET.id]]
Prihod
14 марта 2025, 22:02
0
Первая версия была удалена согласно инструкции?
Джанго
14 марта 2025, 21:19
0
Здравствуйте. Покупал еще 1 версию msImportExport
сейчас обновился до последней, 2й версии
При попытке создания пресета (при импорте или экспорте) возникает модальное окно с ошибкой: «object_err_save»
в логах:
[2025-03-14 21:11:29] (ERROR @ /home/u/.../public_html/core/xpdo/om/xpdoobject.class.php: 1452) Error 42S02 executing statement:
INSERT INTO `XxxX-XxxX_msie_preset` (`token`, `name`, `description`, `mode`, `service`, `fields`, `settings`) VALUES…
Array
(
[0] => 42S02
[1] => 1146
[2] => Table 'db_name.XxxX-XxxX_msie_preset' doesn't exist
)

В БД есть только 4 таблицы от этого компонента:
XxxX-XxxX_msie_access_price
XxxX-XxxX_msie_cron
XxxX-XxxX_msie_head_aliasHide
XxxX-XxxX_msie_presets_fields

Пробовал переустанавливать компонент — безрезультатно. Как устранить проблему?
MODX Revolution 2.8.5-pl, php 7.4, msimportexport-2.0.26-pl