Финансовая поддержка VPS, бесплатные дополнения и docs Донаты оплачивают сервер и двигают бесплатные дополнения MODX и документацию. Поддержать

Всего 126 115 комментариев

Николай Савин
Николай Савин
Здравствуйте. Готового решения конечно же нет в рамках 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;
}
Артур Шевченко
Артур Шевченко
Зачем ты вообще проверяешь право на удаление? Просто удали этот код
// Проверка прав доступа
    if (!$modx->hasPermission('delete_document')) {
        $modx->log(modX::LOG_LEVEL_ERROR, 'Ошибка: У пользователя нет прав на удаление ресурса с ID ' . $resourceId);
        return $modx->error->failure('У вас нет прав на удаление этого ресурса.');
    }
Евгений Webinmd
Евгений Webinmd
Процессоры лежат тут:
core/components/minishop2/processors/mgr/

В статье описано как не изменять исходники, там же и про процессор написано.
При большом желании можно изменить исходник, проверить работает ли сама идея и потом уже переопределять
Сергей
Сергей
Постоянно ошибки:
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}
Джанго
Джанго
Нет, не согласно. вторая версия была установлена поверх.
Теперь я удалил вторую версию, почистил таблицы в бд согласно инструкции.
Заново устанавливаю вторую версию ( при этом все равно высвечивается предупреждение, что вы устанавливаете вторую поверх первой), тем не менее устанавливаю, и в итоге высвечивается таже самая ошибка.