MIGX и MIGXdb как осуществить замену значения
Доброе время суток.
Кто использовал MIGX или MIGXdb.
Вопрос такой как корректно поменять значение параметра.
Насколько я понял MIGX завязывает между собой уже существующие TV так что тут вроде бы просто можно обратится прямо к нужной TV и сменить ее значение.
А вот в MIGXdb, TV хранятся в отдельной таблице
Может кто что подскажет?
Пример:
Я создаю товар у которого есть какой то перечень характеристик — цвет к примеру
количество цвет статус
5 красный (radio=1)
3 синий (radio=1)
Купили к примеру 3 синих и количество по складу стало 0
Чтобы убрать из товара на сайте цвет мне нужно значение radio поставить 0.
Либо когда товар с таким цветом снова стал больше нуля включить его выдачу.
Как то так
Кто использовал MIGX или MIGXdb.
Вопрос такой как корректно поменять значение параметра.
Насколько я понял MIGX завязывает между собой уже существующие TV так что тут вроде бы просто можно обратится прямо к нужной TV и сменить ее значение.
А вот в MIGXdb, TV хранятся в отдельной таблице
Может кто что подскажет?
Пример:
Я создаю товар у которого есть какой то перечень характеристик — цвет к примеру
количество цвет статус
5 красный (radio=1)
3 синий (radio=1)
Купили к примеру 3 синих и количество по складу стало 0
Чтобы убрать из товара на сайте цвет мне нужно значение radio поставить 0.
Либо когда товар с таким цветом снова стал больше нуля включить его выдачу.
Как то так
Комментарии: 13
В MIGXdb вы же сами таблицу описываете и определяете какие в ней поля должны быть.
Вот и обращайтесь к этой таблице как и к любой другой, через xPDO.
А TV используется только для отрисовки значение поля.
Вот и обращайтесь к этой таблице как и к любой другой, через xPDO.
А TV используется только для отрисовки значение поля.
Дело то в том что вроде бы у бруно в MIGXdb заложен этот функционал, просто не описан насколько я понял сам класс migx наследует методы modx, а в конфигурации есть поле classname где указывается имя объекта, при этом в мануале есть такие строчки…
______________________________________________________________
Register the TVs for our processors (getlist,fields)
We need to register TVs to include them in the getlist- and fields-processors.
Todo so we need a new config-file under /core/components/migx/configs/
with the same name as our MIGX-configuration: childstutorial.config.inc.php (should allready be installed with the MIGX-package)
and this content:
/core/components/migx/configs/childstutorial.config.inc.php
1
2
3
<?php
$this->customconfigs['includeTVs'] = 1;
$this->customconfigs['includeTVList'] = 'price,images,categories';
___________________________________________________________________
Насколько я понял после этого к переменным
можно обращаться как то так myClass->setTVValue(«prise»,$prise);
просто если это так то зачем делать велосипед… тем более не факт, что он выйдет лучше ))
______________________________________________________________
Register the TVs for our processors (getlist,fields)
We need to register TVs to include them in the getlist- and fields-processors.
Todo so we need a new config-file under /core/components/migx/configs/
with the same name as our MIGX-configuration: childstutorial.config.inc.php (should allready be installed with the MIGX-package)
and this content:
/core/components/migx/configs/childstutorial.config.inc.php
1
2
3
<?php
$this->customconfigs['includeTVs'] = 1;
$this->customconfigs['includeTVList'] = 'price,images,categories';
___________________________________________________________________
Насколько я понял после этого к переменным
можно обращаться как то так myClass->setTVValue(«prise»,$prise);
просто если это так то зачем делать велосипед… тем более не факт, что он выйдет лучше ))
Вы смотрите пример как в таблице отображать ресурсы с TV. Вам это надо?
Поэтому и работает myClass->setTVValue(«prise»,$prise), т.к. myClass скорей всего является наследником modResource, а значение хранится в TV.
Или все же вам надо у каждого ресурса сделать список значений в виде таблицы и хранить это все в базе?
Поэтому и работает myClass->setTVValue(«prise»,$prise), т.к. myClass скорей всего является наследником modResource, а значение хранится в TV.
Или все же вам надо у каждого ресурса сделать список значений в виде таблицы и хранить это все в базе?
Как отображать описано вмануале это все ясно… у меня вопрос как правильно (через скрипт) манипулировать уже имеющимся в TV данными
Я понимаю, что это все хранится в базе в виде JSON массива и мне просто нужно переформировав его перезаписывать… это самый очевидный вариант.
Но если для этого уже в пакете предусмотрен инструмент почему бы не воспользоватся им… ))
У меня просто руки не доходят потеснить это дело я вот и спросил МБ кто уже плавал знает
Я понимаю, что это все хранится в базе в виде JSON массива и мне просто нужно переформировав его перезаписывать… это самый очевидный вариант.
Но если для этого уже в пакете предусмотрен инструмент почему бы не воспользоватся им… ))
У меня просто руки не доходят потеснить это дело я вот и спросил МБ кто уже плавал знает
Дак вы используете MIGX или все-таки MIGXdb?
MIGXdb данные хранит не в JSON, а в таблице, которую вы сами же и определяете. А доступ к ней можно сделать через xPDO $modx->getObject, $modx->getCollection итд
MIGXdb данные хранит не в JSON, а в таблице, которую вы сами же и определяете. А доступ к ней можно сделать через xPDO $modx->getObject, $modx->getCollection итд
Вы ошибаетесь на счет MIGX. MIGX не связывает TV, а как исключительно верно указал Евгений Дурягин, использует их для указания на то, как их рендерить в форме ресурса. Значение же самого TV типа MIGX — это JSON-строка. Я бы не стал заморачиваться на MIGXdb для создания TV для товара, для этого подойдет «обычный» TV типа migx. Изменять цену можно с помощью msGetPrice. Пишете там функцию, которая распарсивает значение вашего TV типа MIGX и изменяет цену согласно этому значению. Как-то так.
нужно менять как раз не цену, а содержимое MIGX элемента в зависимости от количества товара на складе, включать или выключать цвет к примеру
просто к сожалению мануал по MIGX весьма скудный, и автор не описывает что для чего((
… ткните сюда ткните туда, вуаля вы получили счастье и код вообще без комментариев практически…
С кодом Василия несравнить
… ткните сюда ткните туда, вуаля вы получили счастье и код вообще без комментариев практически…
С кодом Василия несравнить
Мануал или код все-таки? Мануал MIGX, конечно, довольно скромный, но это больше касается MGIX-db, а с самим MIGX там особо нечего разбираться. Я мигиксы в каждом проекте использую. Пару-тройку раз migx-db, остальные — «обычный».
Ну можно и это. Я ж не в курсе, что конкретно Вам надо. Можете, просто, скажем, сделать TV с полями, где одно это цвет товара, а другое количество товара этого цвета. При продаже товара с этим цветом — меняете количество. Когда количество равно нулю, при генерации listbox-а просто игнорируете создание option этого цвета.
угу я именно так и планирую просто… интересует как правильнее это делать)
Кто может подсказать где найти информацию о renderera — х какие есть и для чего используются в мануале упоминается только renderImage.
Либо где по коду посмотреть.
Есть поле где использую чекбокс так вот когда добавляю строку чек бокс неотрисовывается
Либо где по коду посмотреть.
Есть поле где использую чекбокс так вот когда добавляю строку чек бокс неотрисовывается
{"field":"on_off_status","caption":"Вкл/Выкл","inputTV":"on_off_status_MigxTV"},
{"header": "Статус публикации", "width": "100", "sortable": "false", "dataIndex": "on_off_status","renderer": " Какой то рендер нужен "}
Меня тоже интересует инфа о renderer
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.