Теги в коллекции

Здравствуйте!

Подскажите пожалуйста, как можно в коллекции вывести TV значения компонента TVSuperSelect в читаемом виде, т.к. это поле отображается в json формате.

Пример вывода TVSuperSelect:


Заранее спасибо!
Антон Грошев
01 декабря 2017, 15:50
modx.pro
1 697
0

Комментарии: 5

Баха Волков
02 декабря 2017, 08:02
0
Вижу несколько вариантов:
1) Кастомный js рендерер
2) Кастомный php рендерер в виде сниппета
3) Создать ещё одно ТВ (например: скрытое), написать сниппет чтобы он распарсил значение нужного ТВ и воткнул в созданное и повесить на событие при сохранении ресурса, получится что и кастомный рендерер не нужен будет.
4) И много-много разных других решений ;)
    Антон Грошев
    02 декабря 2017, 11:26
    0
    Про кастомный js рендер даже автор tvsuperselect упомянул в публикации, значит он уже его делал для документов, надо лишь попросить у него готовый код или найти в MODX, где он указывает для вывода ТВ значения для документа, который в последствии можно добавить как рендер или xtype, если правильно понял.
      Баха Волков
      03 декабря 2017, 13:49
      0
      Удалось сделать? Если нет, то вот, как-то делал рендерер для того чтобы доставать первую картинку с 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">';
      	}
      };
        Максим Кузнецов
        03 декабря 2017, 14:09
        0
        надо лишь попросить у него готовый код
        Это излишество — достаточно чуть-чуть погуглить и написать 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(', ');
        	}
        }
        Антон Грошев
        03 декабря 2017, 18:26
        0
        Спасибо. Помогло
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          5