Алексей Смирнов

Алексей Смирнов

Был в сети 05 декабря 2025, 08:42
Заказы не принимаю
Так и делайте — создаете символическую ссылку как вы и говорите,
а потом в шаблоне проверяете тип ресурса символической и берите id в поле content и генерите сами нужный url он, как раз будет таким как нужно.
Если не хотите грузить pdoMenu полем content, можно придумать другое поле для «сбора» ID ресурса.
и никаких сниппетов и прочее.
'where' => [0 => "0 < FIND_IN_SET(" ~ $_modx->resource.id~ ", replace(`TVportfolio_item`.`value`, '||', ','))"]
Тут $_modx->resource.id — id текущего ресурса (тот к которому будем искать в сторонних ресурсах значения в ТВ-шке portfolio_item, внимательно смотрите на особенности записи ТВ в запросах where.
Вы мешаете синтаксис фенома и phx MODX.
Запишите все на феноме для начала:
{var $output = 'ms2GalleryResources' | snippet: [
    'tpl' => 'proekt-item-portfolio',
    'parents' => '394',
    'where' => '{ "connection:=":"'~$_modx->resource.connection~'","connection:!=":"1"}',
    'limit' => '6',
    'includeThumbs' => 'medium',
    'includeTVList' => 'days, connection, video',
    'depth' => '0',
    'showLog' => '1'
]}
{if $output}
<h3 class="text-center">{$_modx->resource.connection} в наличии</h3>
<div class="row flex-content-center">
{$output}
</div>
{/if}
и если не сработает можно двигаться дальше.
например у вас гарантированно в ТВ поле connection Находится один id? те там нет двух или трех id через запятую?
Вы не указали где именно вывести.
Есть у нас как минимум 3 места: Страница товара, страница со списком товаров, корзина.
На странице товара пример есть по ссылке в теме гитхаба,
списки что в корзине что в каталоге — расписал.
по работе — лучше создайте или на сайте или в телеграмм-канале (раздел работа) предложение о работе — кто-нибудь откликнется.
Обсуждение возможностей тут github.com/modx-pro/miniShop2/pull/761
А чтобы вытащить значения из БД в удобном формате — достаточно написать небольшой сниппет и результат его работы сохранить в переменную или Placeholder или setOption.
Простой сниппет Kvazicolor который вытащит сопоставление:
$name = 'colorushka'; // имя опции которая имеет цвета.
$tableon = $modx->getOption('table_prefix');
$asf = $modx->query("SELECT properties FROM `".$tableon."ms2_options` WHERE `key` = '".$name."'")->fetch(PDO::FETCH_ASSOC);
$out = json_decode($as['properties'],1);
$outx = [];
foreach ($out['values'] as $line){
    $outx[$line['name']] = $line['value'];
}
return $outx;
Далее в феноме до вызова mfiler засунуть это все в плейсхолдер, например:
{set $mypole = 'colorushka'}
{set $masscol[$lit['alias']] = 'Kvazicolor' | snippet : ['name' => $mypole]}
{$_modx->setPlaceholder('arrcolors',$masscol)}
Далее в чанке row
получаем:
{var $key = $table ~ $delimeter ~ $filter}
{set $ezhikcolors = 'arrcolors' | placeholder}
..... любой код ....
<span class="checking" style="background-color: {$ezhikcolors [$filter_key][$value]}">{$title}</span>
Вот как то так.
Просто сделайте в одной вкладке 3 поля и в другой вкладке 3 поля (или сколько нужно).
Вы же создаете конфигурацию MIGX через MIGX, а не в ручную?
Если не понимаете о чем речь — искать поMIGX документация и примеры посадки блоков
Да, потому что я вообще не вижу что у вас что-то корректно отображается. даже текста нет…
возможно ошибки в json.
И посмотрел конфиг — да у вас нарушена структура json для MIGX.
погуглите — modx галерея на migx.
Если вы переносили — проверьте исходящую версию Mysql и ту на которую переносите.
Если переносите на более низкую, есть риски что у вас еще и индексы слетели. Поэтому при экспорте нужно поменять совместимость БД, но тут лишь гуглить. Или переносить частями БД если она большая.
Кстати табличку сессий можно очистить перед переносом.