Здесь показаны различия между двумя версиями данной страницы.
| Следующая версия | Предыдущая версия | ||
|
core:w_user:w_user_login [2018/11/17 03:25] a1 й |
core:w_user:w_user_login [2018/11/25 17:13] (текущий) a1 [Расположение] |
||
|---|---|---|---|
| Строка 4: | Строка 4: | ||
| ===== Расположение ===== | ===== Расположение ===== | ||
| - | ''/administrator/com_wmartalpha/core/user.php'' | + | ''core/user.php'' |
| - | Является дочерним объектом [[core:w_object|Объекта w_object]] и наследует его функции, селекторы и поля | + | Является дочерним объектом [[ядро:w_object|Объекта w_object]] и наследует его функции, селекторы и поля |
| ===== Селекторы ===== | ===== Селекторы ===== | ||
| ^Селлектор^Описание^Тип^ | ^Селлектор^Описание^Тип^ | ||
| - | |id|id пользователя|int, array| | + | |id|id логина|[[core:w_user:w_user_login#поля|Поле id объекта w_user_login]]| |
| - | |login|логин пользователя: массив ''['тип'=>'логин']'', телефон или email|string, array| | + | |group|Группа типа логина|[[core:w_user:w_user_login#поля_type_и_group|Поле group объекта w_user_login]]| |
| - | |registred|true - зарегистрирован, false - не зарегистрирован|boolean| | + | |login|Логин|string, array| |
| - | |session_id|идентификатор сессии|string| | + | |type|Тип логина|[[core:w_user:w_user_login#поля_type_и_group|Поле type объекта w_user_login]]| |
| - | |user_id|id пользователя joomla|int| | + | |user_id|id пользователя|[[ядро:w_user#поля|Поле id объекта w_user]]| |
| - | ^По-умолчанию|id пользователя|int| | + | ^По-умолчанию|id логина|[[core:w_user:w_user_login#поля|Поле id объекта w_user_login]]| |
| - | ===== Поля объекта ===== | + | |
| + | ===== Поля ===== | ||
| ==== Сохраняемые поля объекта ==== | ==== Сохраняемые поля объекта ==== | ||
| ^Поле^Описание^Тип^ | ^Поле^Описание^Тип^ | ||
| - | |user_id|id пользователя joomla|int| | + | |type|Тип логина|[[core:w_user:w_user_login#поля_type_и_group|Поле type объекта w_user_login]]| |
| - | |password|хеш пароля|string| | + | |user_id|id пользователя|int| |
| - | |status_id|id статуса|[[core:w_user#поле_status_id|Поле status_id]]| | + | |login|Логин пользователя|string| |
| - | |session_id|идентификатор сессии|string| | + | |access_token|Маркер доступа для сервисов|string| |
| - | |params|дополнительные параметры|[[core:w_json|Объект w_json]]| | + | |
| - | |visit_date|дата последнего посещения|[[core:w_date|Объект w_date]]| | + | |
| - | |register_date|дата регистрации|[[core:w_date|Объект w_date]]| | + | |
| ==== Динамические поля объекта ==== | ==== Динамические поля объекта ==== | ||
| ^Поле^Описание^Тип^ | ^Поле^Описание^Тип^ | ||
| - | |authorized|true, если пользователь является текущим авторизованным|boolean| | + | |group|Группа логина|[[core:w_user:w_user_login#поля_type_и_group|Поле group объекта w_user_login]]| |
| - | |registered|true, если пользователь зарегистрирован|boolean| | + | |
| - | + | ||
| - | ==== Поле status_id ==== | + | |
| - | ^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; | + | ==== Поля type и group ==== |
| - | + | ^type^Описание^group^ | |
| - | protected static $__group = [ | + | |google|Google|service| |
| - | 'main'=>['phone','email'], | + | |email|E-mail|main| |
| - | 'social'=>['fb','instagram','mailru','ok','vk'], | + | |phone|Телефон|main| |
| - | 'service'=>['telegram','google','yandex'] | + | |fb|Facebook|social| |
| - | ]; | + | |instagram|Instagram|social| |
| + | |mailru|Майл.RU|social| | ||
| + | |ok|Одноклассники|social| | ||
| + | |telegram|Telegram.Passport|service| | ||
| + | |vk|Вконтакте|social| | ||
| + | |yandex|Яндекс|service| | ||
| - | protected function __create() { | + | ==== Приведение к строке ==== |
| - | $this->params = w_json::load(); | + | ^Возвращает|Логин|string| | |
| - | } | + | |
| - | + | ||
| - | protected function __init() { | + | |
| - | foreach(self::$__group as $group=>$types){ | + | |
| - | if(in_array($this->type, $types)){ | + | |
| - | $this->group=$group; | + | |
| - | } | + | |