Программная работа с объектом 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