Обработка json в компоненте modx
Решил я, что разумно и правильно хранить часть данных в строке json. Ну т.е. в таблице что-то типа
В json переводится что-то типа этого:
Я так понимаю, что гирд я должен составить из хранилища как-то так habrahabr.ru/post/108154/ а уже обработку делать через процессоры… Или…
Может в каких-то компонентах информация хранится в таком формате и можно посмотреть пример? Или кто может какую статью в тему там подкинуть? Пинните в нужном направлении.
<field key="field_name" dbtype="text" phptype="string" />И некий массив отправляется в $modx->toJSON() и сохраняется в field_name. Там список строк, состоящий из месяца, года и произвольного текста.В json переводится что-то типа этого:
[0] => Array
(
['time'] => 1999
['mounth'] => 1
['text'] => 'Текст'
),
[1] => Array
(
['time'] => 2001
['mounth'] => 8
['text'] => 'Текст 2'
), Но нужно как-то наладить управление ими в компоненте, составить гирд из json. Вроде бы ext.js берется json и отдается store и на основе его создается гирд и все дела. В modExt есть волшебные url и action, которые позволяют не писать store. Но ведь в конечном счете тоже используется json?Я так понимаю, что гирд я должен составить из хранилища как-то так habrahabr.ru/post/108154/ а уже обработку делать через процессоры… Или…
Может в каких-то компонентах информация хранится в таком формате и можно посмотреть пример? Или кто может какую статью в тему там подкинуть? Пинните в нужном направлении.
Комментарии: 5
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Я проходил курс, даже заплатить успел перед тем, как он стал бесплатный )
bezumkin.ru/training/course1/2166/
Я так понимаю, нужно 'success' => true, и в 'data' наш массив и это все скармливать хранишищу. Но наверно сделаю по-другому, через не классный процессор.
Url и action не делают никакой магии, они только указывают какой вызвать процессор, чтобы он отдал данные в виде JSON. Store у grid есть всегда, другое дело, что ты этого не всегда видишь.
Все гриды MODX наследуются от одного основного и именно в нём прописан разбор данных. Вот метод, который создаёт хранилище из полученного JSON.
В общем, от процессора особо ничего не зависит, «классный» он, не «классный» — не важно, лишь бы отдал JSON с нужной структурой данных.
Обычный нагляднее как-то и строк всего-ничего. Может это и не кошерно.
Я тут вывожу fromJSON, а потом outputArray опять в json. Ну, так как-то удобнее и более напоминает другие, легче ориентироваться.
Только с get такой фокус не проходит. Я пробовал отправлять ему массив, подобный тому, что приходит от других get, подобный тому. Но что-то не проходит.
В старом MS вроде вообще ошибка возвращается. В Шопкипере вроде все также, через outputArray, но я не смотрел, где там этот процессор используется. Посмотрю еще на другие компоненты, может вдохновлюсь и скопипостю. А нет — буду с классным modObjectGetProcessor извращаться, вроде хорошо получалось ).