В Zeta2 практически отсутвовали как таковые профили пользователей, практически ничего не подстраивалось под пользователя. Основаная причина - отсутствие общего механизма взаимодействия JavaScript<->Server в части унифицированного обмена данными о преференциях пользователей.
В Zeta3 инфраструктура унифицирована как по организации хранения так и по организации доступа.
В Zeta3 инфраструктура унифицирована как по организации хранения так и по организации доступа.
- На уровне ядра:
- созданы удобные утилиты доступа к папке profile и записи, навигации, чтения в ней.
- создана ингфраструктура общего хранения профилей (может использоваться не файловая система) в этом случае поддерживаются только операции чтение - запись
- На уровне контроллеров
- во все контроллеры внедрены защищенные методы записи и чтения в профиль
- планируется - организация доступа к профилю из вьюх, пока вопрос не решен
- добавлен публичный контроллер profileController с методами load/save для запросов на открытие и сохранения файлов профиля через AJAX
- На уровне клиента
- создан скрипт comdiv.profile.js, экологический как для загрузки в рут, так и в eval режиме
- обволакивает profileController , поддерживает автосохранение профилей, в качестве формата хранения использует JSON
Теперь работа с профилем на уровне клиента стала элементарной:
var profilerepos = Ajax.from(siteroot+"/scripts/comdiv.profile.js").eval(); var myprofile = profilerepos.load('myprofile',{val1:'default1',...}); //нуказываем имя файла профиля и настройки по умолчанию myprofile.autoSave(10); //включаем, если надо автосохранение ... myprofile.data.val1 = 23; myprofile.data.val2 = 'xxxx'; ... //максимум через 10 секунд новые значения будут сохранены если они в действительности изменились //и при следующей загрузке в профиле уже будут новые значения
Комментариев нет:
Отправить комментарий