Всего 124 432 комментария

Дмитрий
9 часов назад
0
Зачем проверять допустимое количество файлов в цикле оно же не меняется?
Ты прав, эту проверку можно вынести из цикла)
Дмитрий
Вчера в 21:52
0
Артур, я в заголовке и написал — что это простая зона) Они ничего никуда не загружает) по сути это просто визуальная дроп-зона. При перезагрузке страницы всё очищается)
Артур Шевченко
Вчера в 21:38
0
Куда сохраняются файлы? Как поменять путь? Зачем проверять допустимое количество файлов в цикле оно же не меняется? Если имя файла будет содержать пробелы и кириллицу проблем не будет? А если загрузить файл, перезагрузить страницу и загрузить его повторно он сохраниться?
Артур Шевченко
Вчера в 21:29
+1
Можно было все не переписывать, а только одну, ту где загрузка файлов))) Но ты красавчик, что решил разобраться и поделиться!
Дмитрий
Вчера в 21:25
0
Это само собой)) Я работал с тем что есть, и мне не хотелось все формы переписывать по новой, поэтому сделал так)
Артур Шевченко
Вчера в 21:19
0
В целом использовать AjaxForm в 2025 как-то не кошерно. Есть FetchIt, по бэку он может ничего нового не приносит, но хотя бы от jQuery не зависит.
Артур Шевченко
Вчера в 21:19
0
Ты молодец! Но все, кто не хочет заморачиваться, используйте SendIt)))
Кирилл
Вчера в 08:09
0
Из 2025, огромное спасибо!
Артур Шевченко
21 марта 2025, 22:34
0
1. Оставлять все тэги нельзя. Почитай про XSS
2. Если с TinyMCE, то тэги режет не редактор, а Login
Александр Туниеков
21 марта 2025, 15:36
0
Круто. А я слона не заметил :-) разбираться с шаблонами политик полез :-)
Хотя в курсе же был что доступ только на процессорах проверяется. Но засомневался.
Sergey (Sentinel)
20 марта 2025, 13:48
0
Так а в самом API разве нет ограничений? По любому должна быть какая-то защита у сервиса
Дмитрий
20 марта 2025, 00:16
0
Разобрался, все сделал! Спасибо за помощь!
Дмитрий
19 марта 2025, 23:09
0
Разобрался, все сделал! Спасибо за помощь!
Николай Савин
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/

В статье описано как не изменять исходники, там же и про процессор написано.
При большом желании можно изменить исходник, проверить работает ли сама идея и потом уже переопределять