А вы знали, что TV-полю MIGX можно в форме указывать другие MIGX-поля?

Работаю с проектом. Возникла задача, что у товара может быть два поля-вариации, при чем структура вложенная. То есть, есть основной товар, у него есть модели (и у разных моделей разная цена), а у этих моделей надо указывать цветовые решения (к примеру). То есть есть одна модель зеленого и красного цветов, вторая модель зеленого, синего и белого цвета и т.п. При чем этим моделям надо еще иметь возможность индивидуальные картинки указать, чтобы на странице товара при выборе конкретной вариации модели еще и картинки автоматически менялись. Так вот, до этого модели были без вариаций (то есть просто перечислялись модели и их цены, но без вложенных цветовых вариаций), и это было реализовано на Миге. Сейчас задача расширилась, и думая как ее реализовать, я подумал «а почему не указать в конфигурации MIGX-формы другое MIGX-TV-поле? Технически этому вроде как ничто не мешает.».

Попробовал. Работает :)

А что самое интересное — можно указывать и текущее TV-поле. То есть вложенность может какой угодно быть. И здесь я еще раз хочу обратить внимание на то, что в первую очередь это демонстрирует силу ExtJS. Поэтому еще раз: учите ExtJS!

Мне данный вариант решения подходит, так как сейчас не стоит задача поиска и фильтрации по этим вариациям. Эти данные будут обрабатываться уже при получении найденного товара.

Comments

Да, руки не доходят топик написать — тоже недавно делал: scr.png Для такого трюка нужно использовать рендерер this.renderChunk scr2.png scr3.png И сам чанк:

[[!getImageList? &value=`[[+views]]` &tpl=`viewsTpl`]]

Сниппет getImageList входит в набор MIGX, а чанк viewsTpl просто выводит картинку, нароимер у меня так:

<img src="[[pThumb?input=`/assets/images/[[+img]]`&options=`w=60&h=75`]]"/>

Во какая кастомизация! :) На самом деле с мигой можно много чего интересного вытворять!

Точно :) Плохо только что документации маловато. И практически все на английском. Но вещь действительно мощная и полезная!

Александр а как это будет выглядеть в JSON в поле FormTABS переменной migx пишу так

[
{"caption":"Foto", "fields": [
    {"field":"color","caption":"color"},
    {"field":"foto","caption":"Foto","inputTV":"listviews","renderer": "this.renderChunk", "Renderoptions" : [
    {"name" : "tpl"}
]},
    {"field":"price","caption":"Price"}
]}
]

Не выводит

я пользовался визуальной средой. Но если открыть в тексте, то колонки показывает так:

[{"MIGX_id":"1","header":"Материал, цвет","dataIndex":"option","width":"100","sortable":"true","show_in_grid":"1","renderer":"","clickaction":"","selectorconfig":"","renderchunktpl":"","renderoptions":"","editor":"this.textEditor"},{"MIGX_id":"2","header":"Цена","dataIndex":"price","width":"100","sortable":"false","show_in_grid":"1","renderer":"","clickaction":"","selectorconfig":"","renderchunktpl":"","renderoptions":"","editor":"this.textEditor"},{"MIGX_id":"4","header":"Дополнительные фото","dataIndex":"listviews","width":"800","sortable":"false","show_in_grid":"1","renderer":"this.renderChunk","clickaction":"","selectorconfig":"","renderchunktpl":"","renderoptions":"[{\"MIGX_id\":\"1\",\"name\":\"listViews\",\"use_as_fallback\":\"\",\"value\":\"\",\"clickaction\":\"\",\"handler\":\"\",\"image\":\"\"}]","editor":""}]

Упс…

[
  {
    "MIGX_id": "1",
    "header": "Материал, цвет",
    "dataIndex": "option",
    "width": "100",
    "sortable": "true",
    "show_in_grid": "1",
    "renderer": "",
    "clickaction": "",
    "selectorconfig": "",
    "renderchunktpl": "",
    "renderoptions": "",
    "editor": "this.textEditor"
  },
  {
    "MIGX_id": "2",
    "header": "Цена",
    "dataIndex": "price",
    "width": "100",
    "sortable": "false",
    "show_in_grid": "1",
    "renderer": "",
    "clickaction": "",
    "selectorconfig": "",
    "renderchunktpl": "",
    "renderoptions": "",
    "editor": "this.textEditor"
  },
  {
    "MIGX_id": "4",
    "header": "Дополнительные фото",
    "dataIndex": "listviews",
    "width": "800",
    "sortable": "false",
    "show_in_grid": "1",
    "renderer": "this.renderChunk",
    "clickaction": "",
    "selectorconfig": "",
    "renderchunktpl": "",
    "renderoptions": "[{\"MIGX_id\":\"1\",\"name\":\"listViews\",\"use_as_fallback\":\"\",\"value\":\"\",\"clickaction\":\"\",\"handler\":\"\",\"image\":\"\"}]",
    "editor": ""
  }
]
[
{"header": "Color", "width": "160", "sortable": "true", "dataIndex": "color"},
{"header": "Foto", "width": "50", "sortable": "false", "dataIndex": "foto","renderer": "this.renderChunk","renderoptions":"[{\"MIGX_id\":\"1\",\"name\":\"tpl\",\"use_as_fallback\":\"\",\"value\":\"\",\"clickaction\":\"\",\"handler\":\"\",\"image\":\"\"}]"},
{"header": "Price", "width": "160", "sortable": "true", "dataIndex": "price"}
]

