Теги в коллекции
Здравствуйте!
Подскажите пожалуйста, как можно в коллекции вывести TV значения компонента TVSuperSelect в читаемом виде, т.к. это поле отображается в json формате.
Пример вывода TVSuperSelect:
Заранее спасибо!
Подскажите пожалуйста, как можно в коллекции вывести TV значения компонента TVSuperSelect в читаемом виде, т.к. это поле отображается в json формате.
Пример вывода TVSuperSelect:
Заранее спасибо!
Комментарии: 5
Вижу несколько вариантов:
1) Кастомный js рендерер
2) Кастомный php рендерер в виде сниппета
3) Создать ещё одно ТВ (например: скрытое), написать сниппет чтобы он распарсил значение нужного ТВ и воткнул в созданное и повесить на событие при сохранении ресурса, получится что и кастомный рендерер не нужен будет.
4) И много-много разных других решений ;)
1) Кастомный js рендерер
2) Кастомный php рендерер в виде сниппета
3) Создать ещё одно ТВ (например: скрытое), написать сниппет чтобы он распарсил значение нужного ТВ и воткнул в созданное и повесить на событие при сохранении ресурса, получится что и кастомный рендерер не нужен будет.
4) И много-много разных других решений ;)
Про кастомный js рендер даже автор tvsuperselect упомянул в публикации, значит он уже его делал для документов, надо лишь попросить у него готовый код или найти в MODX, где он указывает для вывода ТВ значения для документа, который в последствии можно добавить как рендер или xtype, если правильно понял.
Удалось сделать? Если нет, то вот, как-то делал рендерер для того чтобы доставать первую картинку с migx поля:
collections.renderer.migximage = function (value, metaData, record, rowIndex, colIndex, store) {
if (value != '' && value != null) {
var jsonString = value;
var jsonData = JSON.parse(jsonString);
var image = jsonData[0].image;
return '<img src="' + MODx.config.base_url + imgPath + image + '" width="64">';
}
};
надо лишь попросить у него готовый кодЭто излишество — достаточно чуть-чуть погуглить и написать 4-6 строк для кастомного рендера:
var tvSuperSelect = function(value, metaData, record, rowIndex, colIndex, store) {
if (value != '' & value != null) {
//Тут, возможно, нужно будет дополнительно обработать входящее значение, вырезав из него лишнее
var tags_list = JSON.parse(value);
return tags_list.join(', ');
}
}
Спасибо. Помогло
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.