-
-
-
- Примеры
- API
Это старая версия документа!
Класс для работы с данными авторизации пользователей
/administrator/com_wmartalpha/core/user.php
Является дочерним объектом Объекта w_object и наследует его функции, селекторы и поля
| Селлектор | Описание | Тип |
|---|---|---|
| id | id пользователя | int, array |
| login | логин пользователя: массив ['тип'⇒'логин'], телефон или email | string, array |
| registred | true - зарегистрирован, false - не зарегистрирован | boolean |
| session_id | идентификатор сессии | string |
| user_id | id пользователя joomla | int |
| По-умолчанию | id пользователя | int |
| Поле | Описание | Тип |
|---|---|---|
| user_id | id пользователя joomla | int |
| password | хеш пароля | string |
| status_id | id статуса | Поле status_id |
| session_id | идентификатор сессии | string |
| params | дополнительные параметры | Объект w_json |
| visit_date | дата последнего посещения | Объект w_date |
| register_date | дата регистрации | Объект w_date |
| Поле | Описание | Тип |
|---|---|---|
| authorized | true, если пользователь является текущим авторизованным | boolean |
| registered | true, если пользователь зарегистрирован | boolean |
| id статуса | Описание |
|---|---|
| 0 | Гостевая учетная запись |
| 1 | Пользователь зарегистрирован, но не имеет пароля |
| 2 | Пользователь зарегистрирован и имеет пароль |
'type','user_id','login','access_token'
$where[]=1;
$order=[];
$join=[];
$group=[];
$limit='';
if(!isset($params['sort'])) $params['sort']='';
if(!isset($params['nogroup'])) $params['nogroup']='';
if(!isset($params['start'])) $params['start']=0;
if(!isset($params['group'])) $params['group']='';
if (isset($params['id'])) {
$where[] = '(u.id=' . db::quote($params['id']) . ')';
}
if (!empty($params['group'])) {
$where[] = '(u.type in (' . db::quote(self::$__group[$params['group']]). '))';
}
if (isset($params['login'])) {
$where[] = '(u.login=' . db::quote($params['login']). ')';
}
if (isset($params['type'])) {
$where[] = '(u.type in (' . db::quote($params['type']). '))';
}
if (isset($params['user_id'])) {
$where[] = '(u.user_id=' . db::quote($params['user_id']) . ')';
}
switch ($params['sort']) {
default:
$order[] = 'u.user_id';
$order[] = 'u.type';
}
if (isset($params['limit'])) {
$limit = ' limit ' . (int)$params['start'] . ',' . (int) $params['limit'];
}
$order = implode(',', $order);
if($group) $group = ' group by '.implode(',', $group); else $group ='';
$join = implode(' ', $join);
$where = implode(' and ', $where);
return ' from #__wmart_user_login as u '.$join.' where '.$where.$group.' order by '.$order.$limit;
protected static $__group = [
'main'=>['phone','email'],
'social'=>['fb','instagram','mailru','ok','vk'],
'service'=>['telegram','google','yandex']
];
protected function __create() {
$this->params = w_json::load();
}
protected function __init() {
foreach(self::$__group as $group=>$types){
if(in_array($this->type, $types)){
$this->group=$group;
}