$output = '';
$list = explode('||', $input); /* "||" - разделитель, должен быть таким же, какой мы указали при создании TV */
foreach ($list as $l) {
$output .= '<li>' . $l . '</li>'; // здесь ваша разметка, какая вам нужна
}
return $output;
<ul>
[[*myList:parseList]]
</ul>
Напимер, так:
1. Делаем TV типа Listbox, назовем для примера myList
2. Делаем Output Options (Параметры вывода) для этой TV - Delimiter (разделитель)
3. Ставим какой-нибудь delimiter, например ||
4. Пишем простенький сниппет под названием parseList
$output = ''; $list = explode('||', $input); /* "||" - разделитель, должен быть таким же, какой мы указали при создании TV */ foreach ($list as $l) { $output .= '<li>' . $l . '</li>'; // здесь ваша разметка, какая вам нужна } return $output;
5. В шаблоне, там, где вам нужно вывести этот список, пишем
<ul> [[*myList:parseList]] </ul>
6. Наслаждаемся
Тогда я не понял, в чем загвоздка. Вы делаете TV типа listbox. Назначаете его шаблону. Контент-менеджер на любом ресурсе с этим шаблоном видит на вкладке "Дополнительные параметры" список и может выбрать нужное значение. Сам список при создании TV делается как-то так: Категория1||Категория2||Категория3 и т.д. В самом ресурсе эта строка превратится в выпадающий список.
Насколько я знаю, штатными средствами - никак. Можно написать свой компонент, конечно, но стоит ли того? Проще, наверное, проинструктировать контент-менеджера. Просьбы о том, чтобы сделать ввод TV понятнее и проще звучат регуляроно, но воз и ныне там.