Николай Савин

Николай Савин

С нами с 01 января 1970; Место в рейтинге пользователей: #2
Николай Савин
30 июня 2025, 19:19
0
Ну держать весь код проекта (за исключением gitignore) в гите как будто промышленный стандарт. Я давно не видел не одного серьезного проекта, который бы работал как-то по другому.
Николай Савин
28 июня 2025, 11:21
0
Искренне не понимаю, что мешает сделать тоже самое через git status, и если будет получен непустой ответ — отправить письмо админу с содержанием ответа.
Николай Савин
14 июня 2025, 09:40
0
ну какие молодцы. Научились докером пользоваться.
Николай Савин
10 июня 2025, 19:35
1
+1
Здравствуйте. Способов взлома существует множество. И кстати можно войти в админку так, чтобы записи об этом не было.
Перечислю варианты
— Обиженный вами программист скрыто вошел и сделал плохое. Это можно сделать даже без пароля или с отключенной учетной записью (если он спец)
— Сайт старый. Есть дыры безопасности. Обновляться до свежих версий очень важно. Можно обновляться сразу до последней 2.8.*
— Встречаются компонент с дырами, на моей памяти Gallery был таким. Компоненты желательно обновлять до свежий версий.
— Бывают проблемные хостинги, которые не изолируют сайты и пропускают заразу от соседних сайтов.
— Бывает и собственная неаккуратность админов и менеджеров.

Итого. Обновите MODX. Обновите компоненты. Напишите какой у вас хостинг, может чего подскажем.
Есть антивирусы для сайтов. Часто встроены в вашу хостинг панель. Проверьте на вирусы. Это минимум.

Ну и если очень важный проект — лучше заказать обследование его на безопасность.
Николай Савин
03 июня 2025, 21:25
0
Эх хорошо ответил. Лев Толстой бы лучше не написал
Николай Савин
30 мая 2025, 19:57
0
Пишется небольшой сниппет, который получает список «непустых» категорий. Перечень ID кладем в плейсхолдер.
Запускаем сниппет ДО вызова pdoMenu
В pdoMenu — дописываем параметр resources и вставляем в него плейсхолдер из шага выше
Николай Савин
26 мая 2025, 13:13
0
Максим, вопросы нужно задавать в разделе вопросы, а не забивать в одно лицо комментами новостную публикацию. Если тебе так проще заведи заметку «Осваиваю MS3 c нуля» и веди там свой блог.
Николай Савин
09 мая 2025, 20:00
+1
Перенес в готовые решения
Николай Савин
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;
}
Николай Савин
16 марта 2025, 09:25
+2
Карма @Денис Усманов увеличена до бесконечности, за такое полезное дело!
Николай Савин
27 февраля 2025, 10:33
0
Открываешь консоль браузера и смотришь ошибки. Если нет соединения с коннекторами, Там будет написано об этом
Николай Савин
26 февраля 2025, 22:22
0
Встречал такое в случае, когда сайт работает по незащищенному http протоколу, помогало настроить редирект или хотя б руками https написать
Николай Савин
14 февраля 2025, 15:45
0
Саш, а откуда карточки то? Есть реальный сайт?
Николай Савин
12 февраля 2025, 15:52
+3
О, технологии из взрослой песочницы подъехали. Уважаю
Николай Савин
02 февраля 2025, 13:37
0
Очень хороший комплексный материал. Низкий поклон. Давненько такого не было.
Николай Савин
27 января 2025, 11:11
+4
Это безумно круто. Я в восторге
Николай Савин
24 января 2025, 19:16
0
Ну мёд просто
Николай Савин
17 января 2025, 21:18
0
Формула берет просто текущий год и год перед ним. Только числа года.