Содержание
Работа с пользователями Битрикс
Изменение даты регистрации пользователя
Изменение даты регистрации пользователя с ID 4732:
- user-reg-date.sql
UPDATE b_user SET DATE_REGISTER = '2015-11-05 00:00:00' WHERE ID = 4732;
Хранение произвольной информации о пользователе
Хранение произвольной информации о пользователе без необходимости заведения дополнительных полей.
Для этого одноразово заводим пользовательское поле UF_NOSQL
и работаем с ним как с объектом:
try { $baUser = BAUser::_(); $infoletters = (object)$baUser->infoletters; } catch (Exception $e) { $infoletters = new StdClass(); }
- ba/BAUser.php
class BAUser { private static $instance; public static function _() { if(isset(self::$instance)) return self::$instance; self::$instance = new self(); return self::$instance; } private $user, $userID, $userInfo, $userParams; private function __construct() { global $USER; $this->user = $USER; $this->userID = $this->user->GetID(); $this->getUserInfo(); } public function __get($param) { return isset($this->userParams->{$param}) ? $this->userParams->{$param} : null; } public function __set($param, $value) { return $this->userParams->{$param} = $value; } public function __isset($param) { return isset($this->userParams->{$param}); } public function save() { $user = new CUser; $fields = array("UF_NOSQL" => serialize($this->userParams)); $user->Update($this->userID, $fields); } private function getUserInfo() { if(isset($this->userInfo)) return; $rsUser = CUser::GetByID($this->userID); if($this->userInfo = $rsUser->Fetch()) { $this->userParams = unserialize($this->userInfo['UF_NOSQL']); } if(!isset($this->userParams) || !is_object($this->userParams)) $this->userParams = new StdClass(); } }