Алексей Ерохин

Алексей Ерохин

Был в сети 15 апреля 2025, 15:28
Заказы не принимаю
Неправильно составлены критерии выборки в методах getObject, getCollection, getIterator, newQuery (where)
Судя по ошибке, где-то условие записано в виде SQL и его не удается распарсить, либо ошибка, либо используется какой-то оператор, который не принимается xpdo
Список принимаемых:
'=',
        '!=',
        '<',
        '<=',
        '>',
        '>=',
        '<=>',
        ' LIKE ',
        ' IS NULL',
        ' IS NOT NULL',
        ' BETWEEN ',
        ' IN ',
        ' IN(',
        ' NOT(',
        ' NOT (',
        ' NOT IN ',
        ' NOT IN(',
        ' EXISTS (',
        ' EXISTS(',
        ' NOT EXISTS (',
        ' NOT EXISTS(',
        ' COALESCE(',
        ' GREATEST(',
        ' INTERVAL(',
        ' LEAST(',
        'MATCH(',
        'MATCH (',
        'MAX(',
        'MIN(',
        'AVG('
В вашем случае вообще условие пустое
Пара вариантов:
1. Использовать fenom — в TV хранится JSON, перегнать в массив и foreach пройтись, индекс там есть
2. Свой сниппет — распарсить JSON, прогнать foreach считать индекс
3. Ну и самое невероятное. Почитать документацию migx и узнать оттуда, что в чанке доступен плейсходер [[+idx]]. Проверять его так
[[+idx:mod=`6`:is=`0`:then=`чанк для каждого 6`:else=`чанк для остальных`]]
mod — остаток от деления
Так сделано в modx, от контекста только ключ.

Можете попробовать в плагине на событие OnMODXInit дописывать в объект необходимые данные контекста.
$context= $modx->getObject('modContext',['key'=>$modx->context->key]);
$modx->context->_fields['name'] = $context->get('name');
$modx->contexts[$modx->context->key] = $modx->context;
Не уверен, что потом где-нибудь не всплывет бага. Лучше напишите сниппет для получения данных контекста и используйте его.

Или как вариант: записать в настройки контекста его имя и описание и получать через {$_modx->config.context_name}
Да сдался вам этот индекс, у вас в $value лежит число от 1 до 45, выводите их.
Если нужен порядковый номер используйте $key=>$value

А index — это внутренний счетчик. Вы делаете continue и он не увеличивается в конце тела цикла. Поэтому ничего не выводится, у вас всегда index = 0

Пока писал вы уже заменили комментарий. Рад, что все получилось.