Поидее так должно бы работать но вообще не выводит вообще пропадает таблица

Просто если делать через MIGX CMP это же пакет собирать выходит только?

Не понял вопрос. Если для дальнейшего использования — думаю, можно просто экспорт сделать. Но на самом деле, обычно конфигурации разные, и мне проще заново руками сделать, времени не много требуется

Нет я имею ввиду что я просто создал тв-ку на input повесил стандартный migx Form Tabs:

[
{"caption":"Foto", "fields": [
    {"field":"color","caption":"color"},
    {"field":"foto","caption":"Foto","inputTV":"listviews"},
    {"field":"price","caption":"Price"}
]}
]

Grid Columns:

[
{"header": "Color", "width": "20", "sortable": "true", "dataIndex": "color"},
{"header": "Foto", "width": "100", "sortable": "false", "dataIndex": "foto","renderer": "this.renderChunk","renderoptions":"[{\"name\":\"tpl\"}]"},
{"header": "Price", "width": "10", "sortable": "true", "dataIndex": "price"}
]

Все на этом, больше никаких настроек нигде я не делал

listviews — типа migx — там все отлично отображается и добавляется в чанке tpl — вызов сниппета как в твоем примере

«inputTV»:«listviews»

listviews — это MIGX переменная, в которой хранятся картинки:

{
  "formtabs":[
    {
      "MIGX_id":1,
      "caption":"\u0424\u043e\u0442\u043e",
      "print_before_tabs":"0",
      "fields":[
        {
          "MIGX_id":1,
          "field":"img",
          "caption":"\u0424\u043e\u0442\u043e",
          "description":"",
          "description_is_code":"0",
          "inputTV":"image",
          "inputTVtype":"",
          "validation":"",
          "configs":"",
          "restrictive_condition":"",
          "display":"",
          "sourceFrom":"config",
          "sources":"",
          "inputOptionValues":"",
          "default":"",
          "pos":1
        }
      ],
      "pos":1
    }
  ],
  "contextmenus":"",
  "actionbuttons":"",
  "columnbuttons":"",
  "filters":"",
  "extended":{
    "migx_add":"",
    "disable_add_item":"",
    "add_items_directly":"",
    "formcaption":"",
    "update_win_title":"",
    "win_id":"views",
    "maxRecords":6,
    "addNewItemAt":"bottom",
    "multiple_formtabs":"",
    "multiple_formtabs_label":"",
    "multiple_formtabs_field":"",
    "multiple_formtabs_optionstext":"",
    "multiple_formtabs_optionsvalue":"",
    "actionbuttonsperrow":4,
    "winbuttonslist":"",
    "extrahandlers":"",
    "filtersperrow":4,
    "packageName":"",
    "classname":"",
    "task":"",
    "getlistsort":"",
    "getlistsortdir":"",
    "sortconfig":"",
    "gridpagesize":"",
    "use_custom_prefix":"0",
    "prefix":"",
    "grid":"",
    "gridload_mode":1,
    "check_resid":1,
    "check_resid_TV":"",
    "join_alias":"",
    "has_jointable":"yes",
    "getlistwhere":"",
    "joins":"",
    "cmpmaincaption":"",
    "cmptabcaption":"",
    "cmptabdescription":"",
    "cmptabcontroller":"",
    "winbuttons":"",
    "onsubmitsuccess":"",
    "submitparams":""
  },
  "columns":[
    {
      "MIGX_id":1,
      "header":"\u0424\u043e\u0442\u043e",
      "dataIndex":"img",
      "width":50,
      "sortable":"false",
      "show_in_grid":1,
      "renderer":"this.renderImage",
      "clickaction":"",
      "selectorconfig":"",
      "renderchunktpl":"",
      "renderoptions":""
    }
  ]
}

Получается создавать новую таблицу в бд через MIGX конфигуратор значит только для данной реализации?

Сделал конфиг указал в переменной migx. но не выводит картинки, причем теперь и не сохраняет добавление новых в переменную foto. фотки у меня в папке /PRODUCTS_IMG\275\ ну это для данного товара для след будут /PRODUCTS_IMG\276\, может с этим как то связано

