Универсальные персональные настройки
Механизм универсальных персональных настроек, сокращенно UPS, позволяет сохранять уникальные настройки каждому пользователю персонально. Это необходимо, когда сессия и cookies не подходят для хранения этих данных ввиду разных причин. В тоже время, не стоит хранить очень важные данные, ибо они однажды могут быть очищены ради оптимизации базы данных, используйте для таких данных собственную таблицу.
Для хранения используется id пользователя и уникальный ключ этой настройки. Например ваш компонент имеет имя «raduga», а сохранять вы собираетесь цвет, значит ключ будет иметь вид: «raduga.color».
Сохранение данных
cmsUser::setUPS('raduga.color', 'blue');
Чтобы сохранить не для текущго пользователя, а для любого другого, используйте третий аргумент с id пользователя, это касается всех методов UPS:
cmsUser::setUPS('raduga.color', 'blue', 12);
Получение данных
$color = cmsUser::getUPS('raduga.color');
Удаление данных
cmsUser::deleteUPS('raduga.color');
cmsUser::deleteUPS('raduga.color', 12); // удалим данные для пользователя с id 12
Если вы только получили новые данные и не знаете, были ли они раньше сохранены и не совпадают ли они со старыми. То используйте метод, который проверит что:
- переменная с данными не пуста;
- новые данные данные не совпадают со старыми и обновит их в случае необходимости;
- вернёт актуальные данные.
$color = $this->request->get('color'); // null $color = cmsUser::getUPSActual('raduga.color', $color); // вернёт blue из примера выше $color = cmsUser::getUPS('raduga.color'); // вернёт blue
$color = $this->request->get('color'); // red $color = cmsUser::getUPSActual('raduga.color', $color); // вернёт red и сохранит в бд $color = cmsUser::getUPS('raduga.color'); // вернёт red
К оглавлению раздела "Хранение различных данных"