Bitrix-D7  20.0.0
Класс Fuser

Открытые члены

 __construct ()
 

Открытые статические члены

static getId ($skipCreate=false)
 Return fuserId. Подробнее...
 
static getIdByUserId ($userId)
 Return fuserId for user. Подробнее...
 
static getUserIdById ($fuserId)
 Return user by fuserId. Подробнее...
 
static deleteOld ($days)
 Delete fuserId over several days. Подробнее...
 

Защищенные статические члены

static updateSession ($id)
 Update session data. Подробнее...
 
static getCode ()
 Return fuser code. Подробнее...
 
static createForUserId ($userId)
 Create new fuserId for user. Подробнее...
 

Подробное описание

См. определение в файле fuser.php строка 16

Конструктор(ы)

◆ __construct()

__construct ( )

См. определение в файле fuser.php строка 18

19  {
20 
21  }

Методы

◆ createForUserId()

static createForUserId (   $userId)
staticprotected

Create new fuserId for user.

Аргументы
int$userIdUser id.
Возвращает
Main\Entity\AddResult
Исключения

См. определение в файле fuser.php строка 173

174  {
175  $fields = array(
176  'DATE_INSERT' => new Main\Type\DateTime(),
177  'DATE_UPDATE' => new Main\Type\DateTime(),
178  'USER_ID' => $userId,
179  'CODE' => md5(time().randString(10))
180  );
181 
182  /** @var Result $r */
183  return Internals\FuserTable::add($fields);
184  }

◆ deleteOld()

static deleteOld (   $days)
static

Delete fuserId over several days.

Аргументы
int$daysInterval.
Возвращает
void

См. определение в файле fuser.php строка 148

149  {
150  $expired = new Main\Type\DateTime();
151  $expired->add('-'.$days.' days');
152  $expiredValue = $expired->format('Y-m-d H:i:s');
153 
154  /** @var Main\DB\Connection $connection */
155  $connection = Main\Application::getConnection();
156  /** @var Main\DB\SqlHelper $sqlHelper */
157  $sqlHelper = $connection->getSqlHelper();
158 
159  $query = "DELETE FROM b_sale_fuser WHERE
160  b_sale_fuser.DATE_UPDATE < ".$sqlHelper->getDateToCharFunction("'".$expiredValue."'")."
161  AND b_sale_fuser.USER_ID IS NULL
162  AND b_sale_fuser.id NOT IN (select FUSER_ID from b_sale_basket)";
163  $connection->queryExecute($query);
164  }

◆ getCode()

static getCode ( )
staticprotected

Return fuser code.

Возвращает
int

См. определение в файле fuser.php строка 77

78  {
79  return \CSaleUser::getFUserCode();
80  }

◆ getId()

static getId (   $skipCreate = false)
static

Return fuserId.

Аргументы
bool$skipCreateCreate, if not exist.
Возвращает
int|null

См. определение в файле fuser.php строка 29

30  {
31  global $USER;
32 
33  $id = null;
34 
35  static $fuserList = array();
36 
37  if ((isset($USER) && $USER instanceof \CUser) && $USER->IsAuthorized())
38  {
39  $currentUserId = (int)$USER->GetID();
40  if (!isset($fuserList[$currentUserId]))
41  {
42  $fuserList[$currentUserId] = static::getIdByUserId($currentUserId);
43  }
44  $id = $fuserList[$currentUserId];
45  unset($currentUserId);
46  }
47 
48  if ((int)$id <= 0)
49  {
50  $id = \CSaleUser::getID($skipCreate);
51  }
52  static::updateSession($id);
53  return $id;
54  }

◆ getIdByUserId()

static getIdByUserId (   $userId)
static

Return fuserId for user.

Аргументы
int$userIdUser Id.
Возвращает
false|int
Исключения
Main

См. определение в файле fuser.php строка 89

90  {
91  $res = Internals\FuserTable::getList(array(
92  'filter' => array(
93  'USER_ID' => $userId
94  ),
95  'select' => array(
96  'ID'
97  ),
98  'order' => array('ID' => "DESC")
99  ));
100  if ($fuserData = $res->fetch())
101  {
102  return (int)$fuserData['ID'];
103  }
104  else
105  {
106  /** @var Result $r */
107  $r = static::createForUserId($userId);
108  if ($r->isSuccess())
109  {
110  return $r->getId();
111  }
112  }
113 
114  return false;
115  }

◆ getUserIdById()

static getUserIdById (   $fuserId)
static

Return user by fuserId.

Аргументы
int$fuserIdFuser Id.
Возвращает
int
Исключения
Main

См. определение в файле fuser.php строка 124

125  {
126  $result = 0;
127 
128  $fuserId = (int)$fuserId;
129  if ($fuserId <= 0)
130  return $result;
131  $row = Internals\FuserTable::getList(array(
132  'select' => array('USER_ID'),
133  'filter' => array('=ID' => $fuserId),
134  'order' => array('ID' => "DESC")
135  ))->fetch();
136  if (!empty($row))
137  $result = (int)$row['USER_ID'];
138 
139  return $result;
140  }

◆ updateSession()

static updateSession (   $id)
staticprotected

Update session data.

Аргументы
int$idFuserId.
Возвращает
void

См. определение в файле fuser.php строка 62

63  {
64  \CSaleUser::updateSessionSaleUserID();
65  if ((string)Main\Config\Option::get('sale', 'encode_fuser_id') != 'Y' && isset($_SESSION['SALE_USER_ID']))
66  $_SESSION['SALE_USER_ID'] = (int)$_SESSION['SALE_USER_ID'];
67 
68  if (!isset($_SESSION['SALE_USER_ID']) || (string)$_SESSION['SALE_USER_ID'] == '' || $_SESSION['SALE_USER_ID'] === 0)
69  $_SESSION['SALE_USER_ID'] = $id;
70  }

Объявления и описания членов класса находятся в файле:
Bitrix\Main\Config
Definition: main/lib/config/configuration.php:2
Bitrix\Main\Config\Option\get
static get($moduleId, $name, $default="", $siteId=false)
Returns a value of an option.
Definition: main/lib/config/option.php:29
Bitrix\Main\Type
Definition: main/lib/type/collection.php:2
Bitrix\Main\Application\getConnection
static getConnection($name="")
Static method returns database connection for the specified name.
Definition: main/lib/application.php:381