Интеграция MS2 и Prodamus

1 1
Нужно настроить интеграцию MS2 с Prodamus
Документация по интеграции: help.prodamus.ru/payform.ru-onlain-oplaty/rest-api/instrukcii-dlya-samostoyatelnaya-integracii-servisov
Сергей
Сегодня в 12:04
modx.pro

Необходимо доработать API сделанное на modx, добавить блокировку по IP при частых запросах.

Добрый день.
Отвечать буду только людям с рейтингом на modx.

Описание
Есть мобильное приложение. В данный момент ошибочно (спам) было разослано более 50.000 смсок с приложения на различные номера телефонов.

Задачи
№1) Ограничения по IP backend
Первые 3 запроса с одного IP — раз в минуту.
После этого — раз в час.
И после 3-х в час — блокировка на день.

Нужно будет обновить UI, чтобы показывать ошибку 429 (слишком много запросов) и объяснять пользователю, что нужно подождать перед следующей попыткой.

№2) Ограничения по телефону — То же самое, только по номеру телефона.

В UI тоже нужно показывать ошибку 429, чтобы пользователи понимали, что нужно подождать.
anhel123
Сегодня в 10:26
modx.pro

Какие права доступа нужно давать пользователям для удаление своих записей

Всем привет, сделал добавление и изменения записей со стороны фронтенда и хотел сделать еще удаление записей, но проблема в том, что у админа удаление работает, а у пользователей нет. В журнале ошибок выскакивает ошибка, что у пользователя нет прав на удаление. Когда пользователь нажимает на ссылку «Удалить», то появляется просто текст Array. Сейчас стоит web, member-9999, load,list and view, но пробовал ставить разные политики доступа, ничего не меняется.
Код сниппета
<?php
if (!empty($_GET['action']) && $_GET['action'] === 'delete' && !empty($_GET['resourceId'])) {
    $resourceId = intval($_GET['resourceId']);
    $resource = $modx->getObject('modResource', $resourceId);

    // Проверка, существует ли ресурс
    if (!$resource) {
        $modx->log(modX::LOG_LEVEL_ERROR, 'Ошибка: Ресурс с ID ' . $resourceId . ' не найден.');
        return $modx->error->failure('Ресурс не найден.');
    }

    // Проверка прав доступа
    if (!$modx->hasPermission('delete_document')) {
        $modx->log(modX::LOG_LEVEL_ERROR, 'Ошибка: У пользователя нет прав на удаление ресурса с ID ' . $resourceId);
        return $modx->error->failure('У вас нет прав на удаление этого ресурса.');
    }

    // Проверка, является ли текущий пользователь создателем ресурса
    $userId = $modx->user->get('id');
    if ($resource->get('createdby') != $userId) {
        $modx->log(modX::LOG_LEVEL_ERROR, 'Ошибка: Пользователь с ID ' . $userId . ' пытался удалить чужой ресурс с ID ' . $resourceId);
        return $modx->error->failure('Вы можете удалять только свои записи.');
    }

    // Удаление ресурса
    if ($resource->remove()) {
        $modx->log(modX::LOG_LEVEL_INFO, 'Ресурс с ID ' . $resourceId . ' успешно удален пользователем с ID ' . $userId);
        // Перенаправление после успешного удаления
        $modx->sendRedirect($modx->makeUrl($modx->getOption('site_start'), '', '', 'full'));
    } else {
        $modx->log(modX::LOG_LEVEL_ERROR, 'Ошибка: Не удалось удалить ресурс с ID ' . $resourceId);
        return $modx->error->failure('Не удалось удалить ресурс.');
    }
}
Ссылка на удаление
a href="[[~[[*id]]]]?action=delete&resourceId=[[+id]]" onclick="return confirm('Вы уверены, что хотите удалить этот ресурс?');">Удалить ресурс</a>
Может кто в курсе какие права доступа вставлять или может я вообще неправильно все делаю.
Илья
Вчера в 11:58
modx.pro

Как импортировать msProductOptions данные через miniShop2 утилиту Импорт?

Как импортировать msProductOptions данные через miniShop2 утилиту Импорт? Будет ли работать это решение?



modx.pro/solutions/12280

Если да, что нужно добавить в файлы csv.php и importCSV.php, чтобы работало через утилиту?

Спасибо
Trying
17 марта 2025, 17:53
modx.pro

Вывод полей в таблице заказов minishop2

Приветствую!
Столкнулся с задачей изменить таблицу заказов minishop2.
Но на просторах интернета, так и не нашел подобного решения.
Существуют внятные и понятные (даже для моего уровня программирования) статьи о том как добавить новое поле, к примеру в закладку адрес, но вот по работе с самой таблицей, информации очень мало.

Если более детально описать, то требуется в таблицу с заказами вывести любое поле из таблицы ms2_order_addresses.

У меня получилось добавить новые колонки в таблице, но они пусты. На сколько я понимаю, в момент генерации таблицы нет запроса к ms2_order_addresses, сама таблица работает с ms2_orders.



На скрине колонка «Адрес получателя» живет аккурат в таблице ms2_order_addresses и пуста.

Буду благодарен помощи!
Дмитрий
16 марта 2025, 22:46
modx.pro

MODX RSC | Telegram Karma Bot

Всем привет, хочу поделиться телеграм ботом, который был разработан для нашего основного чата.

🤖 Telegram-бот для управления кармой пользователей в чате. Бот добавляет или убирает карму, банит пользователей за рекламу и отображает топ пользователей по карме.



Бот создаёт и управляет пользователями в MODX.
Не стал особо придумывать велосипедов, но если вам будет нужно как то иначе его подстроить под сайт, думаю разберётесь.

А так же я интегрировал в бота OpenAI GPT-3.5



Что бы он ответил, при написании вопроса в любом порядке пишем «ИИ ответь тоже»

Все подробности на Github
Денис Усманов
16 марта 2025, 00:30
modx.pro

Не выводятся данные пользователя в профиле

Всем привет!
Сделал регистрацию и авторизацию с Login, затем сделал личный кабинет и все это работает. Захотел сделать страницу профиль пользователя, чтобы другие могли посмотреть.
Илья
14 марта 2025, 17:36
modx.pro

Получить ALT изображения в сниппете ms2GalleryResources на fenom

Не могу на fenom получить alt или name изображения ms2Gallery в сниппете ms2GalleryResources.
{$file['name']} даёт пустое значение. Без fenom работает [[+small.alt]], по аналогии {$small['alt']} — даёт / (слэш)

Прикреплю код сниппета. Если тыкнете в строчку, где подсказка, буду рад. Сам нашел $thumb.alt на 69 строке, но ребус разгадать все-равно не могу.
Павлик Мышкин
13 марта 2025, 15:57
modx.pro

MIGx. Listbox. Fenom. Вставка label вместо value.

Имеется список listbox с данными:
Библиотека №3 == library_3 || Библиотека №15 == library_15.

В одном месте в чанке нужно вставить label, то есть название, например «Библиотека №3»:
{$row.calendarEventsPlace}
А вдругом месте вставить соответствующее label value, library_3:
data-lib="{$row.calendarEventsPlace}"
Value вставляется по-умолчанию, а как вставить название в код, чтобы не создавть дополнительное поле в конфигурации?
Александр
13 марта 2025, 10:33
modx.pro