Powered by Prisma CMS

Читайте все статьи на prisma-cms.com

В файле, на который я ссылался, нет переменной addit_data, то есть это или ваша какая-то собственная переменная, или просто что-то где-то не сходится. В любом случае, здесь скорее всего нет смысла очень глубоко копать, а просто можно решить проблему локально. Смотрите, на уровне чанков просто так нельзя работать с массивами, но можно переменную передать в сниппет-обработчик. Создайте, к примеру, сниппет arrayToStr вот с таким содержимым:
<?php // $modx->log только для отладки, потому можно удалить эту строку $modx->log(1, print_r($input, 1), "FILE"); return $input && is_array($input) ? implode(",", $input) : $input;
и замените
[[+addit_data:default=`&mdash;`]]
на
[[+addit_data:arrayToStr]]
Это не гарантированно заработает, но может. Суть его в том, что значение плейсхолдера будет передано в сниппет-модификатор, в котором мы и выполняем обработку массива. После выполнения проверьте логи MODX-а, если все ОК, там будет запись с содержимым этой переменной.

Если это не поможет, можно попробовать другой вариант:
[[+addit_data:default=`&mdash;`]]
заменить на
[[!arrayToStr?input=[[+addit_data]]`]]
Просто в первом варианте в сниппет может не дойти переменная в чистом виде, а так больше шанс. Но если первый вариант пройдет, он предпочтительней.

Вернуться к списку комментариев