Как вывести в поле name а в чанк snippet?

Всем доброго времени суток, формучане.
Недавно додумался до такой крутой фичи, как вывод модулей типового шаблона в зависимости от значений таблицы MIGX. В чём идея:
Любой криволапый манагер может в ресурсе с соответствующим шаблоном-сборщиком добавлять/удалять любые модули из категории «модули сборки шаблона (2)» и выбирать порядок сортировки этих модулей (распределить шаблон на модули было просто — спасибо БЭМу на стадии вёрстки).

Но без детских (но ооочень назойливых) проблем не обошлось
Задача как раз по MIGX. Я написал конфигурацию таблицы. Поковырявшись в базе вышло всё так:

[
  {"caption":"Настройки модуля",
   "fields":
    [
     {"field":"Sort_number",
      "caption":"Sort_number",
      "inputTVtype":"number"
     },
     {"field":"module",
     "caption":"module",
     "inputTVtype":"listbox",
     "inputOptionValues":"@SELECT `snippet` FROM `dbpref_site_htmlsnippets` WHERE `category` = 2"
     }

    ]
  }
]
Да, это работает. Но есть 2 проблемы:

1) В выпадающий список чанков падает внутренняя разметка чанка, а не его имя. Из полей ресурса выглядит это крайне упорото. @SELECT `snippet` AS `name` не помог. Ибо тогда getImageList начинает выводить имена чанков вместо их содержимого.

2) Менее важно но тоже связано с неудобством. Почему в таблице, после добавления строки, в строку ничего не выводится? Визуально, после добавления модуля, ячейки остаются пустыми и это немного конфьюзит мою ранимую детскую психику.
Разметка колонок вот:
[
{"header": "Порядковый номер", "width": "500", "sortable": "true", "dataIndex": "title"},
{"header": "Модуль", "width": "500", "sortable":
"true","dataIndex":"list"}
]
Всем заранее спасибо за вашу помошь)

UPD
Последнее я решил. Надо было внимательнее читать доки: dataIndex у меня был указан неверно — этот параметр отвечает за рендер данных в таблицу. Но разметка в таблице это всё же упорото…
Никита
20 января 2017, 08:40
modx.pro
1 364
0

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

Алексей Ерохин
20 января 2017, 15:33
0
Создать TV — селект с возможными значениями @SELECT `name`,`snippet` FROM `dbpref_site_htmlsnippets` WHERE `category` = 2"
Сделать так:
{"field":"module","caption":"module","inputTV":"название выше созданной TV"}
Теоретически можно этот же запрос пихнуть сразу вместо вашего.

Тогда у вас будет структура chunkName==chunk_html_code|| и т.д.
Отображаться в селектах будет имя чанка, а выводить соответственно содержимое

    Никита
    20 января 2017, 16:41
    0
    Теоретически можно этот же запрос пихнуть сразу вместо вашего.
    Этот вариант сработал. В dropdown выводятся имена, в таблицу и на front уходит уже разметка, но это не критично — напишу дескрипшен — контентщики поймут) Спвсибо
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    2