Gallery3x — это современный компонент галереи изображений для MODX3



Gallery3x — это современный компонент галереи изображений, разработанный эксклюзивно для MODX3. Он служит мощной и удобной альтернативой популярным решениям, которые не были обновлены для последней версии CMS.

Многие разработчики знают и любят отличный компонент ms2Gallery, который долгие годы был стандартом для создания галерей. Однако, он был создан для MODX2 и не имеет официальной поддержки в MODX3.

Gallery3x призван занять эту нишу, предлагая схожий богатый функционал, но на совершенно новой, современной технологической базе, полностью совместимой с MODX3.

Ivan K.
28 июля 2025, 14:11
modx.pro
1
1 017
+19

eCommSender - отправка данных электронной коммерции

Приветствую! Представляю вашему вниманию компонент для отправки событий электронной коммерции в Яндекс Метрику и не только.
Артур Шевченко
22 июля 2025, 22:59
modx.pro
1
910
+11

UniversalEventBus - обмен событиями между сервером и фронтом

Приветствую! Если у вас возникала потребность выполнить какое-то действие на фронте, при возникновении события на сервере и при этом требовалось много дополнительных данных эта утилита вам поможет.
Артур Шевченко
22 июля 2025, 22:58
modx.pro
661
+12

msImportExport не сохраняет родителя по умолчанию

Добрый день, кто-то сталкивался с чем то похожим?

После перехода на вторую версию попробовали настроить импорт.
Столкнулись с проблемой, что не сохраняется одна системная настройка пресета импорта документов — родитель по умолчанию.
Там проставлено значение — 0
При попытке его изменить ничего не происходит.
Это тут — skr.sh/sWjXgwCceKJ
Что можно сделать для исправления?
yuri
22 июля 2025, 16:23
modx.pro
277
0

modinstagram2 перестал работать

Добрый день как то покупал дополнение modinstagram*2 но в декабре 2024 года перестало работать как я понял приложение instagram* basic display убрали. На данный момент плагин выдает ошибки
modinstagram*2 getMedia ERROR: 400 text: {"error":{"message":"Error validating access token: Session has expired on Thursday, 30-Jan-25 20:58:15 PST. The current time is Sunday, 20-Jul-25 05:25:51 PDT.","type":"OAuthException","code":190,"fbtrace_id":"A3Ynj_xg28Vutnaui5H_wCy"}}

modinstagram*2 getProfileInfo ERROR: 400 text: {"error":{"message":"Error validating access token: Session has expired on Thursday, 30-Jan-25 20:58:15 PST. The current time is Sunday, 20-Jul-25 05:25:51 PDT.","type":"OAuthException","code":190,"fbtrace_id":"AcVfwQqdZiVh8mMKstSiyDe"}}
подскажите может кто то сталкивался есть возможность починить?
eflit
20 июля 2025, 15:55
modx.pro
91
0

Thumb2x — это мощный и гибкий компонент для обработки изображений



Thumb2x — это мощный и гибкий компонент для обработки изображений, созданный для MODX2.

В основе лежит высокопроизводительная библиотека Glide 2.3.2, обеспечивающая создание изображений «на лету».

Ivan K.
17 июля 2025, 08:06
modx.pro
724
+14

Округление копеек в списке Заказов minishop2

Добрый день. Столкнулся с такой проблемой, что в списке заказов minishop2 округляются копейки:


Пробовал и гуглить и менять настройки minishop2, в общей сумме всё равно они округляются. Может кто-то сталкивался с таким?

Спасибо
snyadanak
15 июля 2025, 16:53
modx.pro
230
0

Прерывание внутри плагина

Добрый день, подскажите. Есть плагин, который выполняется перед сохранение данных пользователя. В случае исключительной (я создают условие сам) ситуации нужно остановить и вернуть текст ошибки. Но вот незадача, почему-то после выполнения кода, дальше моего условия скрипт не идет, а вот выполнение штатного скрипта modx (сохранение пользователя) идет.

Пример кода:

<?php
if ($modx->event->name === 'OnUserFormSave') {
// Пример условия для прерывания
if ($user->get('email') === 'blocked@example.com') {
$modx->event->output('Регистрация с таким email запрещена.');
$modx->event->stopPropagation();
return;
}

// Или выбросить исключение (если обрабатывается в компоненте или сниппете)
// throw new Exception('Регистрация с таким email запрещена.');
}

Или

<?php
if ($modx->event->name === 'OnUserBeforeSave') {
// Пример: запретить создание пользователя с определённым email
$email = $user->get('email');

if ($email === 'blocked@example.com') {
$modx->event->output('Пользователь с таким email не может быть создан.');
$modx->event->_output = 'Пользователь с таким email не может быть создан.';
$modx->event->stopPropagation(); // Остановить выполнение других плагинов
return false; // Очень важно — возврат false остановит сохранение!
}

В чем может быть причина?
}
charset
13 июля 2025, 21:06
modx.pro
249
0

Thumb3x: Современная обработка изображений для MODX 3



Thumb3x — это мощный и гибкий компонент для обработки изображений, созданный эксклюзивно для MODX 3.

Этот компонент был написан, чтобы заполнить пробел в экосистеме MODX 3, где практически отсутствуют современные и надежные инструменты для работы с изображениями.
Ivan K.
12 июля 2025, 21:26
modx.pro
1 322
+21

Авто обновление индекса mSeach2 через cron

Может кому пригодится крон для массового обновления индексов #msearch2 #cron

Инструкция:
— создаем фай в корне msearch2_cron.php содержимое кода ниже.
— запуск к примеру curl www.ru/msearch2_cron.php

<?php

// Отключение буферизации
ignore_user_abort(true);
set_time_limit(0);
ob_implicit_flush(true);
ob_end_flush();

header('Content-Type: text/html; charset=utf-8');
echo '<pre>';
ob_flush();
flush();

define('MODX_API_MODE', true);
require 'index.php';

/** @var modX $modx */
$modx->getService('error', 'error.modError');
$modx->setLogLevel(modX::LOG_LEVEL_FATAL);
$modx->setLogTarget(XPDO_CLI_MODE ? 'ECHO' : 'HTML');

/** @var modUser $adminObj */
$adminObj = $modx->getObject('modUser', ['sudo' => 1]);
$modx->user = $adminObj;


$offset = 0;

while (true) {
    /** @var modProcessorResponse $response */
    $response = $modx->runProcessor('mgr/index/create', [
        'limit' => 1000,
        'offset' => $offset,
    ], [
        'processors_path' => MODX_CORE_PATH . 'components/msearch2/processors/'
    ]);

    if ($response->isError()) {
        echo "Ошибка: " . $response->getMessage() . "\n";
        ob_flush();
        flush();
        break;
    }

    $data = $response->getObject();
    if ($data['offset'] >= 1) {
        echo "Индексировано: {$data['offset']}\n";
        ob_flush();
        flush();
    }


    // Если offset == 0 → завершаем
    if ($data['offset'] === 0) {
        echo "Получен нулевой сдвиг. Индексация остановлена.\n";
        ob_flush();
        flush();
        break;
    }

    // Обновляем offset для следующего шага
    $offset = $data['offset'];

    // Если достигли конца
    if ($offset == 0) {
        echo "Индексация успешно завершена.\n";
        ob_flush();
        flush();
        break;
    }

    //sleep(1); // пауза между порциями (можно убрать)
}
vectorserver
11 июля 2025, 10:29
modx.pro
1
462
+5