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

Thumb2x — это мощный и гибкий компонент для обработки изображений, созданный для MODX2.
В основе лежит высокопроизводительная библиотека Glide 2.3.2, обеспечивающая создание изображений «на лету».
Округление копеек в списке Заказов minishop2
Добрый день. Столкнулся с такой проблемой, что в списке заказов minishop2 округляются копейки:

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

Пробовал и гуглить и менять настройки minishop2, в общей сумме всё равно они округляются. Может кто-то сталкивался с таким?
Спасибо
Прерывание внутри плагина
Добрый день, подскажите. Есть плагин, который выполняется перед сохранение данных пользователя. В случае исключительной (я создают условие сам) ситуации нужно остановить и вернуть текст ошибки. Но вот незадача, почему-то после выполнения кода, дальше моего условия скрипт не идет, а вот выполнение штатного скрипта 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 остановит сохранение!
}
В чем может быть причина?
}
Пример кода:
<?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 остановит сохранение!
}
В чем может быть причина?
}
Thumb3x: Современная обработка изображений для MODX 3

Thumb3x — это мощный и гибкий компонент для обработки изображений, созданный эксклюзивно для MODX 3.
Этот компонент был написан, чтобы заполнить пробел в экосистеме MODX 3, где практически отсутствуют современные и надежные инструменты для работы с изображениями.
Авто обновление индекса mSeach2 через cron
Может кому пригодится крон для массового обновления индексов #msearch2 #cron
Инструкция:
— создаем фай в корне msearch2_cron.php содержимое кода ниже.
— запуск к примеру curl www.ru/msearch2_cron.php
Инструкция:
— создаем фай в корне 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); // пауза между порциями (можно убрать)
}
Набор правил, настройка форм в админке для родителей
Здравствуйте!
Подскажите пожалуйста, никак не могу разобраться.
Создаю 2 набора правил для одного и того же шаблона.
Для родительского элемента (оставляю ТВ-поля)
Пробовал разные комбинации, либо у всех есть поля, либо у всех их нет :(
Что я хочу, чтобы у родителя были определенные поля, а у его потомков (всех уровней) эти поля в админке не отображались, как такое сделать подскажите пожалуйста?
Меня шаблон у всех потомков не хочу, не удобно.
Подскажите пожалуйста, никак не могу разобраться.
Создаю 2 набора правил для одного и того же шаблона.
Для родительского элемента (оставляю ТВ-поля)
- Ограничивающее поле: id
- Ограничивающее значение: 2
- Ограничивающее поле: [empty] (тут я не могу указать parent со значением 2, т/к там вложенность есть на несколько уровней)
- Ограничивающее значение: [empty]
Пробовал разные комбинации, либо у всех есть поля, либо у всех их нет :(
Что я хочу, чтобы у родителя были определенные поля, а у его потомков (всех уровней) эти поля в админке не отображались, как такое сделать подскажите пожалуйста?
Меня шаблон у всех потомков не хочу, не удобно.
Какими компонентами сделать интернет-магазин (каталог) по модульным (сборным) товарам?
Добрый день. Фирма продает модульные летние домики. Можно купить просто навес. Можно к нему добавить стенки глухие, можно с окнами или со входной группой. Такой мини конструктор. Достаточно минишопа или проще будет с какими-то дополнительными компонентами?
Пример: человек выбрал навес 5x5, сумма 100, добавил 3 стены, сумма 200, добавил четвертую стену с дверью и окном — сумма 300. Нажал заказать — создался заказ с 5 товарами: навес + 3 стены + 1 стена с дверью и окном.
Подскажите пожалуйста.
Пример: человек выбрал навес 5x5, сумма 100, добавил 3 стены, сумма 200, добавил четвертую стену с дверью и окном — сумма 300. Нажал заказать — создался заказ с 5 товарами: навес + 3 стены + 1 стена с дверью и окном.
Подскажите пожалуйста.
Спам в формах AjaxForm/FetchIt? Защищаем ЛЮБЫЕ точки входа в MODX с помощью IskWaf

Всем привет!
В Telegram-чате регулярно поднимается один и тот же вопрос: «Как защититься от спама в форме? У меня стоит FetchIt или AjaxForm, капчу на странице вывел, а спам всё равно летит тоннами!»
Я решил эту проблему в своем компоненте IskWaf (MODX3 / MODX2), и в этой заметке хочу рассказать, как теперь можно обеспечить тотальную защиту вашего сайта.
pbQuiz — гибкий компонент квизов на контроллерах PageBlocks
pbQuiz — это наглядный пример того, как с помощью PageBlocks можно построить гибкую многошаговую форму-квиз с пошаговой валидацией и хранением прогресса в сессии.
Вы можете использовать готовый бесплатный компонент или создать всё вручную — чтобы полностью понять, как работает структура под капотом.

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

Что умеет pbQuiz
- Создавать квиз из любого количества шагов.
- Гибко задавать поля: radio, checkbox, текстовые и email.
- Проверять введённые данные на каждом шаге.
- Хранить введённые данные между шагами.
- Отправлять результаты менеджеру и пользователю.
- Полностью управляться через таблицы PageBlocks
Нужны разработчики на MODX 2 и 3
7
Добрый!
Нужны пару разработчиков (не профи), для разработки на готовых html шаблонах. Оплата не большая, но работа постоянная.
Используем MODX 2.8 (интернет-магазины) и MODX 3 (лендинги и визитки).
Из скриптов в основном используются owl-carousel2, swiper-slider, jquery.
Желательно еще знать scss и компонент MinifyX.
Разрабатываются в основном лендинги и визитки.
Очень желательно делать на fenom (т.к. будет установлен MODX уже настроенный под него), но не критично. Будет FTP.
Всё на готовых компонентах (бесплатных и платных — покупаются нами). Сервер предоставляется. Общее ТЗ по техническим характеристикам (как и что делать) есть.
Формы через FetchIt. Помощь будет.
Если с чем не работали — поможем.
Предложения пишите в телеге @ssl1984
Нужны пару разработчиков (не профи), для разработки на готовых html шаблонах. Оплата не большая, но работа постоянная.
Используем MODX 2.8 (интернет-магазины) и MODX 3 (лендинги и визитки).
Из скриптов в основном используются owl-carousel2, swiper-slider, jquery.
Желательно еще знать scss и компонент MinifyX.
Разрабатываются в основном лендинги и визитки.
Очень желательно делать на fenom (т.к. будет установлен MODX уже настроенный под него), но не критично. Будет FTP.
Всё на готовых компонентах (бесплатных и платных — покупаются нами). Сервер предоставляется. Общее ТЗ по техническим характеристикам (как и что делать) есть.
Формы через FetchIt. Помощь будет.
Если с чем не работали — поможем.
Предложения пишите в телеге @ssl1984