Максим Кузнецов

Максим Кузнецов

Был в сети 04 августа 2021, 21:51
Заказы принимаю
Вы можете сделать выборку необходимых ресурсов с тв-полем через обычный pdoResources, подключив в includeTVs нужное MIGX-поле, после чего разобрать их в чанке при помощи фенома:

{set $migx_array = $migx_tv_name | fromJSON}

{foreach $migx_array as $migx_row}
	{$migx_row['название_колонки1_в_migx']}, {$migx_row['название_колонки2_в_migx']}, ...
{/foreach}
1. Создаем сниппет (random_list):
<?php
	$total = intval($total);
	$list = explode("||", $input);
	
	$random_items = array_rand($list, $total);
	
	$result = '';
	for ($i = 1; $i <= $total; $i++) {
		$result .= '<li>' . $list[$random_items[$i - 1]] . '</li>';
	}
	
	return $result;

2. Вызываем:
<ul>
	[[!random_list? &input=`Значение1||2||3||десять||8` &total=`3`]]
</ul>
Странно, что после переадресации у вас появляется двойной слеш. Советую вначале посмотреть в сторону правил переадресации/склейки (htaccess или настройки nginx), после чего покопаться в плагинах сайта.

Ну и можно консоль браузера посмотреть на нужных страницах, может там что-то покажет.
Если для вашей задачи нет подходящих встроенных рендеров, то их необходимо написать самому:

1. В системных настройках для параметра collections.user_js указываете путь до файла со скриптами.
2. В файле со скриптами реализуете необходимую функцию, например такую:
var user= function(value, metaData, record, rowIndex, colIndex, store) {
	if (value != '' & value != null) {
		return '<a rel="nofollow" target="_blank" href="ссылка_на_профиль_пользователя_' + value + '">Профиль автора</a>';
	}
}
3. В настройках нужной коллекции, для нужного поля в колонку «рендерер» указываете название функции из шага 2