Программная работа с объектом modUser
Сегодня речь пойдёт о том как получить информацию о пользователе или как программно работать с modUser используя MODX API. Нашёл следующий сниппет от Шона Вилкерсона (Shawn Wilkerson):
Можно использовать данный сниппет напрямую: 1. Создайте в менеджере сниппет thisUser, например. 2. Далее вызовите его на странице, где необходимо получить некоторые значения полей для пользователя. 3. Получите эти значения через заполнители (плейсхолдеры). Выглядит всё будет приблизительно так:
Далее приведены вызовы методов и результаты их работы (или примеры использования).
modUser->toJSON()
modUser->toArray()
Array
(
[id] => 0
[username] => (anonymous)
[password] =>
[cachepwd] =>
[class_key] => modUser
[active] => 1
[remote_key] =>
[remote_data] =>
[hash_class] => hashing.modPBKDF2
[salt] =>
[primary_group] => 0
[session_stale] =>
[sudo] =>
)
modUser->get('val')
hashing.modPBKDF2
modUser->get($array)
Array
(
[hash_class] => hashing.modPBKDF2
[salt] =>
)
Получение пользовательских настроек: modUser->getSettings()
Array
(
[site_start] => 8
)
modUser->getSessionContexts()
Array
(
[mgr] => 2
)
Получение ИД Групп пользователя modUser->getUserGroups()
Array
(
[0] => 1
)
Получение названия Групп пользователя modUser->getUserGroupNames()
Array
(
[0] => Administrator
)
Установка значения для определённого поля, в коде приведена установка "пол" = "1" (1-мужской,2-женский,0-неизвестно) modUser->set('val', $value)
$user->set('gender', 1);
modUser->getOne('Profile')
$profile = $user->getOne('Profile');
$profile->toJSON()
$profile->toArray()
Array
(
[id] => 15
[internalKey] => 15
[fullname] => Viktor Minator
[email] => viktorminator@gmail.com
[phone] =>
[mobilephone] =>
[blocked] =>
[blockeduntil] => 0
[blockedafter] => 0
[logincount] => 9
[lastlogin] => 1346065633
[thislogin] => 1346616390
[failedlogincount] => 0
[sessionid] => e8f7ec73b9c87f54545a94e447a6679e
[dob] => 0
[gender] => 0
[address] =>
[country] =>
[city] =>
[state] =>
[zip] =>
[fax] =>
[photo] =>
[comment] => https://www.google.com/accounts/o8/id?id=AItOawnBt3mdsQnOep87mgnrMwzHT4fMiE0g1DI
[website] => https://www.google.com/accounts/o8/ud
[extended] =>
)
Получение развёрнутых (неосновных) полей пользователя:
$profile->get('extended')
Дополнительно можно почитать об Объектах MODX Revolution
11-09-2012 MODx API шпаргалки сниппеты Виктор Матушевский