Павел Романов

Павел Романов

Был в сети 30 июля 2026, 15:23
Заказы принимаю
На виртуальной странице доступны плейсхолдеры из маршрута с префиксом vp.
В Вашем случае это [[+vp.category]] и [[+vp.page]]. Соответственно, в чанке [[$VP-chunk]] или шаблоне виртуальной страницы Вы можете делать выборку:

&where=`{
  "city": "[[+vp.category]]__[[+vp.page]]"
}`
Да, поэкспериментировал — там модификаторы в плейсхолдерах не работают.

Попробуйте так:
[[!pdoPage?
        &element=`getTickets`
        &tpl=`TicketPageMainMP`
        &includeContent=`1`
        &includeTVs=`tvrules`
        &where=`{ "tvrules:LIKE":"%mpPageMain[[*id]]mp%" }`
        &parents=`0`
        &ajaxMode=`button`
        &pageVarKey=`sheet`
        &sortdir=`ASC`
        &pageNavVar=`sheet.nav`
        &limit=`10`
        &setTotal=`1`
        &totalVar=`t_count`
        &toPlaceholder=`result`
        ]]


<div id="sheetpage" [[!showHide? &pls=`t_count`]]>
    <div class="rows">
        [[+result]]
    </div>
    [[!+sheet.nav  ]]
</div>

Сниппет showHide:
<?php
if($modx->getPlaceholder($pls) < 1) return 'style="display:none"';
А если так?
<div id="sheetpage" [[+t_count:is=`0`:then=` style="display:none";`]]>
    <div class="rows">
        [[!pdoPage?
        &element=`getTickets`
        &tpl=`TicketPageMainMP`
        &includeContent=`1`
        &includeTVs=`tvrules`
        &where=`{ "tvrules:LIKE":"%mpPageMain[[*id]]mp%" }`
        &parents=`0`
        &ajaxMode=`button`
        &pageVarKey=`sheet`
        &sortdir=`ASC`
        &pageNavVar=`sheet.nav`
        &limit=`10`
        &setTotal=`1`
        &totalVar=`t_count`
        ]]
    </div>
    [[!+sheet.nav  ]]
</div>
В настройках поля в коллекции можно указать любой сниппет, который будет использоваться в качестве рендера:



В нем получайте значение поля как $value и формируйте вывод.
В Вашем случае обрабатываете JSON или просто запускаете getImageList:

return $modx->runSnippet('getImageList', array(
    'value'=> $value,
    'tpl' => '@CODE: <img src="[[+image]]" />',
    'limit'=> 1
));
Только, если используете в MIGX-TV источник файлов, проверьте пути — скорее всего придётся дописать что-то в шаблон вывода.
Уже есть. Там сразу запись в базе создается и объект $resource присутствует со всеми полями. Можете в phpMyAdmin посмотреть или через лог проверить:

$co = $modx->getCount('modResource', array('pagetitle' => $resource->get('pagetitle'), 'parent' => $resource->get('parent')));
if($co > 1){
	$resource->set('createdon', time(now));
	$resource->save();
	$modx->log(modX::LOG_LEVEL_ERROR, $resource->get('pagetitle')); // проверка
}
Как вариант можно попробовать сделать плагин на событие onDocFormPrerender:
<?php
$co = $modx->getCount('modResource', array('pagetitle' => $resource->get('pagetitle'), 'parent' => $resource->get('parent')));
if($co > 1){
	$resource->set('createdon', time(now));
	$resource->save();
}

Тут при загрузке формы редактора проверяется сколько у родителя данного ресурса дочек с таким же pagetitle (при копировании кнопкой «Копировать» он такой же как у исходника). Если больше одного, то переписывает createdon в соответствии с текущим моментом.
При копировании через ПКМ в дереве не сработает, но по кнопке должен.