Программная работа с объектом 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 шпаргалки сниппеты Виктор Матушевский