Aleksandr Huz

Aleksandr Huz

Был в сети 04 ноября 2025, 21:25
Заказы принимаю
В одном ты прав, что нет смысла переписывать переменную idx, тут я ошибся.
Но, можно указать в атрибуте PRESERVE_KEYS значение false и тогда id ресурсов будет создано динамически, но будет проблема с созданием дочерних ресурсов.
Вообщем, лучший вариант — это свой резолвер.
И при установке из vehicle ресурсы создаются установщиком MODX без участия какого-то моего кода
И что? Пусть ресурсы создаются с правильным id, а во всех чанках вместо
[[~103]]
указываем переменную и потом при создании чанка меняем переменную на нужный тег. Главное чтобы ресурсы создавались первыми.

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

А вообще, компонент может стать и нужным, если его довести до ума. Но, это уже твое дело.
Это проблемная задача.
Если бы это написал новичок, то вопросов не было и то новичок, скорее всего задал бы вопрос или погуглил, а ты уже создал несколько компонентов, поэтому очень странное заявление от тебя.

Все что нужно, это получить последний id ресурса и записать в переменную
_idx

Вариант 1.
$q = $this->modx->newQuery('modResource');
$q->select('id');
$q->sortby('id', 'desc');
$q->limit(1);
$res = $this->modx->getObject('modResource', $q);
$this->_idx = $res->id++;

Вариант 2.
$table = $this->modx->getTableName('modResource');
$sql = "SELECT MAX(`id`) FROM {$table}";
$statement = $this->modx->prepare($sql);
$statement->execute();
$id = $statement->fetchColumn();
$this->_idx = $id++;

Как видишь, ничего сложного. Поэтому я бы порекомендовал довести до ума компонент или снять его вообще, потому что сейчас это лотерейный пакет, если установиться, значит ты счастливчик и тебе повезло.
Такс, во первых спасибо, обязательно нужно изменить чанк. Я привык работать с файловыми элементами и поэтому чанк сделал для вывода файловых элементов. А по умолчанию, лучше выводит обычные чанки.
Вам нужно его изменить:
{$_modx->getChunk($chunk, $values)}
На тестовом сайте поменял.
Если посмотреть чанк, который идет с компонентом tpl.PageBlocks, то можно увидеть, что в соответствующий чанк передается только одно значtние — $values
{$_modx->getChunk('@FILE chunks/'~$chunk~'.tpl', $values)}
А вы вызываете чанк напрямую, значит он принимает только один параметр $values — это массив, и в нем уже все необходимые данные.