Модули подсистемы хранения и обработки данных UserInput
UserInput предоставляет API для записи, чтения, поиска данных произвольной структуры.
По аналогии со всеми объектами Nova, записи UserInput организованы в виде иерархической древовидной структуры. Каждая запись содержит строковый ключ page, задающий ее положение в иерархии, или, другими словами, тип данных. Несколько записей могут иметь одинаковый ключ. У каждой записи есть уникальный идентификатор - целое число больше нуля, который присваивается ей в момент первого сохранения записи. Также у записи может быть несколько алиасов - строковых ключей, по которым записи можно группировать, или выбирать из базы.
Данные UserInput хранятся в записях таблицы userinput.
Поля таблицы:
- userinput_id - идентифиткатор записи
- page - ключ записи (тип данных)
- data - данные (как правило сериализованный массив данных)
- userinfo - упакованные данные владельца записи
- data_index - поле быстрого поиска
- user_index - поле быстрого поиска
- serialized - признак сериализации данных
- userinfo_serialized - признак сериализации данных владельца записи
- data_model - строка-идентификатор модели данных
- userinfo_model - строка-идентификатор модели данных владельца
- last_modified - дата создания/модификации записи.
Каждая запись UserInput инкапсулируется в объект NovaUserInputObject.
При сохранении/заргузке из базы сложных структур данных выполняется их сериализация/десериализация.
АПИ для работы с UserInput доступен через свойство глобального экземпляра Nova: $Nova->UserInput являющимся объектом класса NovaUserInput.
Объект класса NovaUserInput предоставляет следующие методы:
- NovaUserInput
- GetUserInputObjects
- GetById
- GetByPage
- GetUserInput
- GetUserInputRaw
- CountUserInput
- CountByPage
- CountBySQL
- Delete
- NewUserInputObject
Методы объект класса NovaUserInputObject:
- NovaUserInputObject
- ParseData - десерализует данные в поле data
- ParseUserInfo - десериализует данные в поле userinfo
- ReLoad - перезагружает все данные объекта из базы
- GetStoredCopy - возвращает копию объекта с данными из базы или false, если объект еще не был сохранен
- Update - сохраняет текущее состояние объекта в базу
- Delete - удалить объект из базы
- SetAlias - добавить объекту алиас
- DeleteAlias - удалить алиас
- GetAliases - загрузить весь список алиасов
- ResetAliases - очистить список алиасов
Свойства объекта NovaUserInputObject:
- data - массив, содержащий данные записи: array('userinput_id'=>'идентификатор записи','data'=>'данные','page'=>'ключ записи','data_index'=>'индекс','user_index'=>'индекс','userinfo'=>'данные пользователя','aliases'=>array('массив алиасов записи'));
- UI - ссылка на объект NovaUserInput