[{"MIGX_id":"1","color":"Bianco","foto":"[{\"MIGX_id\":\"1\",\"foto\":\"\/PRODUCTS_IMG\/275\/Bottega-275_bianco1.jpg\"},{\"MIGX_id\":\"2\",\"foto\":\"\/PRODUCTS_IMG\/275\/Bottega-275_bianco2.jpg\"},{\"MIGX_id\":\"3\",\"foto\":\"\/PRODUCTS_IMG\/275\/Bottega-275_bianco3.jpg\"},{\"MIGX_id\":\"4\",\"foto\":\"\/PRODUCTS_IMG\/275\/Bottega-275_bianco4.jpg\"}]","price":""},{"MIGX_id":"2","color":"Bluette","foto":"[{\"MIGX_id\":\"1\",\"foto\":\"\/PRODUCTS_IMG\/275\/Bottega-275_blu1.jpg\"},{\"MIGX_id\":\"2\",\"foto\":\"\/PRODUCTS_IMG\/275\/Bottega-275_blu2.jpg\"},{\"MIGX_id\":\"3\",\"foto\":\"\/PRODUCTS_IMG\/275\/Bottega-275_bluette3.jpg\"},{\"MIGX_id\":\"4\",\"foto\":\"\/PRODUCTS_IMG\/275\/Bottega-275_bluette4.jpg\"}]","price":""},{"MIGX_id":"3","color":"Cipria","foto":"[{\"MIGX_id\":\"1\",\"foto\":\"\/PRODUCTS_IMG\/275\/Bottega-275_cipria1.jpg\"},{\"MIGX_id\":\"2\",\"foto\":\"\/PRODUCTS_IMG\/275\/Bottega-275_cipria2.jpg\"},{\"MIGX_id\":\"3\",\"foto\":\"\/PRODUCTS_IMG\/275\/Bottega-275_cipria3.jpg\"},{\"MIGX_id\":\"4\",\"foto\":\"\/PRODUCTS_IMG\/275\/Bottega-275_cipria4.jpg\"}]","price":""},{"MIGX_id":"4","color":"Coloniale","foto":"[{\"MIGX_id\":\"1\",\"foto\":\"\/PRODUCTS_IMG\/275\/Bottega-275_coloniale1.jpg\"},{\"MIGX_id\":\"2\",\"foto\":\"\/PRODUCTS_IMG\/275\/Bottega-275_coloniale2.jpg\"},{\"MIGX_id\":\"3\",\"foto\":\"\/PRODUCTS_IMG\/275\/Bottega-275_coloniale3.jpg\"},{\"MIGX_id\":\"4\",\"foto\":\"\/PRODUCTS_IMG\/275\/Bottega-275_coloniale4.jpg\"}]","price":""},{"MIGX_id":"5","color":"Corallo","foto":"[{\"MIGX_id\":\"1\",\"foto\":\"\/PRODUCTS_IMG\/275\/Bottega-275_corallo1.jpg\"},{\"MIGX_id\":\"2\",\"foto\":\"\/PRODUCTS_IMG\/275\/Bottega-275_corallo2.jpg\"},{\"MIGX_id\":\"3\",\"foto\":\"\/PRODUCTS_IMG\/275\/Bottega-275_corallo3.jpg\"},{\"MIGX_id\":\"4\",\"foto\":\"\/PRODUCTS_IMG\/275\/Bottega-275_corallo4.jpg\"}]","price":""},{"MIGX_id":"6","color":"Emerald","foto":"[{\"MIGX_id\":\"1\",\"foto\":\"\/PRODUCTS_IMG\/275\/Bottega-275_emerald1.jpg\"},{\"MIGX_id\":\"2\",\"foto\":\"\/PRODUCTS_IMG\/275\/Bottega-275_emerald2.jpg\"},{\"MIGX_id\":\"3\",\"foto\":\"\/PRODUCTS_IMG\/275\/Bottega-275_emerald3.jpg\"},{\"MIGX_id\":\"4\",\"foto\":\"\/PRODUCTS_IMG\/275\/Bottega-275_emerald4.jpg\"}]","price":""}]

это старые записи сейчас при сохранении фоток нет но в переменной такая запись

[{"MIGX_id":"1","color":"colortv","fotos":"","price":"444","fotos_ro":"","_this.value":"[{\"MIGX_id\":\"1\",\"foto\":\"products/No-Photo.jpg\"}]"}]

выводит но при перезагрузке страницы, или редактировании, в чем трабл может быть кто сталкивался?

в смысле при перезагрузке ресурса или редактировании — пусто, хотя в переменной есть значения

Сейчас немного разгружусь — сделаю топик как пошагово сделать. сейчас времени нет абсолютно