Авто обновление индекса 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
478
+5

Набор правил, настройка форм в админке для родителей

Здравствуйте!
Подскажите пожалуйста, никак не могу разобраться.
Создаю 2 набора правил для одного и того же шаблона.
Для родительского элемента (оставляю ТВ-поля)
  • Ограничивающее поле: id
  • Ограничивающее значение: 2
Для остальных элементов (убираю ТВ-поля)
  • Ограничивающее поле: [empty] (тут я не могу указать parent со значением 2, т/к там вложенность есть на несколько уровней)
  • Ограничивающее значение: [empty]
И в этом случае у меня получается, что везде поля не отображаются.
Пробовал разные комбинации, либо у всех есть поля, либо у всех их нет :(

Что я хочу, чтобы у родителя были определенные поля, а у его потомков (всех уровней) эти поля в админке не отображались, как такое сделать подскажите пожалуйста?
Меня шаблон у всех потомков не хочу, не удобно.
Роман
10 июля 2025, 09:23
modx.pro
107
0

Какими компонентами сделать интернет-магазин (каталог) по модульным (сборным) товарам?

Добрый день. Фирма продает модульные летние домики. Можно купить просто навес. Можно к нему добавить стенки глухие, можно с окнами или со входной группой. Такой мини конструктор. Достаточно минишопа или проще будет с какими-то дополнительными компонентами?
Пример: человек выбрал навес 5x5, сумма 100, добавил 3 стены, сумма 200, добавил четвертую стену с дверью и окном — сумма 300. Нажал заказать — создался заказ с 5 товарами: навес + 3 стены + 1 стена с дверью и окном.
Подскажите пожалуйста.
Павлик Мышкин
09 июля 2025, 16:23
modx.pro
596
0

Спам в формах AjaxForm/FetchIt? Защищаем ЛЮБЫЕ точки входа в MODX с помощью IskWaf



Всем привет!

В Telegram-чате регулярно поднимается один и тот же вопрос: «Как защититься от спама в форме? У меня стоит FetchIt или AjaxForm, капчу на странице вывел, а спам всё равно летит тоннами!»

Я решил эту проблему в своем компоненте IskWaf (MODX3 / MODX2), и в этой заметке хочу рассказать, как теперь можно обеспечить тотальную защиту вашего сайта.

Ivan K.
08 июля 2025, 20:44
modx.pro
1
882
+14

pbQuiz — гибкий компонент квизов на контроллерах PageBlocks

pbQuiz — это наглядный пример того, как с помощью PageBlocks можно построить гибкую многошаговую форму-квиз с пошаговой валидацией и хранением прогресса в сессии.

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



Что умеет pbQuiz


  • Создавать квиз из любого количества шагов.
  • Гибко задавать поля: radio, checkbox, текстовые и email.
  • Проверять введённые данные на каждом шаге.
  • Хранить введённые данные между шагами.
  • Отправлять результаты менеджеру и пользователю.
  • Полностью управляться через таблицы PageBlocks
ДЕМО

Aleksandr Huz
06 июля 2025, 15:14
modx.pro
734
+14

Нужны разработчики на MODX 2 и 3

7
Добрый!
Нужны пару разработчиков (не профи), для разработки на готовых html шаблонах. Оплата не большая, но работа постоянная.
Используем MODX 2.8 (интернет-магазины) и MODX 3 (лендинги и визитки).
Из скриптов в основном используются owl-carousel2, swiper-slider, jquery.
Желательно еще знать scss и компонент MinifyX.
Разрабатываются в основном лендинги и визитки.
Очень желательно делать на fenom (т.к. будет установлен MODX уже настроенный под него), но не критично. Будет FTP.
Всё на готовых компонентах (бесплатных и платных — покупаются нами). Сервер предоставляется. Общее ТЗ по техническим характеристикам (как и что делать) есть.
Формы через FetchIt. Помощь будет.
Если с чем не работали — поможем.
Предложения пишите в телеге @ssl1984
Сергей Самусев
05 июля 2025, 01:55
modx.pro
358
0

[[~[[+vendor.resource]]]] ошибка

Добрый день! Делаю вывод производителя с ссылкой
<a [[+vendor.resource:gt=`0`:then=`href="[[~[[+vendor.resource]]]]"`]]>[[!+vendor.name]]</a>
в ошибках постоянно
`0` is not a valid integer and may not be passed to makeUrl()
. Может кто сталкивался, как исправить? Я понимаю, что он ругается, что страницы нет, но стоит же проверка…
Дмитрий
02 июля 2025, 13:55
modx.pro
190
0

Публикация новостей из RSS в канале

Система Modx 2.8.4
Как организовать автопостинг новости в Телеграм?
Нашел варианты от 17го и 18го годов. Попробовал. Увы, не работает…

Делаю бота, подключаю к RSS каналу и, увы…
В RSS запись есть, бот публикует в канале то, что ему пишешь вручную, а из RSS забирать не хочет…
Матвей
30 июня 2025, 23:02
modx.pro
233
0

ms2Gallery Вопрос по уменьшению оригиналов изображений

У меня на сайте более 20GB изображений. Оригиналы загружались без ограничений. Есть ли способ уменьшить именно оригиналы, не превьюшки, а именно оригиналы!
Способ Ильи ilyaut.ru/cheats/to-rebuild-all-previews-of-products/ не трогает оригиналы…
Евгений
28 июня 2025, 10:13
modx.pro
1
232
0

Дополнительные функции в работе сервиса электронной подачи заявок

7 6 000
Здравствуйте.
Нужно доработать функционал сервиса заявок на сайте. Есть техническое задание на дополнительные функции в работе сервиса электронной подачи заявок. ТЗ вышлю по запросу.
Дмитрий
27 июня 2025, 10:01
modx.pro
297
0